《架构实践--软件架构设计的过程》读书笔记

微服务

概念
微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通讯。

特征
单一职责;

轻量级的通信;

隔离性,运行在自己的进程中,不会相互干扰;

有自己的数据,数据的独立性,每个微服务都有自己的数据库;

技术的多样性,选用适合的技术做合适的事;

一个微服务就负责某一个职责,就像朋友圈服务,它就只负责朋友圈的【增删查】功能,与其他服务独立开来,可以选用不同的技术语言,来满足不同的需求。

优势
独立性

每个微服务的构建、部署、扩容、缩容、数据库都是独立的。数据库表修改时,互补影响。

敏捷性

功能单一、可快速添加新需求

技术栈灵活

可以发挥不同语言的优势,例如:用 python 来爬数据,nodejs 来处理 io 流

高效团队

可以分发给不同的团队进行开发

缺点
额外的工作;
数据一致性;
沟通成本;
debug 单元测试困难;
需要额外工作,例如:服务的拆分(即如何拆分微服务,哪些服务应该拆到一起)、服务注册、服务发现、微服务间的通信。每个微服务都持有独立的数据库,无法做到数据强一致性,只能做到最终结果一致性。做微服务也会增加团队的沟通成本。

posted on 2020-04-22 08:57  哈弗h6  阅读(140)  评论(0编辑  收藏  举报

导航