写文章

《Spring Cloud Netflix》--服务注册和服务发现-Eureka的深入了解

2018-11-27 21:29:41

3459 | 0 | 0


images/T5phbwExYxmRAcWFyScps6SRj6rxx22d.png

Eureka的流程说明:

1、服务提供者会向Eureka ServerRegister(服务注册)、Renew(服务续约)、Cancel(服务下线)等操作。

2Eureka Server之间会做注册服务的Replicate(复制),从而保证状态一致。

3、服务消费者会向Eureka Server获取Registry(注册服务列表),并Make Remote Call(远程调用)消费服务

 

一、Eureka服务端启动过程


 1、  入口:EurekaServerInitializerConfiguration


face/pTwCxDXBNcsA75E23wj5cnwhAtkHsyks.png


说明:该类添加了@Configuration注解,可以被Spring容器感知。


  2、  Eureka的初始化:


images/fMabnzMsKyBxW5MRZ8MdYHD6YHRHGjNk.png



说明:

   a)initEurekaEnvironment(); 环境的初始化。

   b) initEurekaServerContext();服务的初始化。

 

3、查找服务初始化,里面的Eviction


face/YhKRJ24Z8KNJZmbbJKyyNwJT44hp68nK.png

     face/JC64ZdNBDexGzZTJQksym68SZn6XnAdB.png

face/jZwxbRf6ameGXkt6PpzhhxwabARQ5Qxe.png

face/MbbX5N7fiG562hPsRkJys6RNhbCBdC35.png

 

二、 Eureka客户端注册过程


   客户端注册流程


face/KxwMJYTkKc3Z2PmJJbdjBZAeb7bMQznb.png



1、入口:DiscoveryClient


face/4a2th6mGkfBPWtY6y2yCRQX6f3nbDezi.png



功能说明:

     1、  向Eureka Server注册服务实例

     2、  向Eureka Server续约

     3、  当服务关闭的时候向Eureka Server取消租约

     4、  查询注册到Eureka Server中的服务实例

 

2、实例化,调用构造方法


face/RiD4mnCawJNJfXWJ5xiSK5iMs4BemNs7.png

face/EMxG4Tc3xNzbCwKfSPzyDHdxbi6C6JZW.png


face/GHQGQCjjCCcBwARfNAFmB2RthnznSnpJ.png

face/dtXwfkHxi4eN2b6mYh2WhbhXKphiMSbZ.png

face/wHFsMmENT6AdTp8rFGZHGCGeYSkzRMWD.png

face/FXjJHm4DXcfMQMYXKHHMx4APiYHC7tHN.png

face/NpksT6PY6zA6zXaPsfniQy5STry47Yne.png


三、服务端接收注册过程


接收注册的流程:


face/2e43GHnCB2tDSjWrbDK2MWBWjAdtWXsa.png


1、入口:ApplicationResource的addInstance()方法


face/Ti3KHPXQBJRW5wJ3bwRFdwT3QbkFJD3C.png

images/CE2kt2k5rfMEAKbThZttjRQPHchTbYiW.png

face/Z72bFFEfwbQYfYyPByWeK2mAcQCXK6At.png

face/yiTFxtjPdafXSpszW4An5jt7jstfRjcZ.png



说明:

1、 调用PeerAwareInstanceRegistryImpl的register方法

2、 完成服务注册后,调用replicateToPeers向其它Eureka Server节点(Peer)做状态同步

 

 

参考文档:http://nobodyiam.com/2016/06/25/dive-into-eureka/


参考视频内容:http://www.roncoo.com/course/view/cc8fbd6749f94f2fa015641ef96b9460


点击链接加入群【Spring Cloud 实战群】:https://jq.qq.com/?_wv=1027&k=47b3qqL


0

收藏
分享