dubbo是一种解决远程调用的方案,架构如下:
(图片来自dubbo官网)
流程如下:
- Registry服务器的搭建,配置
- provider,consumer配置链接Registry服务器
- provider通过扫描的方式把自己的服务创建出来,并且注册到Registry里
- consumer从Registry得到这个服务,通过spring自动注入的方式将service注入到需要的地方,从而实现对远程service的调用。
图中比较重要的部分就是registry。也就是注册中心,他用来负责接收注册的服务,并把已经注册的服务下发给Cosumer。
注册中心我使用的是zookeeper,在linux系统搭建好
可以看到启动成功了,端口是2181,Provider和Consumer就可以注册了。
如果想要看zookeeper的控制台,可以直接把dubbo的admin war 包拷到tomcat的webapps目录下,启动tomcat,在war包解压后,修改dubbo.properties内的地址和账号密码,再重启tomcat,访问对应网址和端口,就可以访问控制台了。
开启Transaction后会导致获取不到服务,是因为此时服务已经不是原来的类,而是变成了一个代理类。所以需要通过配置的方法来解决。