SpringCloud Eureka
首先有以下问题
- Eureka是什么?
- Eureka简介
- Eureka原理
分析如下:
- Eureka是一款服务发现组件、类似Zookeeper 它来自生产环境,SpringCloud对其兼容性很好
- Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移目的。Spring Cloud将其集成在子项目中(spring-cloud-netflix),实现服务发现功能。
官方架构图如下:
简单描述下 Eureka集群工作过程如下
Application Client 服务消费者
Application Service 服务提供者
Make Remote Call 远程调用
us-east-1c、us-east-1d属于zone,他们都属于us-east-1这个的Region
由图可知 Eureka包含两个组件 Eureka Client和 Eureka Server
Eureka Server 提供服务注册服务,各个节点启动后 会在Eureka Server中注册,Eureka Server中的服务注册表中会存储可用服务节点的信息,服务节点信息可在界面中直接观看到
Eureka Client 是一个Java客户端,客户端也具备一个内置的、使用轮询负载算法的负载均衡器,应用启动后将会往Eureka Server发送心跳(默认30s),如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把节点移除(默认90s)
Eureka Server之间将通过复制的方式完成数据的同步,Eureka还提供客户端缓冲机制,所有Eureka Server节点都挂掉,客户端利用缓冲的信息消费其它服务的API
综上所叙,Eureka通过心跳监测、健康检查、客户端缓冲机制,确保了系统的高可用性、灵活性
@EnableEurekaClient 可以将服务注册到 EurekaServer中
如图思考如下问题
1.如何调用EurekaServer的微服务?
分析解答
服务注册到Eureka时,可在application.yml中配置spring.application.name 服务提供者应用名称,调用时通过服务提供者ServiceId即可
总结:
Eureka 作用于SpringCloud充当服务发现组件,其通过心跳监测、健康检查、客户端缓冲机制,确保了系统的高可用性
下一章节详细讲述微服务的负载均衡方式
作者简介:张程 技术研究
更多文章请关注微信公众号:zachary分解狮 (frankly0423)