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

微服务是什么

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

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

  1. 从本地方法调用的关系衍变成远程过程调用的关系,那么可靠的通信功能是首要的。
  2. 随着拆分工作的推进,资源调度关系会变得错综复杂,这时候需要完善的服务治理。
  3. 调用关系网的整体复杂化还会给我们带来更大的风险,即链式反应导致服务雪崩的可能性,所以如何保障服务稳定性也是微服务架构中需要考虑的。
  4. 这点就不是内需而算是自我演进了,服务化后,如果能结合容器化、Devops技术实现服务运维一体化,将大大降低微服务维护的成本,不管是现在还是将来。

微服务是什么样的

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

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

服务化的前提

是不是只要套上微服务框架就算是一个微服务了呢?虽然这样有了微服务的表,但却没有微服务的实质,即”微“。

微服务化的前提是服务拆分到足够”微“,足够单一职责,当然拆分程度与服务边界都需要结合业务自行把握。

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

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

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

  • 分布式id
  • 新表优化
  • 数据迁移与数据同步
  • sql调用方案改造
  • 切库方案
  • 数据一致性
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、API网关的用处 API网关我的分析中会用到以下三种场景。 1、Open API 企业需要将自身数据、能力等作...
    乐学小乐阅读 1,463评论 0 0
  • 彩排完,天已黑
    刘凯书法阅读 4,422评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 128,745评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,968评论 0 4

友情链接更多精彩内容