eureka 的解析
一、Eureka
基本概念
Eureka 是 Netflix 开发的服务发现框架,SpringCloud 将它集成在自己的子项目 spring-cloud-netflix 中,实现 SpringCloud 的服务发现功能。Eureka 包含两个组件:
Eureka Server\
Eureka Client\
Eureka Server 提供服务注册服务:
各个节点启动后,会在 Eureka Server 中进行注册,这样 EurekaServer 中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。\
多个 Eureka Server 之间通过复制的方式,来实现服务注册表数据的同步。\
Eureka Client 是一个 java 客户端:
客户端同时也包含一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
在应用启动后,将会 向 Eureka Server 发送心跳维持自己的注册状态,默认周期为 30 秒,如果 Eureka Server 在多个心跳周期内没有 接收到某个节点的心跳,Eureka Server 将会从服务注册表中注销该实例,把这个服务节点移除,默认周期为 90 秒。
server 端配置
client 端配置
Eureka Client 会缓存服务注册表中的信息,所以 Eureka Client 无须每次调用微服务都要先查询 Eureka Server,能有效地缓解 Eureka Server 的压力,而且即使所有的 Eureka Server 节点都宕掉,Client 依然可以根据缓存中信息找到服务提供者。\
综上,Eureka 通过心跳检查、集群、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。\
\
二、搭建 Eureka 服务器
官方文档:https://spring.io/projects/spring-cloud
1、父工程中定义 Spring Cloud 的版本
2、创建 Eureka 服务器模块
创建 Maven 模块:guli-commonservice-eureka
3、配置 pom
4、配置 application.properties
5、创建启动类
在启动类上添加注解 @EnableEurekaServer
6、logback.xml
7、启动 Eureka 注册中心并在浏览器中访问
System Status:系统信息
DS Replicas:服务器副本
Instances currently registered with Eureka:已注册的微服务列表
General Info:一般信息
Instance Info:实例信息
三、服务注册
在 edu 微服务中完成以下配置\
1、客户端配置 pom
配置 Eureka 客户端的 pom 依赖
2、添加服务配置信息
配置 application.properties,在客户端微服务中添加注册 Eureka 服务的配置信息
3、添加 Eureka 客户端注解(可选)
这是我参与「掘金日新计划 · 6 月更文挑战」的第 21 天 ,点击查看活动详情在客户端微服务启动类中添加注解
在启动类使用@EnableDiscoveryClient
或者@EnableEurekaClient
声明该应用为 Eureka Client
@EnableDiscoveryClient
或者@EnableEurekaClient
的区别在于前者是后者的抽象。在 Spring Cloud 中,服务发现组件有多种,@EnableDiscoveryClient
为各种服务组件提供了支持,而@EnableEurekaClient
则只能与 Eureka 一起工作。在 Edgware 版本之后,不再需要添加该注解。
4、启动客户端微服务
启动注册中心
启动已注册的微服务,可以在 Eureka 注册列表中看到被注册的微服务
版权声明: 本文为 InfoQ 作者【卢卡多多】的原创文章。
原文链接:【http://xie.infoq.cn/article/738235f54f04d9ccd109acdf7】。文章转载请联系作者。
评论