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


    微服务

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

    特征
    单一职责;

    轻量级的通信;

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

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

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

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

    优势
    独立性

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

    敏捷性

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

    技术栈灵活

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

    高效团队

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

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

  • 相关阅读:
    脚本执行策略设置
    获取日期与时间戳小笔记
    Intellij IDEA部分简介
    Intellij IDEA脚本参数化、关联、检查点
    LR中的时间戳
    LeetCode 35.Search Insert Position
    LeetCode 34.Search for a Range
    LeetCode 33.Search in Rotated Sorted Array(M)
    LeetCode 81.Search in Rotated Sorted Array II(M)
    LeetCode 278.First Bad Version(E)(P)
  • 原文地址:https://www.cnblogs.com/adret/p/13082862.html
Copyright © 2020-2023  润新知