什么是微服务

什么是微服务

单体应用架构的局限性

如图所示,该应用就是一个典型的商城单体应用。其中包括了前端界面模板/会员模块/订单模块/商品模块,该应用最终部署的时候会打成一个war包或者作为一个文件夹部署到tomcat应用服务器中。

其实最开始所有的应用都是在单体应用的基础上演变而来。应用开发初期,投入成本比较低,应用并发不大的情况下。需要应用可以快速开发/测试/部署。而单体应用在初期也可以很好的运行,但是随着需求的不断增加,越来越多的开发人员参与到项目中。单体应用开始变得臃肿和难以维护。每次维护升级都有可能引发潜在的bug,新人变得不敢去维护应用。

单体应用最大的问题之一就是扩展性。例如需要增加服务器已解决并发问题,就需要整个应用部署一套。如果应用的瓶颈是订单模块,单体应用就不得不整体部署。导致会员模块/商品模块也要部署,最终浪费了服务器资源。

为了解决单体应用中出现的各类问题,微服务架构开始被大家所关注。我们根据应用中的不同功能模块拆分为多个服务,这些服务可以独立的部署和扩展。每个服务都有自己的进程,相互之间不会影响。这样我们就可以根据每个服务的性能要求去优化针对性的部署和扩容等。

什么是微服务

         微服务是一种架构风格,是将一个单一的应用拆分为多个小型的服务,每个服务运行在自己的进程中,服务间采用轻量级的通信机制(HTTP/webservice等)。这些服务围绕业务能力构建并且可以全自动独立部署。服务可以采用不同的语言和存储技术开发。

微服务架构的优点

易于开发和维护:一个微服务只关注一个特定的业务功能,所以它的业务清晰/代码量少。开发和维护单个微服务相对简单。而整个应用是由若干个微服务构建而成,所以整个应用会被维持在一个可控状态。

部署成本低:单个微服务所需要的服务器要求比较低,所以可以合理的控制服务器的性能要求,降低了成本。

技术栈不受限:在微服务中,可以结合不同服务开发团队的技术强项和特点,合理的选择技术栈。

微服务架构的挑战

运维要求较高:由于单体应用拆分为多个微服务。需要同时保证所有的微服务正常运行,运维人员将面临新的挑战。

分布式带来的复杂性:微服务构建的是分布式系统,那么分布式带来的系统容错性/网络延迟/分布式事务都是新的挑战。

重复劳动:多个微服务之间如果没有很好的配合开发,将导致不同团队之间劳动重复的问题。

关注微信公众号(程序员小兔)不定期分享技术

### 回答1: 微服务和分布式是两个相关但不同的概念。 微服务是一种架构风格,将一个应用程序拆分成一组小型的、独立的服务单元,并通过API进行通信。每个服务单元都可以独立开发、部署和扩展,这提高了系统的可靠性和可维护性。 分布式是一个应用程序在多台计算机上运行,并通过网络进行通信。分布式系统通常由多个服务组成,这些服务可以在不同的计算机上运行。 因此,微服务可以是分布式架构的一部分,但不是必须的。一个应用程序可以是分布式的,但并不是微服务架构。 ### 回答2: 微服务是一种软件架构的设计理念和模式,将一个大型的应用程序拆分成多个小型的服务,每个服务都独立部署、独立运行,且具有独立的数据存储和交互接口。这些服务之间通过轻量级的通信机制进行交互,可以使用HTTP、消息队列等方式进行通信。每个微服务都专注于实现一个特定的业务功能,因此可以独立开发、测试和部署,提高了系统的可维护性、可扩展性和灵活性。 分布式是在多台计算机上分布运行多个程序,通过网络连接进行通信和协作,共同完成一个任务或提供一个服务。分布式系统的特点是在不同的计算机节点上部署不同的程序和服务,这些节点通过网络进行通信,共享和传输数据。分布式系统可以提供高可用性、高性能和可扩展性等优势,同时也面临着节点故障、通信延迟、一致性问题等挑战。 微服务和分布式是两个不同的概念,微服务是一种架构设计的思想,而分布式是一种计算机系统的运行方式。微服务可以在分布式系统中应用,将一个大型的分布式系统拆分成多个小型的微服务,每个微服务可以运行在不同的节点上,通过网络进行通信和协作,最终完成整个系统的功能。因此,微服务可以看作是一种分布式系统的架构方式,而分布式不一定是微服务架构。 ### 回答3: 微服务是一种软件架构风格,它将一个大型应用程序拆分为一组更小、更独立的服务单元,每个服务单元都可以独立开发、部署、扩展和管理。这些服务单元之间通过轻量级的通信机制进行交互,如HTTP或消息队列。 微服务架构具有以下特点: 1. 每个微服务独立部署,可以使用不同的技术栈和语言编写。 2. 每个微服务都有自己的数据存储,可以使用不同类型的数据库或存储。 3. 微服务之间通信通过API进行,可以使用各种通信机制。 4. 可以根据需要对每个微服务进行独立的扩展,提高系统整体的弹性和性能。 5. 每个微服务都可以独立进行升级和维护,不会影响其他微服务的运行。 分布式是一种计算机系统的架构,其中多个独立的节点通过网络进行通信和协调,共同完成一个任务或提供一个服务。在分布式系统中,各个节点之间相互协作,共享资源,通过消息传递或远程调用等方式进行通信。分布式系统通过将工作负载分散到多个计算机节点上,提高了系统的可靠性、可扩展性和性能。 分布式系统具有以下特点: 1. 系统中的节点可以位于不同的物理位置,通过网络进行通信。 2. 节点之间共享资源,例如数据库、文件系统或计算资源等。 3. 分布式系统中的节点可以独立工作,并通过协调和通信实现任务的分工和协作。 4. 分布式系统需要考虑节点故障、网络延迟和并发控制等问题。 5. 分布式系统可以提高系统的可靠性和性能,并具有高可用性和可扩展性。 总结来说,微服务是一种软件架构风格,将大型应用程序拆分成小的服务单元,而分布式是一种计算机系统架构,多个独立节点通过网络通信和协调来完成任务或提供服务。微服务是一种分布式系统的实践方式之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值