狂神说SpringBoot17:Dubbo和Zookeeper集成
https://mp.weixin.qq.com/s?__biz=Mzg2NTAzMTExNg==&mid=2247483947&idx=1&sn=0c8efabbaf9b8ca835d862e6e0a2254f&scene=19#wechat_redirect
微服务的论文(必看):
英文:https://martinfowler.com/articles/microservices.html
中文:https://www.cnblogs.com/liuning8023/p/4493156.html
架构演进:
三层ORM——>三层MVC——>分布式RPC——>分布式微服务SOA
Dubbo是分布式微服务架构,他需要你额外的添加一个注册中心,一般推荐使用zookeeper。
Dubbo服务的注册与发现流程:
zookeeper的官网:
http://www.apache.org/dyn/closer.cgi/zookeeper/
如果你自己去下载,请将默认的zoo_sample.cfg 改名为 zoo.cfg。
zookeeper的配置文件zoo.cfg:
端口(默认2181)、心跳时间等信息
服务提供者:
需要添加的依赖(pom.xml)
1 | <!--添加dubbo相关依赖--> |
修改配置文件:
1 | #springboot集成dubbo的配置 |
在spring boot的启动类上贴注解@EnableDubboConfiguration // 表示开启dubbo
在业务类(服务)上面贴注解
@Service(interfaceClass = HelloService.class,timeout = 1000)
@Component // 添加到bean容器
服务消费者:
依赖同上,只需要少量的配置即可。
1 | #springboot整合dubbbo |
同样在启动类上面贴注解@EnableDubboConfiguration
在调用服务(Controller)上,我们通过贴注解
@Reference(interfaceClass = 接口类.class,check = false)
监控中心dubbo admin:
1:下载地址:
https://github.com/apache/dubbo-admin/tree/master
2:教程(本文最开始的地方,或点我,或就看老王的教程)
执行jar包或者war包(需要在tomcat开启),如果是war包,tomcat的端口需要配置为7001。
3:访问地址(如果是线上,自行更换IP):
http://localhost:7001/dubbo-admin-2.5.6
服务抽取:
我们可以将实体、接口抽取成两个模块,分别使服务的提供者和消费者来导入依赖并使用他们。
需要注意的是,实体需要序列化,实现Serializable接口即可。
(简单图示)
抽取的关键在于分离关注点。