微服务作为云原生时代的重要IT理念,因其易扩展、易部署、易演进、开放性强等优势,正在众多企业中实践应用。但微服务化的架构给系统带来优势的同时,也带来了一些服务治理上的困难。为此,本文准备了了3个方法,确保每一个微服务都能在正确的“位置”高效运行。即路由、限流和熔断。
微服务的定义:“将单个应用程序拆分成多个独立运行的小型服务;服务间基于轻量级机制通信,比如基于Http协议的Restful API;每个服务承担独立的业务功能,并且能够独立部署;服务通过去中心化的方式进行管理;服务可以各自使用不同的编程语言,并使用不同的数据存储技术。”
用路由控制流量,有了路由规则,服务间就可以通过正确的方式互相访问,“头部”可以拼接到“身体”,“身体”可以连接到“四肢”,从而在庞大复杂的微服务架构中建立起井然有序的拓扑关系。
合理制定限流规则,限流规则就像是城市路网中的交通管制,通过对不同路段不同车道限制单位时间通行车辆数,保障整个交通路网的健康运转。合理地配置限流规则,可以让服务资源能够更加合理地分配给不同的请求者,也预防了流量波动可能引发的服务故障甚至宕机。
熔断降级防止“雪崩”,熔断机制是微服务架构中的“交通管制”,一旦高速公路上发生交通事故时立即对某个路段或车道进行封禁,从而避免事故进一步扩大。合理利用熔断规则可以大大提升整个微服务架构的健壮性,降低系统性风险和可能发生的事故规模。