最近在做Dubbo接口改造相关的项目,就是把原来Spring中Controller提供的HTTP调用,改造成Dubbo接口。需要把原来的工程分离出一个client模块,提供接口给其他工程调用,剩下的作为service模块,暴露服务。之前使用Dubbo只是在别人搭好的环境中,暴露service或者调用服务,从来没有重头搭建服务的经验,所以这次也碰到了不少问题。
-
如何把单module工程拆成支持多module的工程
比起传统复杂的单体工程,使用Maven的多模块配置,可以帮助项目划分模块,鼓励重用,防止POM变得过于庞大,方便某个模块的构建,而不用每次都构建整个项目,并且使得针对某个模块的特殊控制更为方便。
原来的工程是不支持dubbo的,所以需要拆分为client和service两个module。主要涉及到如何熟练运用idea这个IDE以及maven相关的知识
在root工程上右键选择


选择maven, 则在父工程下会新增一个pom文件

配置好module的依赖关系,文件夹就会添加蓝色小方格


-
如何判断Dubbo服务可用
服务端配好之后,最棘手的一个问题就是不知道服务是否可用,除非写一个消费端去调用,但是有没有其他的办法呢?答案是有的。
使用telnet命令查看dubbo服务
1.连接服务 telnet 服务ip 服务端口号
2.查看服务: ls
image.png
-
正确加载dubbo配置xml文件
添加的spring配置文件一定要加载到初始化的xml文件中,否则无法注册到zk
如下图: 一定要在spring.xml中引入dubbo的spring配置文件 spring-provider.xml
image.png
image.png
-
扫描注解包的配置
用到了dubbo的类才需要配置,随意扩大扫描包的范围,可能会导致意料不到的错误
image.png
image.png
网友评论