什么是微服务

本文介绍了微服务架构,它由多个可独立部署、松耦合的微服务组成。还提及Spring Cloud这一微服务框架,能为分布式系统开发提供工具。同时阐述了微服务架构的优点,如技术异构、弹性好等,也指出其缺点,包括复杂度高、运维复杂和影响性能等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程。

 

微服务中的spring-cloud

Spring Cloud是一个相对比较新的微服务框架,2016n年推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。

Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

 

微服务架构

优点:

1. 技术异构性

在不同的服务中,可以使用不同的技术来各自开发,只要保证服务间能相互协作即可

2. 弹性

当微服务中的某一个服务不可用时,不会影响整个系统,只会影响相关功能不可用

3. 扩展

易于扩展,使用小的多个服务,更加易于扩展新的功能

4. 简化部署

某个服务的更新部署,不需要重新部署整个应用

5. 可组合

通过组合多个服务,可以提供一些新的功能

6. 可替代

因为每个微服务都比较小,重新实现某一个服务或者直接删除该服务都是可操作的

缺点:

1. 复杂度高

微服务间通过REST、RPC等形式交互,相对于单体模式,需要考虑被调用方故障、过载、消息丢失等各种异常情况,代码逻辑更加复杂。

对于微服务间的事务性操作,因为不同的微服务采用了不同的数据库,将无法利用数据库本身的事务机制保证一致性,需要引入二阶段提交等技术。

同时,在微服务间存在少部分共用功能但又无法提取成微服务时,各个微服务对于这部分功能通常需要重复开发,或至少要做代码复制,以避免微服务间的耦合,增加了开发成本。

2. 运维复杂

在采用微服务架构时,系统由多个独立运行的微服务构成,需要一个设计良好的监控系统对各个微服务的运行状态进行监控。运维人员需要对系统有细致的了解才对够更好的运维系统。

3. 影响性能

相对于单体架构,微服务的间通过REST、RPC等形式进行交互,通信的时延会受到较大的影响。

### 回答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、付费专栏及课程。

余额充值