【架构】了解微服务

一、前言

      近些年微服务是越来越应用广泛了,去年的时候丹姐出去面试,面试官问过她有没有用过微服。当时自己还没有建立一个服务的概念 ,瞬间懵逼了。但是后来回想,现在自己的系统也是发布了很多的服务,每个服务都算是一个微服务。

二、什么是微服务

      微服务(Microservice)虽然是当下刚兴起的名称,但是本质上来说,微服务并非什么新的概念。实际上,很多SOA实施程度比较好的公司,已经在使用微服务了。只不过,他们自己使用,并不介意是否有一个时髦的名词来描述表示SOA已经发展到了微服务。

      微服务其实是服务化思路的一种最佳实践方向。之所以交微服务,是与之前的服务化思路和实践相比较而来的。早些年的服务实现的思路是将很多功能开发并交付都打包到一个很大的服务单元(Monolith),而微服务实现思路更加趋向单一,服务单元小型化和微型化。

      所以,在思路和理念上,微服务就是要倡导大家尽量将功能进行拆分,将服务粒度做小,每个服务可以单独的承担对外服务的职责,沿着这个思路开发和支付的软件服务实体就叫做“微服务”。

      您可能会问,原来将很多功能打包到一个很大的服务单元进行交付不能满足需求吗?

      实际上,并非原来的服务“大一统”(Monolish)实践不能满足要求,也不是不好,只是他有自己存在的合理场景。对于Monolish服务来说,如果团队不大,软件复杂度不高,那么,使用Monolish的形式进行服务化治理是比较合适的。

      但是,随着软件系统的复杂度持续飙升,软件交付的效率要求更高,投入的人力等资源越来越多。为了减轻复杂,我们自然会将项目按照要开发的功能拆分为不同的项目,负责不同研发服务的研究人员,可以并行操作。

三、微服务带来的好处

  • 独立、独立、独立

      每个服务基本上都是独立的项目,带来的明显的好处,第一个就是可拓展性。微服务可以快速的添加服务集群的实例,提升整个微服务集群的服务能力,而在传统的模式下,为了提升服务能力,很多时候必须强化和拓展单一节点的服务能力来完成。如果单个节点服务能力已经达到极限,再寻求拓展的话,得从硬件整体下手。

  • 多语言生态

      微服务的提供者既可以使用java或者GO等静态语言完成微服的开发和交付,也可以使用python或者Ruby等动态语言完成微服务的开发和交付

这里写图片描述

四、微服务会带来哪些挑战

      微服务给我们带来的并非只有好处,还有一些挑战。

  • 服务之间的治理

  • 硬件设施负载增加

  • 增加一种语言生态用于微服务的开发和交付,是否需要重新搭建一套研发测试环境。

五、小结

      微服务话虽然是当下的流行趋势,但是并非任何场景都合适,我们要慎重考虑“大一统”和微服务架构。而且一旦确定选择了微服务化之路,那么就应该围绕团队和组织的主要语言生态以及微服务方向积极搜素高效的开发和交付方式。

### 回答1: 分布式架构微服务架构都是为了应对复杂的软件系统而提出的架构设计思想,它们的最终目的都是实现高可用性、可伸缩性和可维护性。 分布式架构指的是将一个大型系统划分成多个不同的子系统,这些子系统可以分布在不同的计算机节点上,通过网络连接起来,共同完成系统的功能。分布式架构中各个子系统之间的通信一般采用远程调用方式,例如使用 RESTful API、RPC 等技术。分布式架构中各个子系统之间的耦合性较高,因为它们需要共享数据和协调业务流程。 微服务架构是一种特殊的分布式架构,它将一个大型系统拆分成多个小型服务,每个服务都可以独立部署、独立扩展和独立维护。微服务架构中各个服务之间的通信一般采用轻量级的协议,例如使用 RESTful API、MQTT 等技术。微服务架构中各个服务之间的耦合性较低,因为它们之间的通信是通过明确定义的接口进行的,每个服务只关心自己的业务逻辑,不需要了解其他服务的内部实现。 因此,分布式架构微服务架构的主要区别在于服务的粒度和耦合性。分布式架构的服务粒度较大,耦合性较高;而微服务架构的服务粒度较小,耦合性较低。 ### 回答2: 分布式架构微服务架构是两种不同的软件架构模式。 首先,分布式架构是一种将系统的不同模块或组件部署在不同的物理或逻辑节点上的架构方式。每个模块独立运行,通过消息传递或远程过程调用实现模块之间的通信。分布式架构旨在解决大规模系统的可伸缩性和可靠性问题。常见的分布式架构包括客户端-服务器模式和集群模式。 与之相比,微服务架构是一种将应用拆分为一系列小型、独立运行的服务的架构方式。每个服务都有自己独立的数据库,并通过轻量级通信机制(如REST或消息队列)进行通信。微服务架构的设计目标是提高开发效率、可维护性和弹性。每个服务都可以独立地进行开发、部署和扩展,从而实现敏捷开发和快速迭代。 此外,分布式架构重点关注系统的通信和协调,而微服务架构则更强调模块之间的解耦和自治性。在分布式架构中,系统的不同部分可能具有一致的数据模型和技术栈,而微服务架构则更鼓励使用不同的技术栈和数据模型来解决特定的业务问题。 总体而言,分布式架构微服务架构虽然有一些相似之处,但在目标和方法上有一些重要的区别。分布式架构更关注系统的规模和可靠性,而微服务架构更注重开发效率和业务灵活性。选择合适的架构取决于具体的业务需求和技术场景。 ### 回答3: 分布式架构微服务架构是两种不同的软件架构模式,它们之间存在一些区别。 首先,分布式架构是一种将系统分解为多个部分并在不同机器上分布执行的架构。每个部分被称为节点,节点之间通过网络进行通信和协调。分布式架构能够提高系统的可靠性和可扩展性,但也增加了开发和管理的复杂性。 而微服务架构是一种将单个应用程序划分为一组小型服务的架构。每个服务独立运行在自己的进程中,并通过轻量级的通信机制进行交互。每个服务都专注于单个特定的业务功能,并可以独立部署、扩展和更新。微服务架构可以提高开发速度、灵活性和可维护性。 其次,分布式架构更关注整体系统的拆分和通信机制,而微服务架构更关注单个服务的设计和组织。在分布式架构中,各个节点通常实现相同的功能,而在微服务架构中,每个服务可能实现不同的功能。 此外,分布式架构通常更加适合大型企业级系统,而微服务架构适用于较小且易于划分为多个功能模块的应用微服务架构可以更好地应对快速变化的需求,而分布式架构更加适合对可用性和扩展性有更高要求的系统。 总的来说,分布式架构微服务架构是不同的软件架构模式,各自有不同的应用场景和关注重点。根据实际需求和系统规模,选择合适的架构模式可以提高系统的性能、可扩展性和可维护性。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你个佬六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值