Skip to content

微服务概念

微服务

概念:微服务是一种架构风格,从开发的角度来说:微服务的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底的解耦每个微服务能够独立启动或者销毁,拥有自己独立的数据库。

微服务的概念和分布式比较相似,微服务是一种架构风格。简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能。每个微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行。各个微服务之间是松耦合的,服务之间可以通过 RPC 来相互交互。

微服务的设计是为了不因为某个模块的升级和 bug 影响现有的整个系统业务。微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低。

集群

概念:集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,且每台服务器并不是缺一不可。

作用:缓解并发压力和单点故障转移

特点:伸缩性、高可用性、负载均衡、高性能。

分布式

概念:分布式服务是指将多台服务器集中在一起,但每台服务器实现总体中的不同业务,服务分散部署在不同的机器上,每台服务器缺一不可

作用:大幅度提高效率,缓解服务器的访问和存储压力,同时分布式中的每个节点都可以做集群。

RPC

概念:RPC(Remote Procedure Call:远程过程调用))一种进程间通信方式

作用:允许像调用本地服务一样调用远程服务。

RPC框架负责屏蔽底层的传输方式(TCP或者UDP、序列化方式XML/SON/二进制)和通信细节开发人员在使用的时候只需要了解谁在什么位置提供了什么样的远程服务接口即可,并不需要关心底层通信细节和调用过程。

常见的 RPC 框架有:OpenFeign、gRPC。

轮询

概念:轮询是按照某种算法进行有顺序的触发,轮询时会保存当前执行后的索引,以便下次执行时可以拿到开始索引位置,以达到负载均衡的目的。

分类:定时轮询、加权轮询、随机轮询、权重轮询

负载均衡

概念:负载均衡是用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。

Ocelot网关

概念:API网关就是系统暴漏在外部的一个访问入口,所有的客户端和消费端都通过统一的网关接入微服务。

服务熔断

概念:应当微服务雪崩效应的一种链路保护机制,类似保险丝。

原因:微服务之间的数据交互是通过远程调用来完成的。服务A调用服务,服务B调用服务c,某一时间链路上对服务C的调用响应时间过长或者服务C不可用,随着时间的增长,对服务C的调用也越来越多,然后服务C崩溃了,但是链路调用还在,对服务B的调用也在持续增多,然后服务B崩溃,随之A也崩溃,导致雪崩效应。

服务熔断是应对雪崩效应的一种微服务链路保护机制。例如在高压电路中,如果某个地方的电压过高,熔断器就会熔断,对电路进行保护。同样,在微服务架构中,熔断机制也是起着类似的作用。当调用链路的某个微服务不可用或者响应时间太长时,会进行服务熔断,不再有该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。

服务降级

概念:服务降级一般是指在服务器压力剧增的时候,根据实际业务使用情况以及流量,对一些服务和页面有策略的不处理或者用一种简单的方式进行处理,从而释放服务器资源的资源以保证核心业务的正常高效运行。

原因:服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。

Released under the MIT License.