中间件核心技术与实战
丁威
中通快递资深架构师,RocketMQ 社区首席布道师
19674 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
中间件核心技术与实战
15
15
1.0x
00:00/00:00
登录|注册

09|技术选型:如何选择微服务框架和注册中心?

你好,我是丁威。
从这节课开始,我们正式进入微服务领域中间件的学习。我们会从微服务框架的诞生背景、服务注册中心的演变历程还有 Dubbo 微服务框架的实现原理出发,夯实基础。然后,我会结合自己在微服务领域的实践经验,详细介绍 Dubbo 网关的设计与落地方案,以及蓝绿发布的落地过程。
这节课,我们先从基础学起。

微服务框架的诞生背景

分布式架构体系是伴随着互联网的发展而发展的,它经历了单体应用和分布式应用两个阶段。记得我在 2010 年入职了一家经营传统行业的公司,公司主要负责政府采购和招投标系统的开发与维护工作,那是我第一次真正见识了庞大的单体应用架构的样子。
当时公司的架构体系是下面这个样子:
所有的业务组件、业务模块都耦合在一个工程里,最终部署的时候会打成一个统一的 War 包然后部署在一台 Web 容器中,所有的业务模块都访问同一个数据库。
在传统行业,这种架构的优势也很明显。因为部署结构单一,所以管理非常方便,而且一般情况下,政府采购等行为的流量变化不大,不会像互联网那样,随着平台的搭建造成业务体量的指数型增长。
我们设想一下,如果某一天国家发布政策,想要做一个全国的统一的政府采购平台,假设这家公司中标了,他们会怎么改造系统呢?通常的做法就是对系统进行拆分,单独部署和扩展各个子系统,拆分后的系统架构如下图所示:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文从微服务框架选型和注册中心框架的演变两个方面介绍了微服务。首先介绍了Dubbo和Spring Cloud两个微服务框架的特点和优势,指出Dubbo在易用性、可扩展机制和性能方面具有优势。然后,作者结合自身行业和公司技术栈的情况,倾向于采用Dubbo来构建微服务架构体系。接着,文章详细介绍了注册中心的选型问题,分析了ZooKeeper和Eureka两种注册中心的设计理念和优劣势。最后,作者结合实际故障经历,介绍了注册中心从CP向AP架构演进的原因。总的来说,文章通过对比分析,为读者提供了选择微服务框架和注册中心的参考依据,帮助读者更好地理解和应用微服务框架和注册中心。文章内容丰富,涵盖了微服务框架和注册中心的重要技术特点,对读者进行了全面的指导和建议。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《中间件核心技术与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 麻婆豆腐
    老师好,K8S也提供了微服务能力如服务发现,api网关,容错限流等,微服务的架构可以是可以k8s+springboot吗

    作者回复: 嗯,犀利,容器化是目前的趋势与主流

    2022-07-04
    2
  • james
    dubbo是可以配置本地缓存信息的,就算注册中心全部完蛋也没事 dubbo.meta.cache.filePath 和 dubbo.mapping.cache.filePath 这俩配置可以设置缓存位置

    作者回复: 对的,dubbo会缓存在本地,但只在启动时有用,但基于zk这种实时感知能力,zk通知消费者将一个空集合推给消费者,消费者会清空内存,导致运行时就感知不到真实的生产者了。

    2022-07-26归属地:上海
  • Y a n g
    [思考题]ZooKeeper貌似有快照机制,发生故障之后是不是可以利用快照文件来快速恢复?

    作者回复: 快照应该只保留持久节点,处理这个问题其实非常简单,我们只需要将zookeeper中的数据全部清除,然后重启zookeeper,dubbo会自动重新注册,即可快速恢复。

    2022-07-22归属地:上海
    2
  • 修改dubbo的配置,改成消费者直连服务提供者的模式

    作者回复: 你好,这种方式也是可以的,不过修改起来也是很麻烦,不能快速止血,我这边想到的一个方案:就是清除zookeeper的数据,然后重新启动zookeeper,这样zookeeper就能快速恢复正常,此时dubbo 服务提供者会自动向zookeeperh中注册,消费端就可以动态感知,问题能得到快速恢复。

    2022-07-20归属地:上海
  • 客舟听雨来coding
    CAP的P是可用性?不是分区容忍性吗?

    作者回复: 你好,A是可用性,C一致性,P分区容忍性(也可以理解为持久性)

    2022-07-07
    5
  • 雨落~紫竹
    必须保证业务的可用 可以采用降级 本地存储一份 什么组件干什么活 对于核心业务 应该采用独立集群 让他们自己玩去

    作者回复: 嗯,降级是必要的。是要进行隔离,微服务体系的注册中心必须独占,并且要做好监控告警,目前主要是zookeeper的acl感觉对用户使用不太友好,授权比较麻烦,别人只要知道地址就可以用,我们后面也加强了zookeeper的监控。

    2022-07-04
  • 嘉嘉☕
    CAP 理论指的是,在一个分布式集群中存储同一份数据,无法同时实现 C(一致性)、A(可用性) 和 P(持久性),只能同时满足其中两个。由于 P 在数据存储领域是必须要满足的,所以通常需要在 C 与 A 之间做权衡。ZooKeeper 是保住了一致性和持久性,选择性地牺牲了可用性。 老师,你好,关于cap的这段描述,p为持久性,老师可以发个出处吗?确实第一次看到这个解释,可能对后面部分的产生一些误解
    2022-12-06归属地:浙江
    2
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部