美文网首页
微服务诞生背景微服务优势专注于某个业务自治性

微服务诞生背景微服务优势专注于某个业务自治性

作者: 每天学点编程 | 来源:发表于2018-01-28 17:15 被阅读122次

    微服务诞生背景

    随着领域驱动设计、持续交付、按需虚拟化、基础设施自动化、小型自治团队、大型集群系统这些实践的流行,微服务也应运而生。

    微服务优势

    微服务在技术决策上给了团队极大的自由度,使团队能够更快地响应不可避免的变化。

    微服务概念

    一些协同工作的小而自治的服务。

    微服务——专注于某个业务

    内聚性是指将相关代码放在一起:把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。
    在一个单块系统内,通过创建一些抽象层或者模块来保证代码的内聚性。

    根据业务的边界来确定服务的边界,这样就很容易确定某个功能代码应该放在哪里。
    由于该服务专注于某个边界之内,因此可以很好地避免由于代码库过大衍生出的很多相关问题。

    微服务——专注于某个业务——如何判断服务是否足够小

    服务是否能够很好地与团队结构相匹配。如果代码库过大,一个小团队无法正常维护,那么就应该将其拆成更小的。

    微服务——自治性——需要正确地建模服务和API

    一个微服务就是一个独立的实体。
    尽量避免把多个服务部署到同一台机器上

    服务之间均通过网络调用进行通信,从而加强了服务之间的隔离性,避免紧耦合。

    这些服务应该可以彼此间独立进行修改,并且某一个服务的部署不应该引起该服务消费方的变动。

    对于服务,需要考虑的是什么应该暴露,什么应该隐藏。如果暴露得过多,那么服务消费方会与该服务的内部实现产生耦合。这会使得服务和消费方之间产生额外的协调工作,从而降低服务的自治性。

    服务会暴露出API(Application Programming Interface,应用编程接口),然后服务之间通过这些API进行通信。API的实现技术应该避免与消费方耦合,这就意味着应该选择与具体技术不相关的API实现方式,以保证技术的选择不被限制。

    你是否能够修改一个服务并对其进行部署,而不影响其他任何服务?

    请关注我的微信公众号

    个人微信公众号

    技术交流群 (仅作技术交流):642646237

    ​请关注我的头条号:

    相关文章

      网友评论

          本文标题:微服务诞生背景微服务优势专注于某个业务自治性

          本文链接:https://www.haomeiwen.com/subject/rrkzaxtx.html