一 、分布式服务框架架构图
(1)ProviderGroup: 每个Group由多台Node组成,每个Node需要保证以下配置
1. 采用相同的application name
2. 保证provider的连接地址互不相同(在单机上部署多个provider需要保证端口不同)
3. 注册中心地址一致
(2)CustomerGroup: 每个Group由多台Node组成,每个Node需要保证能网络连接到所需业务的Provider并保证以下配置
1. 采用相同的application name
2. 注册中心地址一致
(3)RegisterGroup: 服务调用的分配者,每个RegisterNode监听除自身以外所有节点是否存活和健康(包括其RegisterGroup)
管理节点,可选节点,只作为一个管理者和观察者
二、针对以上架构搭建代码框架
随着快的业务的快速发展,我们逐步按照业务垂直划分,抽象出基础服务层。
1. 服务化的目标
(1) 基础服务的服务为上游业务的灵活发展提供支持
(2)服务应用本身无状态化,可以随着系统的负荷灵活伸缩
(3)服务的稳定性,可用性达到99%
2. dubbo架构
dubbo作为服务化中间件,dubbo作为一个RPC框架,大致原理如图:
- Registry: 注册中心;和服务的消费者,和服务提供者都建立长连接。服务提供者注册服务到注册中心;服务消费者从注册中心获取服务提供者列表;
- Consumer: 服务消费端;服务消费者从注册中心获取到服务提供者列表后,根据负载均衡算法,选择一个服务提供者,和服务提供者直接建立连接,开始调用服务;
- Provider:服务提供者;服务提供者提供RPC服务;
- Monitor: 监控服务的调用情况统计;
- 注册中心为N+1对等集群,一台挂掉后,会自动切换到另外一台注册中心
- 注册中心全部挂掉后,消息消费者本地会缓存服务提供者列表,所以不影响当时的服务调用。
- 服务提供者为集群,一台挂掉后,通过心跳过程,注册中心会立即刷到服务消费者告知;
3. 工程分类
参考文章:
http://itindex.net/detail/50503-dubbo-服务