微服务架构的优缺点

如题所述

优点:易于开发和维护:一项服务只关注一项特定的业务功能,业务清晰,代码量少。
微型服务的优点:
1.易于开发和维护:一项服务只关注一项特定的业务功能,业务清晰,代码量少。开发维护单项微服务相当简单。整个应用程序由一些微型服务构建,因此整个应用程序处于可控状态。
2.单一服务启动快:单一服务代码少,启动快。
3.局部修改易于部署:单个应用程序只要有修改,就必须重新部署整个应用程序,微服务解决了这个问题。一般来说,修改某个微型服务,只需重新配置该服务。
4.技术堆栈不受限制:微服务结构可结合业务和团队特点,合理选择技术堆栈。例如,一些服务可以使用关系数据库Mysql,一些服务可以使用非关系数据库redis。甚至可以根据需服务可以使用JAVA开发,一些微服务可以使用Node.js开发。
5.按需收缩:可根据需要实现细粒度的扩展。例如,系统中的某个微服务遇到瓶颈,可以结合微服务的特点,增加内存,升级CPU,增加节点。
微型服务的缺点:
1.运输要求高:更多的服务意味着更多的运输投入。在单体结构中,只需保证一个应用程序的运行,在微服务中,需要保证几十到几百个服务器的正常运行和合作,这给运行维护带来了巨大的挑战
2.分户式固有的复杂性:使用微服务结构的是分布式系统。对于分布式系统,系统容错,网络延迟带来巨大挑战。
3.界面调整成本高:微服务之间通过界面通信。
温馨提示:内容为网友见解,仅供参考
第1个回答  2022-11-10

微服务架构概述

微服务架构风格是一类将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制(通常为HTTP源API)实现通信。这些服务围绕业务功能建立而成,且凭借自动化部署机制实现独立部署。

微服务的特点

应用程序逻辑分为明确定义的职责范围的粒度组件,这些组件相互协调提供解决方案

每一个组件都有一个小的职责领域,可以完全部署,也就是说一个服务可以跨越多个应用程序复用(独立部署和维护)

服务之间通信基于一些基本的原则,比如服务采用http+json这样的轻量级通信协议,在不同服务之间进行数据交换。这样不同服务可以使用不同的技术栈,互不影响(采用轻量级的通信协议作为通信原则、松耦合)

拆分为微服务之后,服务的数量变多,因此需要有统一的服务治理平台,来对各个服务进行管理。(服务可治理,可管控)

微服务架构的优点

    每个服务都比较简单,只关注于一个业务功能。

    微服务架构方式是松耦合的,可以提供更高的灵活性。

    微服务可通过最佳及最合适的不同的编程语言与工具进行开发,能够做到有的放矢地解决针对性问题。

    每个微服务可由不同团队独立开发,互不影响,加快推出市场的速度。

    微服务架构是持续交付(CD)的巨大推动力,允许在频繁发布不同服务的同时保持系统其他部分的可用性和稳定性。

微服务结构的通用性

通过服务实现应用的组件化(按功能拆分、可独立部署和维护)

围绕业务能力组织服务,根据业务不同的需求进行不同组件的使用

所做产品非项目化,对于平台具有一定的通用性

微服务的缺点

运营成本的增加,整体应用可能只需部署至一小片应用服务区集群,而微服务架构可能变成需要构建/测试/部署/运行数十个独立的服务,并可能需要支持多种语言和环境。这导致一个整体式系统如果由20个微服务组成,可能需要40~60个进程。

开发人员需要熟知运维与投产环境,开发人员也需要掌握必要的数据存储技术如NoSQL,具有较强DevOps技能的人员比较稀缺,会带来招聘人才方面的挑战。

把系统分为多个协作组件后会产生新的接口,这意味着简单的交叉变化可能需要改变许多组件,并需协调一起发布。在实际环境中,一个新品发布可能被迫同时发布大量服务,由于集成点的大量增加,微服务架构会有更高的发布风险。

“同步耦合引入到系统中”,有时需要向不同服务添加一些代码,这就会导致代码重复。

作为一种分布式系统,微服务引入了复杂性和其他若干问题,例如网络延迟、容错性、消息序列化、不可靠的网络、异步机制、版本化、差异化的工作负载等,开发人员需要考虑以上的分布式系统问题。

在动态环境下服务间的交互会产生非常微妙的行为,难以可视化及全面测试。经典微服务往往不太重视测试,更多的是通过监控发现生产环境的异常,进而快速回滚或采取其他必要的行动。但对于特别在意风险规避监管或投产环境错误会产生显著影响的场景下需要特别注意。

微服务架构的优缺点
微服务架构的优缺点 优点:1. 模块化与独立性:微服务架构将应用程序划分为一系列小型服务,每个服务都是独立运行的模块,能够独立完成某个功能。这种设计使得开发、部署和运维更加灵活,提高了系统的可扩展性和可维护性。2. 技术多样性:由于每个微服务都是独立的,可以使用不同的技术栈进行开发,满足特定...

微服务架构的优缺点
优点:易于开发和维护:一项服务只关注一项特定的业务功能,业务清晰,代码量少。微型服务的优点:1.易于开发和维护:一项服务只关注一项特定的业务功能,业务清晰,代码量少。开发维护单项微服务相当简单。整个应用程序由一些微型服务构建,因此整个应用程序处于可控状态。2.单一服务启动快:单一服务代码少,启动...

细数微服务架构Microservice的优缺点
微服务架构的优点主要体现在:快速迭代:微服务拆分后,可以独立开发和部署,如微信支付担保交易到现在的水电费支付,体现了其在快速响应业务变化中的高效性。灵活拆分:如“船小好调头”的比喻,微服务允许各子系统独立发展,适合快速适应市场变化,如淘宝直播、余额宝等新功能的上线。敏捷开发:微服务架构支持...

微服务架构的优缺点
微服务架构的优缺点具体如下:优点:服务的独立部署:每个服务都是一个独立的项目,可以独立部署,不依赖于其他服务,耦合性低;服务的快速启动:拆分之后服务启动的速度必然要比拆分之前快很多,因为依赖的库少了,代码量也少了。更加适合敏捷开发:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方...

微服务理论与实践(三)-微服务架构的基本能力和优缺点
5. 容错,根据不同场景设置服务容错策略,如快速失败、失效切换、失败安全、失败自动恢复、failing Cluster等。6. 限流和降级,设置系统处理服务数量的极限阀值,超过则拒绝请求,对非核心服务进行降级管理。微服务架构模式的优缺点:优点包括易于开发、部署、规模化、故障隔离、独立开发与部署、技术栈灵活等;...

什么是微服务,微服务的优缺点!
在了解了微服务的优缺点后,引入微服务的时机选择至关重要。理想情况下,当以下条件之一满足时,引入微服务是较好的时机:1. 复杂的单体应用:大型单体应用复杂度高、难以维护和扩展时,微服务可将其拆分为独立、自治的服务,简化管理和维护。2. 巨型单体应用:单体应用规模达到一定级别,影响研发和运维效率...

微服务架构 VS 单体架构
比较微服务与单体架构:在理解了这两种架构的基本概念后,我们进一步对比它们的优缺点。单体架构优点:单体架构在应用开发和部署中简化了策略。由于代码库庞大,单体应用性能通常优于微服务应用。单个API调用即可完成任务,因为代码集中且内存中。单体架构缺点:服务模块紧密耦合,业务逻辑复杂,难以分离,扩展性成...

微服务架构的优点有哪些
2. 增强可扩展性:微服务架构的强大可扩展性得益于其细粒度的服务划分。可以根据实际需求对每个服务进行独立的横向扩展,即增加更多的服务实例来处理更大的负载。这种扩展方式不仅更加高效,还能避免资源的浪费。例如,在电商平台中,支付服务可能会在特定时段面临巨大的流量压力,这时就可以单独扩展支付服务,...

微服务架构整体分析:优势与挑战
首先,微服务架构具有多项优势。每个服务都遵循单一职责原则,形成高内聚、低耦合的单元,包括数据库和数据模型。通过管道方式灵活组合服务,构建复杂系统。轻量级通信通过REST API模式或RPC框架,以及事件流和消息代理实现。服务间通过接口进行轻量级交互。每个服务独立运行,高度解耦,便于独立开发、测试、部署、...

微服务架构和分布式架构的区别
每个节点拥有自己的计算资源和存储资源,各节点之间通过网络传输数据和协同工作。分布式架构的优点是可以充分利用多节点的资源,提高系统的容错性和可靠性,但开发和维护难度也相应增加。简单说,微服务架构更注重服务的拆分和解耦,而分布式架构更注重整个系统的资源利用和协同工作。

相似回答