Spring Cloud Eureka Server启动步骤详解是怎样的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1048个文字,预计阅读时间需要5分钟。
前言:SpringBoot与SpringCloud版本对应关系:https://start.spring.io/actuator/info SpringCloud与Spring Cloud Alibaba版本对应关系:https://hub.fastgit.org/alibaba/spring-cloud-alibaba/wiki/版本说明
前言
SpringBoot与SpringCloud版本对应关系:start.spring.io/actuator/info
SpringCloud与Spring-Cloud-Alibaba版本对应关系:hub.fastgit.org/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
spring官网也能看到springboot与springcloud版本对应关系:spring.io/projects/spring-cloud-alibaba#learn
注册中心本质:存储每个客户端的注册信息,EurekaClient从EurekaServer同步获取服务注册列表,通过一定的规则选择一个服务进行调用。Eureka架构图如下:
-
服务提供者:是一个Eureka client,向 Eureka Server注册和更新自己的信息,同时能从Eureka Server注册表中获取到其他服务的信息。
-
服务注册中心:提供服务注册和发现的功能。每个Eureka Client向Eureka Server注册自己的信息,也可以通过Eureka Server获取到其他服务的信息达到发现和调用其他服务的目的。
-
服务消费者:是一个Eureka client,通过Eureka Server获取注册的其他服务信息,从而找到所需要的服务发起远程调用。
-
注册:服务提供者向Eureka Server端注册自身的元数据以供服务发现。
-
续约:通过发送心跳到Server以维持和更新注册表中服务实例元数据的有效性。在一定时长内,Server没有收到Client的心跳信息,将默认下线,会把服务实例信息从注册表中删除。
-
下线:服务提供方在关闭时候主动向Server注销服务实例元数据,这时服务提供方实例数据将从Server的注册表中删除。
-
获取注册表:服务消费者Client向Server请求注册表信息,用于服务发现,从而发起远程调用。
Eureka Server源码
EnableEurekaServer注解作用
- 通过 @EnableEurekaServer 激活EurekaServer
此类有一个重要作用:导入EurekaServerMarkerConfiguration配置类实例化了一个Marker的bean对象,此对象是实例化核心配置类的前提条件
//激活 EurekaServerAutoConfiguration 的开关 @Configuration(proxyBeanMethods = false) public class EurekaServerMarkerConfiguration { @Bean public Marker eurekaServerMarkerBean() { return new Marker(); } class Marker { } }自动装载核心配置类
SpringCloud对EurekaServer的封装使得发布一个EurekaServer无比简单,根据自动装载原则可以在spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar下的META-INF目录下找到 spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfigurationEurekaServerAutoConfiguration
@Configuration(proxyBeanMethods = false) @Import(EurekaServerInitializerConfiguration.class) @ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class) @EnableConfigurationProperties({ EurekaDashboardProperties.class, InstanceRegistryProperties.class }) @PropertySource("classpath:/eureka/server.properties") public class EurekaServerAutoConfiguration implements WebMvcConfigurer { /** * List of packages containing Jersey resources required by the Eureka server. */ private static final String[] EUREKA_PACKAGES = new String[] { "com.netflix.discovery", "com.netflix.eureka" }; @Autowired private ApplicationInfoManager applicationInfoManager; @Autowired private EurekaServerConfig eurekaServerConfig; @Autowired private EurekaClientConfig eurekaClientConfig; @Autowired private EurekaClient eurekaClient; @Autowired private InstanceRegistryProperties instanceRegistryProperties; }现在我们展开来说这个Eureka服务端的自动配置类;
-
1、这个配置类实例化的前提条件是上下文中存在EurekaServerMarkerConfiguration.Marker 这个bean,解释了上面的问题。
-
2、通过@EnableConfigurationProperties({ EurekaDashboardProperties.class,InstanceRegistryProperties.class })导入了两个配置类:
- 1、EurekaDashboardProperties:配置 EurekaServer的管控台
- 2、InstanceRegistryProperties:配置期望续约数量和默认的通信数量
- 3、通过@Import({EurekaServerInitializerConfiguration.class})引入启动配置类
EurekaServerAutoConfiguration作为自动配置类,我们看看它主要配置了哪些东西。
EurekaServerConfig
- 初始化EurekaServer相关配置
EurekaController
- 服务治理少不了需要一个DashBoard来可视化监控,EurekaController基于springmvc提供DashBoard相关的功能。
PeerAwareInstanceRegistry
- 初始化集群注册,发现注册作为主要的核心功能。
PeerEurekaNodes
- 初始化集群节点集合
EurekaServerContext
- 基于eureka server配置注册表,集群节点集合以及服务实例初始化eureka server上下文。
EurekaServerBootstrap
- 初始化Spring Cloud包装的Eureka原生启动类
FilterRegistrationBean
- 初始化jerseyFilter
Jersey提供rpc调用
- Jersey是一个restful风格的基于www.cnblogs.com/dalianpai/p/12263438.html
www.cnblogs.com/liukaifeng/p/10052590.html
www.cnblogs.com/zooking/p/13795257.html
www.cnblogs.com/pjjlt/p/11019247.html
本文共计1048个文字,预计阅读时间需要5分钟。
前言:SpringBoot与SpringCloud版本对应关系:https://start.spring.io/actuator/info SpringCloud与Spring Cloud Alibaba版本对应关系:https://hub.fastgit.org/alibaba/spring-cloud-alibaba/wiki/版本说明
前言
SpringBoot与SpringCloud版本对应关系:start.spring.io/actuator/info
SpringCloud与Spring-Cloud-Alibaba版本对应关系:hub.fastgit.org/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
spring官网也能看到springboot与springcloud版本对应关系:spring.io/projects/spring-cloud-alibaba#learn
注册中心本质:存储每个客户端的注册信息,EurekaClient从EurekaServer同步获取服务注册列表,通过一定的规则选择一个服务进行调用。Eureka架构图如下:
-
服务提供者:是一个Eureka client,向 Eureka Server注册和更新自己的信息,同时能从Eureka Server注册表中获取到其他服务的信息。
-
服务注册中心:提供服务注册和发现的功能。每个Eureka Client向Eureka Server注册自己的信息,也可以通过Eureka Server获取到其他服务的信息达到发现和调用其他服务的目的。
-
服务消费者:是一个Eureka client,通过Eureka Server获取注册的其他服务信息,从而找到所需要的服务发起远程调用。
-
注册:服务提供者向Eureka Server端注册自身的元数据以供服务发现。
-
续约:通过发送心跳到Server以维持和更新注册表中服务实例元数据的有效性。在一定时长内,Server没有收到Client的心跳信息,将默认下线,会把服务实例信息从注册表中删除。
-
下线:服务提供方在关闭时候主动向Server注销服务实例元数据,这时服务提供方实例数据将从Server的注册表中删除。
-
获取注册表:服务消费者Client向Server请求注册表信息,用于服务发现,从而发起远程调用。
Eureka Server源码
EnableEurekaServer注解作用
- 通过 @EnableEurekaServer 激活EurekaServer
此类有一个重要作用:导入EurekaServerMarkerConfiguration配置类实例化了一个Marker的bean对象,此对象是实例化核心配置类的前提条件
//激活 EurekaServerAutoConfiguration 的开关 @Configuration(proxyBeanMethods = false) public class EurekaServerMarkerConfiguration { @Bean public Marker eurekaServerMarkerBean() { return new Marker(); } class Marker { } }自动装载核心配置类
SpringCloud对EurekaServer的封装使得发布一个EurekaServer无比简单,根据自动装载原则可以在spring-cloud-netflix-eureka-server-2.2.5.RELEASE.jar下的META-INF目录下找到 spring.factories文件
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.cloud.netflix.eureka.server.EurekaServerAutoConfigurationEurekaServerAutoConfiguration
@Configuration(proxyBeanMethods = false) @Import(EurekaServerInitializerConfiguration.class) @ConditionalOnBean(EurekaServerMarkerConfiguration.Marker.class) @EnableConfigurationProperties({ EurekaDashboardProperties.class, InstanceRegistryProperties.class }) @PropertySource("classpath:/eureka/server.properties") public class EurekaServerAutoConfiguration implements WebMvcConfigurer { /** * List of packages containing Jersey resources required by the Eureka server. */ private static final String[] EUREKA_PACKAGES = new String[] { "com.netflix.discovery", "com.netflix.eureka" }; @Autowired private ApplicationInfoManager applicationInfoManager; @Autowired private EurekaServerConfig eurekaServerConfig; @Autowired private EurekaClientConfig eurekaClientConfig; @Autowired private EurekaClient eurekaClient; @Autowired private InstanceRegistryProperties instanceRegistryProperties; }现在我们展开来说这个Eureka服务端的自动配置类;
-
1、这个配置类实例化的前提条件是上下文中存在EurekaServerMarkerConfiguration.Marker 这个bean,解释了上面的问题。
-
2、通过@EnableConfigurationProperties({ EurekaDashboardProperties.class,InstanceRegistryProperties.class })导入了两个配置类:
- 1、EurekaDashboardProperties:配置 EurekaServer的管控台
- 2、InstanceRegistryProperties:配置期望续约数量和默认的通信数量
- 3、通过@Import({EurekaServerInitializerConfiguration.class})引入启动配置类
EurekaServerAutoConfiguration作为自动配置类,我们看看它主要配置了哪些东西。
EurekaServerConfig
- 初始化EurekaServer相关配置
EurekaController
- 服务治理少不了需要一个DashBoard来可视化监控,EurekaController基于springmvc提供DashBoard相关的功能。
PeerAwareInstanceRegistry
- 初始化集群注册,发现注册作为主要的核心功能。
PeerEurekaNodes
- 初始化集群节点集合
EurekaServerContext
- 基于eureka server配置注册表,集群节点集合以及服务实例初始化eureka server上下文。
EurekaServerBootstrap
- 初始化Spring Cloud包装的Eureka原生启动类
FilterRegistrationBean
- 初始化jerseyFilter
Jersey提供rpc调用
- Jersey是一个restful风格的基于www.cnblogs.com/dalianpai/p/12263438.html
www.cnblogs.com/liukaifeng/p/10052590.html
www.cnblogs.com/zooking/p/13795257.html
www.cnblogs.com/pjjlt/p/11019247.html

