Eureka 集群搭建(HA)原理与实战
文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 :
免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备
免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷2)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《Java高并发核心编程(卷3)加强版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 经典图书:《尼恩Java面试宝典 最新版》 面试必备 + 大厂必备 +涨薪必备 加尼恩免费领
免费赠送 资源宝库: Java 必备 百度网盘资源大合集 价值>10000元 加尼恩领取
Eureka 高可用集群(HA)
在分布式系统中,任何的地方存在单点,整个体系就不是高可用的,Eureka 也一样,在上面的架构图中Eureka Server不是以单点存在的,而是以集群的方式对外提供服务。

为了提供高可用性,说白了就是保证机器挂了还是可以服务注册的能力,一般都不会将注册中心部署到一台机器上,而是采取多台机器部署,集群化管理。
注册中心的集群化,最简单的做法就是:
将注册中心相互注册,但是不开启检索服务的能力(fetch-registry: false
)
这也是Eureka的特性使得的,因为Eureka身兼三职,其中一职(Eureka Client)天然就是客户端角色。
模拟的实验,修改hosts文件,模拟三个节点,添加对应的映射:
127.0.0.1 register-master
127.0.0.1 register-salve1
127.0.0.1 register-salve2
主节点的配置为:
修改配置文件
master:
#服务端口
server:
port: 8880
eureka:
instance:
hostname: register-master
client:
#通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
fetch-registry: false
register-with-eureka: true
#注册register-salve1,register-salve2做注册中心集群
service-url:
defaultZone: http://register-salve1:8881/eureka/,http://register-salve2:8882/eureka/
spring:
application:
name: register-center
salve1节点的配置为:
#服务端口
server:
port: 8882
eureka:
instance:
hostname: register-salve1
client:
#通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
fetch-registry: false
register-with-eureka: true
#注册register-salve1,register-salve2做注册中心集群
service-url:
defaultZone: http://register-master:8880/eureka/,http://register-salve2:8881/eureka/
spring:
application:
name: register-center
salve2节点的配置为:
#服务端口
server:
port: 8882
eureka:
instance:
hostname: register-salve2
client:
#通过设置fetch-registry与register-with-eureka 表明自己是一个eureka服务
fetch-registry: false
register-with-eureka: true
#注册register-salve1,register-salve2做注册中心集群
service-url:
defaultZone: http://register-master:8880/eureka/,http://register-salve1:8881/eureka/
spring:
application:
name: register-center
主节点的控制台界面:
slave1节点的控制台界面:
slave2节点的控制台界面:
高可用原理
eureka:
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
-
向注册中心注册自己
register-with-eureka: true
-
自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2019-01-09 Netty 高并发 (长文)
2019-01-09 Feign-独立使用-实战