前言:
SpringCloud是基于springBoot的一整套实现微服务的框架.Eureka为springCloud架构中首选推荐的服务治理组件.从分布式或者微服务的角度来讲,将一个大的项目划分成许多小的项目,首当其冲的第一个问题就是子项目之间如何通讯的问题.Eureka是解决微服务架构中服务实例维护的一种技术解决方案之一.具体内容如下:
正文:
1.what
Eureka是一个服务注册和发现的组件,最初开始用于亚马逊公司旗下的云计算服务平台(AWS),Eureka分为Eureka Client和Eureka Server,专门用于给其他服务注册的注册中心称之为Eureka Server,注册到Eureka Server上的服务称之为Eureka Client.
2.why
>Eureka完全开源,是netflix公司的开源产品,经过了生产环境的检验和历时三年的不断迭代,在功能上和性能上相对而言都比较稳定.
>Eureka是springColud官方推荐首选的服务治理组件,其可与springCloud架构中其他组件无缝对接.
>Eureka与客户端负载均衡Ribbo,熔断器Hystix,服务网关Zuul等组件,很容易实现负载均衡/熔断/智能路由等功能,形成Netflix OSS组件,这些组件是SpringCloud的基础组件和核心组件.
3.architecture
在Eureka架构中,主要包含三种角色:
>registry service: eureka server,用于服务注册与发现的注册中心.
>provider service:服务提供者,eureka client
>consumer service:服务消费者,eureka client
服务消费的基本过程:
服务提供者向注册中心注册,将自己的服务信息(IP和实例名)注册到注册中心上,服务消费者也向注册中心注册,同时获取一份服务实例列表信息,通过httpClient远程调用的方式调度自己从列表信息中选择要调度的服务 .
4.governance mechanisms
服务提供者:
>服务注册:当服务提供者启动的时候,通过API的方式向注册中心注册,附带自己的相关元数据信息.
>服务续约:注册完毕之后,服务提供者会自动维护一个心跳,用来告诉注册信息,我还活着.
>服务下线:正常进行服务关闭操作时,服务提供者通过发送API请求告诉服务注册中心,我要下线了.
服务消费者:
>获取服务:服务消费者启动服务的时候,通过发送API的请求,向注册中心注册,同时获取一份服务实例列表信息,比如服务实例名和IP等.
>服务调用: 从获取的服务实例列表信息根据服务实例名和IP等信息选择要调度的服务进行调用.同处于一个zone的服务提供方,优先调用.
服务注册中心:
>失效剔除:默认每隔60秒将当前清单中超时90秒的没有续约的服务剔除出去
>自我保护:Eureka server在运行期间,会统计心跳失败的比例在15分钟内是否低于85%.Eureka server会将当前的实例注册信息保护起来,不让其过期.
结语:
宝剑锋从磨砺出,梅花香自苦寒来.