Spring Cloud Eureka集群搭建
一. 简介
1. Eureka是netflix的服务发现服务器和客户端。Eureka是提供服务注册,为每个注册服务提供知晓其他服务状态服务。
服务发现:服务发现可以让一个应用或者组件发现其运行环境以及其他应用或者组件的信息。用户配置一个服务发现工具就可以将实际容器跟运行配置分离开。常见配置信息包括:ip、端口、名称等。
服务注册:一个服务将其位置信息在“中心注册节点”注册的过程。该服务一般会将它的主机IP地址以及端口号进行注册,有时候也会有服务访问的认证信息,使用协议、版本号、以及关于环境的一些细节。
2. Eureka组成:
Eureka-server:服务端,
Eureka-client:客户端
二. Eureka Server的高可用
1. 注册中心的可持续性
如果部署单台服务注册中心,可能会因为服务中心的故障导致整个服务瘫痪。我们往往可能需要在生产环境构建多个Eureka Server节点来保证服务注册中心的整体持续可用。
2. 机制
Eureka通过“伙伴”机制实现高可用。每一台Eureka都需要在配置中指定另外两个Eureka的地址伙伴,Eureka启动时会向自己的伙伴节点获取当前已经存在的注册表,这样在向Eureka集群中新加机器时就不需要担心注册表的不完整。
3. 注册与发现
现创建三个server节点构成集群:
·创建application.yml作为Eureka服务中心的配置
·群名称为:discovery
·集群节点名称分别为:discovery-primary、discovery-secondary、discovery-tertiary
·tomcat的启动端口分别为:8761、8762、8763
·在C:\Windows\System32\drivers\etc\修改host文件
4. 配置集群
application.yml(Discovery-primary)
aplication.yml(discovery-secondary)
aplication.yml(discovery-tertiary)
5. 参数解释
Server.port 配置了tomcat的启动端口
Eureka.instance.hostname Eureka的实例名称
Registerwitheureka配置为true表示是否将本身注册到eureka server以被发现
Fetchregistry配置为true表示是否需要从Eureka Server中抓取Eureka上的注册信息
DefaultZone表示注册地址
6. 启动注册中心
分别启动discovery-primary、discover-secondary、discovery-tertiary集群节点
此时分别访问注册中心:
两两注册的方式可以实现集群中节点完全对等的效果,实现高可用性集群,任何一台注册中心故障都不会影响注册与发现。