(1)内部逻辑调用关系
在这之中有5个成员
1.provider
服务提供方。主要向注册中心注册其提供的服务
2.consumer
消费者。消费者从注册中心获取服务提供者列表,并根据负载算法直接调用提供者
3.registry
注册中心,负责服务地址的注册与查找。服务提供者和消费者只在启动时与注册中心交互(所以压力不会大)
4.monitor
监控中心。统计服务的调用次数和调用时间。
5.container
也就是提供者和消费者运行的容器,一般就是spring
注意:注册中心、服务提供者、消费者三者之间均为长连接。
注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者
(2)执行过程
1.服务提供者启动,然后向注册中心注册自己提供的服务
2.消费者启动,向注册中心订阅自己所需的服务
3.注册中心返回服务提供者地址列表给消费者。如果提供方关闭或有其他变更,注册中心基于长连接,推送变更数据给消费者
4.服务消费者从提供者列表中,基于负载均衡算法,选一台提供者调用
5.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心