Eureka Server启动过程

  前面对Eureka的服务端及客户端的使用均已成功实践,对比Zookeeper注册中心的使用区别还是蛮大的:

    Eureka Server启动过程

    P:分区容错性(⼀定的要满⾜的)C:数据⼀致性 A:⾼可⽤;CAP不可能同时满⾜三个,要么是AP,要么是CP。

  就使用而言最明显就是Zookeeper需要安装3个或3个以上服务端安装启用才能构成集群而Eureka导入依赖处理配置文件同时开启Eureka Server自动装配即可。Zookeeper具体使用可参考Zookeeper应用之一:数据发布与订阅初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)

  Eureka Server如何启动的呢?回忆一下Spring Boot的热插拔技术Spring Boot 热插拔技术应用 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com),Eureka Server启动也是利用了该技术。

    Eureka Server启动过程

   通过源码可知,需要有⼀个marker bean,才能装配Eureka Server,那么这个marker其实是由@EnableEurekaServer注解决定的。所以@@EnableEurekaServer开启了Eureka Server的自启动。

   下面重点分析自动配置及Server启动部分:

    1、EurekaServerAutoConfiguration

      Eureka Server启动过程

     2、EurekaServerInitializerConfiguration

       Eureka Server启动过程

   Eureka Server启动过程

   上图中几个点需要注意:

    1)事件发布,从命令模式的维度理解Spring 之Application Event - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中详细阐述了Spring关于事件处理的应用和机制。通过图中事件UML图

      Eureka Server启动过程

    那么这俩事件的监听者是谁呢?即具体执行他们的是哪个Listener呢?找到泛型为这俩事件类型或父类型的Listener即可,跟踪可发现是通用事件RestartXXXXListener,只要实现了ApplicationEvent的类均会执行。

     2)事件发布前,eureka各种环境准备关注int registryCount = this.registry.syncUp();

      Eureka Server启动过程

 

 

 

 

  

 

 

 

上一篇:SpringCloud相关配置合集(持续更新)


下一篇:Springboot @Autowired 和 @Resource 我的剖析,金九银十Java热点知识