微服务简介(微服务、其与单体应用区别、微服务好处)


一、什么是微服务

所谓微服务是SOA架构下的最终产物,该架构设计目标是为了肢解服务,使得服务能够独立运行。

微服务可以按照业务划分,将一组特定的业务划分成一个服务,每个服务都有自己独立的数据库,独立部署,服务直接通过 REST API 进行通讯。每一个独立运行的服务组成整个系统。

总结下,微服务就是,由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通讯。同时,服务会使用最小规模的集中管理(例如 Docker )技术,服务可以用不同的编程语言与数据库等。微服务架构是将复杂臃肿的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,并交由小团队进行开发和运维,从而极大地提高了应用交付的效率
微服务设计的原则:

  • 各司其职
  • 服务高可用和可扩展性

二、微服务与单体应用区别

  • 单体应用:传统架构。集所有功能于一身构建一个项目,不可分开部署。
  • 单体架构所有的模块全都耦合在一块,代码量大,维护困难,而微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
  • 单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用 redis ,有的用 mysql 等),数据库也是单个模块对应自己的数据库。
  • 单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
  • 单体应用是将所有功能模块放在一个单一进程中,并且通过在不同的服务器上面复制这个单体进行扩展。

三、微服务的好处

  1. 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理性能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
  2. 微服务应用程序的另一个好处是,它们更快且更容易更新。当开发者对一个传统的单体应用程序进行变更时,他们必须做详细的 QA 测试,以确保变更不会影响其他特性或功能。但有了微服务,开发者可以更新应用程序的单个组件,而不会影响其他的部分。测试微服务应用程序仍然是必需的,但它更容易识别和隔离问题,从而加快开发速度并支持 DevOps 和持续应用程序开发。
  3. 第三个好处是,微服务架构有助于新兴的云服务,如事件驱动计算。类似 AWS Lambda 这样的功能让开发人员能够编写代码处于休眠状态,直到应用程序事件触发。事件处理时才需要使用计算资源,而企业只需要为每次事件,而不是固定数目的计算实例支付。

通俗点解释是:

  • 易于开发和维护:因为一个服务只关注一个特定的业务,业务就变得比较清晰。同时维护起来也是比较方便。
  • 单个服务启动比较快:单个服务代码量不会很多,启动起来就会很快。
  • 便于伸缩:如果系统中有三个服务 ABC ,服务 B 的访问量比较大,我们可以将服务 B 集群部署。

单体应用中,如果需要改动功能,那么则需要重新部署整个单体应用。而微服务则不需要,只需要重新部署修改的功能模块那个微服务。每一个功能模块都可替换和独立维护的软件单元,完全体现了高可复用性,高可维护性,高可扩展性。

 

<完>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM