微服务注册中心Eureka架构深入解读

2019 年 1 月 07 日

微服务注册中心Eureka架构深入解读

微服务架构中最核心的部分是服务治理,服务治理最基础的组件是注册中心。随着微服务架构的发展,出现了很多微服务架构的解决方案,其中包括我们熟知的 Dubbo 和 Spring Cloud。

关于注册中心的解决方案,dubbo 支持了 Zookeeper、Redis、Multicast 和 Simple,官方推荐 Zookeeper。Spring Cloud 支持了 Zookeeper、Consul 和 Eureka,官方推荐 Eureka。

两者之所以推荐不同的实现方式,原因在于组件的特点以及适用场景不同。简单来说:

  • ZK 的设计原则是 CP,即强一致性和分区容错性。他保证数据的强一致性,但舍弃了可用性,如果出现网络问题可能会影响 ZK 的选举,导致 ZK 注册中心的不可用

  • Eureka 的设计原则是 AP,即可用性和分区容错性。他保证了注册中心的可用性,但舍弃了数据一致性,各节点上的数据有可能是不一致的(会最终一致)
     
    Eureka 采用纯 Java 实现,除实现了注册中心基本的服务注册和发现之外,极大的满足注册中心的可用性,即使只有一台服务可用,也可以保证注册中心的可用性。

本文将聚焦到 Eureka 的内部实现原理,先从微服务架构的部署图介绍 Eureka 的总体架构,然后剖析服务信息的存储结构,最后探究跟服务生命周期相关的服务注册机制、服务续约机制、服务注销机制、服务剔除机制、服务获取机制、和服务同步机制。

原文链接:【 https://www.infoq.cn/article/jlDJQ*3wtN2PcqTDyokh 】。未经作者许可,禁止转载。

登录后可解锁全站优质内容

免费畅享技术公开课、顶尖技术团队访谈、一线互联网大厂技术实践

文章
视频
电子书
研究报告
立即登录
2019 年 1 月 07 日 11:13 18272

评论 8 条评论

发布
用户头像
写的非常详细,这篇文章能转载吗?
2019 年 07 月 20 日 17:42
回复
用户头像
“每分钟续约数”改成“单个服务每分钟应续约数”更好理解一些。
2019 年 01 月 28 日 10:04
回复
用户头像
Eureka是没有机房部署一套还是共有一套呢?如果是每一个机房一套,那又是如何做到数据同步的???
2019 年 01 月 23 日 19:23
回复
一个集群就好了,可以参考下服务同步机制
2019 年 01 月 25 日 18:18
回复
用户头像
😄😁😄😁
2019 年 01 月 18 日 22:41
回复
用户头像
我错了 哈哈哈
2019 年 01 月 08 日 11:03
回复
用户头像
第一层的 key 是spring.application.name,value 是第二层 ConcurrentHashMap;

这里是打错了吧
2019 年 01 月 08 日 11:01
回复
用户头像
好复杂啊!!
2019 年 01 月 08 日 10:53
回复
没有更多评论了
发现更多内容

低代码平台,我看好宜搭

飞哥

低代码

Week3 命题作业

星河寒水

极客大学架构师训练营

架构师训练营 Week 03 关于反应式Web框架Flower

Wancho

2020年6月19日 服务器性能剖析

瑞克与莫迪

当你输入get/set命令的时候,Redis做了什么

老胡爱分享

redis 源码分析

必知必会,程序员都应该会的Linux的50个知识点!

Java小咖秀

Linux 面试 运维 Shell 经验

第三周作业

LEAF

常年“佛系”Crysis勒索病毒突然变种 变身黑客工具合辑

360安全卫士

区块链的未来,公链回归

CECBC区块链专委会

区块链技术 联盟链 公链 底层技术

ARTS - Week Five

shepherd

JavaScript algorithm

能走出来的,都不叫困境

zkback

对不起,我爱你

小天同学

小说 爱情 情感

flutter开发

InfoQ_1c4a1f813eb1

Facebook 起诉水军公司:删不过来,我还告不过来吗?

神经星星

facebook 亚马逊云 AWS Lightsail 水军 虚假评论

游戏夜读 | 最常见的两种类型

game1night

你真的了解敏捷吗?听马丁福勒聊敏捷

涛哥

敏捷 数字化转型

GitHub 热榜:一款堪称作业终结者的开源神器!

JackTian

GitHub 开源项目 工具类网站 学生党 Text-to-handwriting

行业观察丨区块链如何与工业互联网深度融合

CECBC区块链专委会

区块链技术 工业互联网 分布式存储

Zoom 妥协!对免费用户开放端到端加密服务

神经星星

音视频会议 Zoom 端到端加密 隐私保护 数据保护

“技术是用的,不是喊的”区块链标准为电商引入“诚信管家”

CECBC区块链专委会

区块链技术 溯源 电商 防篡改 诚信管家

系统设计(4)-请设计一个线程安全的HashMap

王传义

系统设计

还在埋头干活?给程序员的几个忠告

四猿外

Java 深度思考 程序员 随笔杂谈 程序员成长

培训机构出来的程序员常被鄙视,招谁惹谁了

程序员生活志

程序员 程序人生

【写作群星榜】6.12~6.19 写作平台优秀作者 & 文章排名

InfoQ写作平台

写作平台 排行榜

架构师训练营-week01 学习总结

GunShotPanda

antdesign table 设置默认选中行且不可编辑

张张张小烦

Free space——区块链加密社交平台新秀之作

Geek_116789

跨云厂商部署 k3s 集群

米开朗基杨

k3s wireguard

如何让企业的IT数据运维更有“烟火气”?

BonreeAPM

数据挖掘 机器学习 数据中台 运维 大屏可视化

运营系统架构文档

师哥

移动终端智能卡与安全计算环境研究

石君

安全芯片 移动终端 终端安全

众安黑客马拉松大赛总决赛-InfoQ小编探班

众安黑客马拉松大赛总决赛-InfoQ小编探班

微服务注册中心Eureka架构深入解读-InfoQ