几个概念:
1 服务提供者,就是服务的提供方,有可能就是一个普通的类文件
2 服务消费者 可能是一个简单的客户端,web前台
3 服务注册中心
a.高HA:支持数据库持久化和服务集群
b.数据一致性问题,集群中的所有客户应该看到同一份数据不能出现读写数据不一致
c.数据变更主动推送,当注册中心的数据发生变更时要及时通知客户端
关键性功能设计:
工作原理:
1)服务提供者在启动时,根据发布文件中配置的服务发布消息像注册中心注册自己提供的服务
2)消费者在启动时,像注册中心订阅自己所需要的服务,消费者刷新自己的本地缓存路由表
3)注册中心返回服务提供者的地址列表给消费者,如果有变更,注册中心推送变更数据给消费者,消费者更新自己的本地缓存列表
4)服务消费者根据得到的服务提供者地址列表,基于负载均衡算法选择其中一台server为自己提供服务
1、支持对等集群
注册中心要对等集群,防止一个多个注册中心进程宕机的时候,不会导致注册中心集群功能不可使用
注意:对于客户端来说,无论注册中心集群配置多少个进程,客户端都是只需要连接其中一个
2、提供CURD接口
客户端连接到注册中心之后要能够对注册中心的数据进行增(发布或订阅新的服务)删(去注册已发布的服务)改(修改已发布的服务属性,进行动态服务治理)查(查询当前系统的服务消息和订阅的消费者消息)等操作
3、安全加固
a.链路的安全性 b.数据的安全性
链路的安全性指的是服务中心对客户端进行安全认证,策略很多,最简单的就是基于IP的黑白名单校验,更加复杂的是基于用户名+密码的认证或者是基于秘钥+数字证书的认证
数据的安全性主要是对数据进行权限控制,不同的人有不同的访问权限
订阅发布机制:对服务的监听,内容变更时,可以收到注册中心的消息推送
服务提供者可以动态的修改服务名称、内容等可以将变更推送给监听它的消费者
优点:1)透明化路由 服务者和消费者解耦,消费者无需硬编码服务提供者地址
2)服务健康状态监测 注册中心可以实时监测发布服务这的质量,若服务宕机,注册中心会通知消费者
3)伸缩能力强 动态扩展服务器后,注册中心会将新增的服务器主动推送给客户端
可靠性:
1)对等集群,一台宕机不影响服务使用
2)全部宕机,不影响服务,但是没办法注册新的服务或者下线服务
3)通过长连接心跳检测服务提供者的健康状态