1、为什么要将系统进行拆分?
1)各种代码冲突和合并处理。
2)有改动,所有代码要重新测试
3)每次发布都是几十万行代码的发布,大家提心吊胆。
4)一个人升级框架版本会导致其他人代码报错。
2、dubbo工作原理
第一层:service层,接口层,给服务提供者和消费者来实现的
第二层:config层,配置层,主要是对dubbo进行各种配置的
第三层:proxy层,服务代理层,透明生成客户端的stub和服务单的skeleton
第四层:registry层,服务注册层,负责服务的注册与发现
第五层:cluster层,集群层,封装多个服务提供者的路由以及负载均衡,将多个实例组合成一个服务。
第六层:monitor层,监控层,对rpc接口的调用次数和调用时间进行监控
第七层:protocol层,远程调用层,封装rpc调用
第八层:exchange层,信息交换层,封装请求响应模式,同步转异步
第九层:transport层,网络传输层,抽象mina和netty为统一接口
第十层:serialize层,数据序列化层
3、工作流程:
1)第一步,provider向注册中心去注册
2)第二步,consumer从注册中心订阅服务,注册中心会通知consumer注册好的服务
3)第三步,consumer调用provider
4)第四步,consumer和provider都异步的通知监控中心
4、注册中心挂了可以继续通信吗?
可以,因为刚开始初始化时,消费者会将提供者的地址等信息拉取到本地缓存,所以注册中心挂了可以继续通信。
5、总结
服务拆分会有多轮。
dubbo是一种rpc框架。