首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >所有人都在聊SM,它究竟解决什么问题?(第99讲,收藏)

所有人都在聊SM,它究竟解决什么问题?(第99讲,收藏)

作者头像
架构师之路
发布2025-11-24 15:31:10
发布2025-11-24 15:31:10
200
举报
文章被收录于专栏:架构师之路架构师之路

《架构师之路:架构设计中的100个知识点》

99. ServiceMesh

服务网格(ServiceMesh)这两年异常之火,号称是下一代微服务架构,接下来两个月,准备系统性的写写这个东西,希望能够让大家对最新的架构技术,有个初步的了解。

画外音:我的行文的风格,“为什么”往往比“怎么样”更重要。

互联网公司,经常使用的是微服务分层架构。随着数据量不断增大,吞吐量不断增加,业务越来越复杂,服务的个数会越来越多,分层会越来越细,除了数据服务层,还会衍生出业务服务层前后端分离等各种层次结构。

不断发现主要矛盾,抽离主要矛盾,解决主要矛盾,架构自然演进了,微服务架构,潜在的主要矛盾会是什么呢?

引入微服务架构,一般会引入一个RPC框架,来完成整个RPC的调用过程。

图片
图片

如上图粉色部分所示,RPC分为:

1. RPC-client,它嵌在调用方进程里;

2. RPC-server,是服务进程的基础;

不只是微服务,MQ也是类似的架构:

图片
图片

如上图粉色部分所示,MQ分为:

1. MQ-send-client;

2. MQ-server;

3. MQ-recv-client;

框架只是第一步,越来越多和RPC,和微服务相关的功能,会被加入进来。

例如:负载均衡

图片
图片

如果要扩展多种负载均衡方案,例如:

1. 轮询;

2. 随机;

3. 取模;

4. 一致性哈希;

RPC-client需要进行升级。

例如:数据收集

图片
图片

如果要对RPC接口处理时间进行收集,来实施统一监控与告警,也需要对RPC-client进行升级。

画外音,处理时间分为:

1. 客户端视角处理时间;

2. 服务端视角处理时间;

如果要收集后者,RPC-server也要修改与上报。

又例如:服务发现

图片
图片

服务新增一个实例,通知配置中心,配置中心通知已注册的RPC-client,将流量打到新启动的服务实例上去,迅猛完成扩容。

再例如:调用链跟踪

图片
图片

如果要做全链路调用链跟踪,RPC-client和RPC-server都需要进行升级。

下面这些功能:

1. 负载均衡;

2. 数据收集;

3. 服务发现;

4. 调用链跟踪;

5. …

其实都不是业务功能,所以互联网公司一般会有一个类似于“架构部”的技术部门去研发和升级相关功能,而业务线的技术部门直接使用相关框架、工具与平台,享受各种“黑科技”带来的便利。

完美!!!

理想很丰满,现实却很骨感,由于:

1. RPC-client,它嵌在调用方进程里;

2. RPC-server,是服务进程的基础;

往往会面临以下一些问题:

1. 业务技术团队,仍需要花时间去学习、使用基础框架与各类工具,而不是全心全意将精力花在业务和产品上;

2. client要维护m个版本, server要维护n个版本,兼容性要测试m*n个版本

3. 如果要支持不同语言,往往要开发C-client,Python-client,go-client,Java-client多语言版本

4. 每次“黑科技”的升级,都需要推动上下游进行升级,这个周期往往是以季度、半年、又甚至更久,整体效率极低;

画外音:兄弟,贵司推广一个技术新产品,周期要多长?

这些耦合,这些通用的痛点,有没有办法解决呢?

一个思路是,将服务拆分成两个进程,解耦。

图片
图片

1. 一个进程实现业务逻辑(不管是调用方,还是服务提供方),biz,即上图白色方块;

2. 一个进程实现底层技术体系,proxy,即上图蓝色方块;

画外音:负载均衡、监控告警、服务发现与治理、调用链…等诸多基础设施,都放到这一层实现。

3. biz和proxy共同诞生,共同消亡,互为本地部署,即上图虚线方框;

4. biz和proxy之间,为本地通信,即上图黑色箭头;

5. 所有biz之间的通信,都通过proxy之间完成,proxy之间才存在远端连接,即上图红色箭头;

这样就实现了“业务的归业务,技术的归技术”,实现了充分解耦,如果所有节点都实现了解耦,整个架构会演变为:

图片
图片

1. 绿色为biz;

2. 蓝色为proxy;

整个服务集群变成了网格状,这就是Service Mesh服务网格的由来。架构演进,永无穷尽,痛点多了,自然要分层解耦。

知其然,知其所以然。

思路比结论更重要。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档