微服务中 “微“ 到底是什么?

简介: 抛去教条性质的解释,从巨石应用到微服务应用,耦合度是其中最大的变化。或是将多个模块中重复的部分进行拆分,或是纯粹为了拆分膨胀的单体应用,这些拆分出来的部分独立成一个服务单独部署与维护,便是微服务了。拆分后自然而然会催生出一些必要的需求:

微服务是什么

抛去教条性质的解释,从巨石应用到微服务应用,耦合度是其中最大的变化。或是将多个模块中重复的部分进行拆分,或是纯粹为了拆分膨胀的单体应用,这些拆分出来的部分独立成一个服务单独部署与维护,便是微服务了。


拆分后自然而然会催生出一些必要的需求:


从本地方法调用的关系衍变成远程过程调用的关系,那么可靠的通信功能是首要的。

随着拆分工作的推进,资源调度关系会变得错综复杂,这时候需要完善的服务治理。

调用关系网的整体复杂化还会给我们带来更大的风险,即链式反应导致服务雪崩的可能性,所以如何保障服务稳定性也是微服务架构中需要考虑的。

这点就不是内需而算是自我演进了,服务化后,如果能结合容器化、Devops技术实现服务运维一体化,将大大降低微服务维护的成本,不管是现在还是将来。

微服务是什么样的

从目前常见网站架构的宏观角度看,微服务处在中间的层次。红框圈出的部分都属于微服务的范畴。包括最基础的rpc框架、注册中心、配置中心,以及更广义角度的监控追踪、治理中心、调度中心等。


image.png


从微服务自身角度来看,则大致会包含以下这些模块:


服务注册与发现

rpc远程调用

路由与负载均衡

服务监控

服务治理


image.png

服务化的前提

是不是只要套上微服务框架就算是一个微服务了呢?虽然这样有了微服务的表,但却没有微服务的实质,即”微“。微服务化的前提是服务拆分到足够”微“,足够单一职责,当然拆分程度与服务边界都需要结合业务自行把握。


广义的服务拆分即包含了应用拆分,也包含了数据拆分。


应用拆分后需要引入微服务框架来进行服务通信与服务治理,这也就是传统定义上的微服务。


数据拆分后同样需要引入一系列手段来进行保障,由于不是与微服务强相关的话题,在此只做简单阐述:


分布式id

新表优化

数据迁移与数据同步

sql调用方案改造

切库方案

数据一致性


相关文章
|
3月前
|
存储 人工智能 自然语言处理
2026 Agent 软件进化史:从尝鲜试点到规模化应用的关键跨越
2026年,AI Agent从概念迈向规模化落地,成为企业数字化转型核心工具。本文全景解析万亿赛道格局、主流玩家、核心技术与典型应用,洞察通用巨头与垂直先锋的博弈,揭示“数字员工”如何重塑商业未来。
861 2
|
6月前
|
存储 机器学习/深度学习 算法
订单拆单合并处理接口设计与实现
本文介绍电商系统中订单拆单与合并接口的设计与实现,涵盖核心功能、RESTful API设计、Python伪代码示例及性能优化。通过规则驱动的拆分(如按仓库)和合并(如同地址聚合),提升配送效率,降低运营成本,适用于多仓储、高并发场景,助力开发者高效构建订单处理系统。(239字)
550 0
|
存储 缓存 数据安全/隐私保护
分段存储
分段存储
482 0
|
10月前
|
开发者
HarmonyOS Next快速入门:样式装饰器:@Styles和@Extend
本课程《HarmonyOS Next快速入门》专为初学者打造,涵盖HarmonyOS应用开发核心知识。详解@Styles与@Extend装饰器的使用,帮助开发者高效复用和扩展组件样式,提升代码简洁性与维护性。结合实例讲解stateStyles状态样式切换,助你快速掌握HarmonyOS界面开发技巧。点击学习视频教程,开启开发之旅!
313 0
|
Python
Python如何给视频添加音频和字幕
通过以上方法和代码示例,你可以在Python中成功实现视频的音频和字幕添加。确保理解每一步的实现细节,应用到实际项目中时能有效地处理各种视频编辑需求。
730 20
|
JavaScript 前端开发
JavaScript变量命名规则及关键字详解
JavaScript变量命名规则及关键字详解
385 1
|
存储 Unix Linux
深入理解 Linux 内核1
深入理解 Linux 内核
296 0
|
存储 缓存 NoSQL
软件体系结构 - 缓存技术
【4月更文挑战第20天】软件体系结构 - 缓存技术
783 7
|
机器学习/深度学习 自然语言处理 算法
正向最大匹配(Forward Maximum Matching)
正向最大匹配(Forward Maximum Matching)是一种查找文本字符串中词语的算法。
879 1