Gateway中涉及三大块知识包括Netty、响应式框架Reactor以及Gateway。虽然Gateway集成SpringBoot、SpringCloud等微服务架构,但是利用Netty取代了传统Web框架SpringMvc,所以其启动流程会有很大的差异。本文主要结合启动流程分析Gateway中涉及的事件发布机制,从而对Gateway中动态路由功能有更加直观的感受。
Gateway中触发事件发布机制的核心类为AnnotationConfigReactiveWebServerApplicationContext 。在启动类 ConfigurableApplicationContext#run 中完成初始化。
如图所示:ApplicationContext核心类同时也是一个发布者。
1、EurekaClientAutoConfiguration
借助 EurekaClientAutoConfiguration 心跳机制完成 AnnotationConfigReactiveWebServerApplicationContext 发布者事件的发布。
public EurekaClient eurekaClient(ApplicationInfoManager
|