• 什么是微服务?微服务的优缺点?


     

    什么是微服务?

    1.微服务(Microservices Architecture)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

    2.微服务是指开发一个单个 小型的但有业务功能的服务,每个服务都有自己的处理和轻量通讯机制,可以部署在单个或多个服务器上。

    3.微服务也指一种种松耦合的、有一定的有界上下文的面向服务架构。也就是说,如果每个服务都要同时修改,那么它们就不是微服务,因为它们紧耦合在一起;如果你需要掌握一个服务太多的上下文场景使用条件,那么它就是一个有上下文边界的服务。

    微服务的优点?

    1.每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

    2.微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

    3.微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

    4.微服务能使用不同的语言开发。

    5.微服务易于被一个开发人员理解,修改和维护,这样小团队能够更关注自己的工作成果。无需通过合作才能体现价值。

    6.微服务允许你利用融合最新技术。

    7.微服务只是业务逻辑的代码,不会和HTML,CSS 或其他界面组件混合。

    微服务架构的缺点?

    1.微服务架构可能带来过多的操作。

    2.需要DevOps技巧 (http://en.wikipedia.org/wiki/DevOps)。

    3.可能双倍的努力。

    4.分布式系统可能复杂难以管理。

    5.因为分布部署跟踪问题难。

    6.当服务数量增加,管理复杂性增加。

    6.微服务的设计原则如下:

    ●单一职责原则

    指的是每一个微服务模块,只关心自己的业务规则。例如订单模块只关心订单的相关业务,不牵扯其他业务的逻辑。

    ●服务自治原则

    每一个微服务模块的开发,需要有自己的开发、测试、运维、部署这一条独立的栈,并且有自己的数据库等一切,完全把其当成一个单独的项目来做,不牵扯到其它无关业务。

    ●轻量级通信原则

    微服务的通信协议需要跨平台、跨语言的通信协议,因为微服务是不绑定技术栈的,不论使用Java、PHP还是.net去开发Web系统,它们之间的通信一定是去语言特色的。

    ●接口明确原则

    前面提到了微服务的“接口调整成本高”,那么怎么去避免它呢?我们一开始就应该规划好微服务的模块是一种什么样的模型,尽量去避免A接口的改动会导致B接口的改动这种情况。

  • 相关阅读:
    FPM
    Docker记录
    阿里云ECS发送企业邮件
    git操作
    vscode+vagrant+xdebug调试
    Spring Security开发安全的REST服务
    559. Maximum Depth of N-ary Tree
    《算法图解》之散列表
    766. Toeplitz Matrix
    893. Groups of Special-Equivalent Strings
  • 原文地址:https://www.cnblogs.com/b02330224/p/13040378.html
Copyright © 2020-2023  润新知