

微信中两大典型微服务案例
source link: https://mp.weixin.qq.com/s/7bVQR6uK3hKU0T77oXNJjA
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

微信中两大典型微服务案例
熊普江 高可用架构 2017-11-08 07:05 Posted on
腾讯公司资深架构师
负责公司业务资源规划与技术架构评审等工作。腾讯公司级课程讲师,GITC 专家顾问,WOT 特约讲师,GOPS 金牌讲师。自 1997 年涉足互联网,曾服务美国 Supreme、太平洋网络、PPTV 等互联网公司,任网络运营总监、运维总监等职务。近 20 年互联网从业背景,对大型网络架构规划与建设,海量用户平台规划与运营技术支持,超大规模业务资源规划与技术架构管理优化有丰富的经验。
互联网技术一直在快速演进当中,同时移动互联网与云时代来临,微服务架构由此应映而生。
如下图,是微服务在我国的百度搜索指数:
从图中可以看出,自 2013 前后微服务开始逐渐被大家关注,随时间推移搜索的人也越来越多,直至 2016 年爆发。
微服务架构的快速发展并广泛流行,和以下因素息息相关:
互联网技术架构飞速演进,特别是底层硬件及芯片技术快速发展,后端服务器的能力越来越强大。多数情况下,单个业务已很难消耗完一整台服务器的资源或处理能力。
移动互联网深度融合与应用,瘦客户端兴起,使得云端能力与承载变得更加重要。
容器技术得到广泛认可与应用,轻量级协议、代码管理、新集成方法与工具等技术也越来越成熟。
近两年,微服务这个术语渐成热门词汇,但它不是一个全新架构,更不是一个包治百病的架构。那么,微服务架构与单体式架构相比优势体现在哪?这些优势又给开发模式、运维带来哪些痛点?
微服务架构的优势及痛点
微服务和单点服务的区别是什么呢?比喻来讲,单点服务是把所有的东西放在一个大盒子里,这个大盒子里什么都有。
微服务更像是车箱,每个箱子里包含特定的功能模块和物品,所有模块可以很灵活地拆分出来。
换言之,在单点服务中,所有的部件都在一个巨大的软件包中。在微服务架构下,有很多独立存在的小服务,通过 API 接口连接成庞大的系统。
相比过往的单体式应用架构,微服务架构优势明显,如:
单个微服务更易理解、方便开发与维护。
应用解耦,对整体应用交付而言,开发迭代更敏捷。
技术选择更加自由,微服务不再需要限定统一的技术实现。
微服务独立部署,应用更稳定,同时扩展更加容易与快速。
同时,微服务架构的特点与优势在开发模式、运维等方面也带来很多痛点,如:
微服务众多,容器编排与部署管理等会变得异常复杂。
业务的容量管理变得更加困难,资源利用效率难以提升。
监控的颗粒度增多,关联关系更加复杂。
微服务故障恢复、调度需要更精细化。
微信中两大典型微服务案例
熊普江老师表示,微信一直提倡敏捷开发与“大系统小做”,这其实就是微服务的理念与架构实现。
由于微信诞生于 2011 年,当时微服务架构的概念还没有普及,也就是说,微信的微服务架构在业界实施并落地相对较早。
微信中微服务案例有很多,这里主要分享服务布局、过载保护两大典型案例。
微信的服务布局采用的是多地自治、园区互备架构。如下,是微信的服务布局示意图:
城市之间的数据是相对独立的。除了少数账号全球同步,大部分业务都希望做成电子邮件式的服务,各自有自身的环境在跑,之间使用类似于电子邮件的通信。
城市间的后备则使用公网的 udp 通道。在城市内,使用三园区架构,每个园区是一套独立的系统,从接入、逻辑、存储每一层完全独立,可互相为对方提供备份。
多园区形成整体服务能力。在园区内,由多机组成 set,互为容错,包含网络与电力也是独立的。这样的服务布局,不仅是微服务架构,而且考虑了容灾能力。
过载保护的微服务架构,目的是确保核心服务可用。确保核心服务的可用性有如下三点:
考虑问题应该是服务要有轻重分离,即一个服务里不能既有重的操作,又有轻的操作。
队列控制,要了解一个请求在队列中等待的平均时间,从而决定是否要启动拒绝。
组合命令式,由于微服务的调用链及层次可能会增多,后端服务也可能是多个。
假定后端有两个服务(A 服务与 B 服务),而前端调用需要依赖于 A、B 服务的组合结果,那么单个 A 或者单个 B 的轻微过载,就可能导致前端服务不可用,这是很严重的问题。这种情况下,就需要一个反馈机制。
如下,是过载保护的微服务架构示意图:
如上图所示,整个系统基于反馈,把整个拒绝的信息全程传递。最右边是几个典型的服务,从一个 CGI 调用一个后台服务,再调用另一个后台服务,系统会在 CGI 层面就把它的重要程度往下传。
回到刚才前端调用 A、B 服务的例子,使用这样的一种重要程度传递,就可以直接拒绝那些相同用户的 20% 的请求,有效地解决单个服务轻微过载的问题。
本文转载自 51CTO技术栈 公众号。
推荐阅读
54 个架构案例 49 位作者 2 年打磨
『高可用架构』第 1 卷 10 月上市
点击 阅读原文 抢先预订
高可用架构
改变互联网的构建方式
Recommend
-
99
-
54
上周在工作中遇到一个504问题,特写此文记录,关注我公众号的读者可能阅读过一篇关于502问题的文章
-
68
原标题:张勇进,马云退作者:CubaLibre今天(10月31日),阿里巴巴2018股东大会将在香港召开。就在股东大会前夜,马云和张勇陆续发出致股东信。字里行间,马云的退与张勇(逍遥子)的进,一览无余。“张勇正带领着阿里巴巴的年轻人们展示着
-
8
网信办公布AI企业典型应用案例名单,同盾智邦平台入选 - IT业界_CIO时代网 - CIO时代—新技术、新商业、新管理网信办公布AI企业典型应用案例名单,同盾智邦平台入选 2021-05-13 15:11:42 来源: 摘要:近日...
-
3
B端设计师必看:聊聊B端两大设计系统典型页面 晨屹 2021-11-22 4 评论...
-
6
【环境信息】 某咖啡厅内需要实现无线覆盖,使得客人在咖啡厅内包间及大厅都可以通过有线网络或无线网络访问互联网。内部员工可以通过无线或有线连接公司内网络办公,咖啡厅高级别管理人员既可以访问公司内网也可以上互联网。 【需求...
-
6
超高清视频典型应用案例评审工作正式启动超高清导语:据了解,评审工作将分小组多轮次展开,评审工作结束...
-
11
2022-09-08 01:59 工信部组织开展 2022 年区块链典型应用案例征集工作 巴比特讯,9 月 6 日,工业和信息化部印发通知,组织开展 2022 年区块链典型应用案例征集工作。征集方向包括:创新技术及产品、区块链 + 实体...
-
10
2023-01-11 09:43 工信部公示 2022 年区块链典型应用案例名单 巴比特讯,1 月 10 日,工信部对外公示“2022 年区块链典型应用案例”,北京市大数据中心、上海市大数据中心、国家电网、移动、联通、蚂蚁集团、航天信息...
-
1
DataCanvas 中国人工智能基础软...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK