初识微服务

215 阅读1分钟

软件架构

在软件的内部,经过综合各种因素的考量、权衡、选择特定的技术,将系统划分成不同的部分并使这些部分相互分工,彼此协作,为用户提供需要的价值。
  • 哪些因素:业务需求、技术栈、成本、组织架构、可扩展性、可维护性(时间成本)
  • 软件架构进化之个人经历:一层架构、MVC、dubbo
  • 单体架构:功能、业务集中在一个发布包里,部署运行在同一个进程中。优势:易于开发、测试、部署、水平伸缩。缺点:代码膨胀,难以维护;构建,部署成本大;新人上手困难;创新困难;可扩展性差

微服务

使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化方式部署。
  • 微服务的特征:单一职责(订单支付)、轻量级通信、隔离性、有自己的数据、技术多样性。
  • 微服务背景:互联网的快速发展、敏捷开发,精益方法深入人心、容器技术的成熟。

微服务架构图

微服务的优势和不足

优势:独立性、敏捷性、技术栈灵活、高效团队
不足:额外的工作(拆分)、数据一致性(多数据库)、沟通成本(API改变)