# 第 5 章 服务治理,调用限流
作者:小傅哥
博客:https://bugstack.cn (opens new window)
沉淀、分享、成长,让自己和他人都能有所收获!
# 一、前言
中间件用于解决共性凝练和复用
通常相同领域的应用系统间,有许多基础功能和系统服务是有相似性的,如果每次承接同类业务开发都从零开始对接,那么将大大增加研发成本。
为了尽可能多的凝练共性并复用,通常将工程开发中基础的、底层的、共用的服务和逻辑由中间包装成简单、一致、集成的开发环境,简化程序设计、功能实现和服务编排的复杂度,从本质上提升代码的复用性、松耦合和互操作的标准机制,从而提升研发整体交付效率。
# 二、需求背景
通常我们可以知道一个系统服务在正常的业务增速下的流量大小,基本也是基于这个流量大小的几倍来扩容服务和系统压测验证的。如果后续有相应的业务推广或者活动,一般都会提前报备,再由研发侧做相应的扩容。
但如果我们的系统服务已经基本稳定在一个可承载的安全体量范围,对于突发或者恶意攻击的访问都需要拦截在外,避免系统被这样的流量拖垮或者打挂掉。
因此我们需要在系统开发中使用限流机制来保护系统,但同样的这部分功能并不属于业务系统逻辑范围,它只是通用非业务的一部分共性需求,所以我们提出统一的解决方案,免去所有研发都做重复的工作。