下面介绍为什么要使用集群控制。
对于单个流控制,为每个设备设置单个流控制阈值,理想情况下整个集群的流控制阈值是设备数量单个阈值。 但是,实际上每个机器的流量可能不均匀,总量不足时,根据机器的不同,流量限制可能会开始。 因此,如果只限制单体维,就不能正确地限制整体的流量。 集群控制可以精确控制集群整体的调用总量,并结合单体限流驱动器,更好地发挥流量控制的效果。
必须根据单个通信不均匀问题和如何设置整个群集的QPS问题,创建群集流限制模式。 在这种情况下,很自然,您会找到一个服务器来汇总总调用量,而其他实例则与此服务器进行通信以确定是否可以调用。 这是最基本的集群控制方式。
原理群集流限制的原理很简单,与独立流限制一样,需要统计qps等数据。 区别在于独立版本是按实例统计的,而集群版本是由特殊实例统计的。
专门用于此统计数据的称为sentinel token server,其他实例以sentinel token client的身份向token server请求token。 如果token成功,则表示当前qps尚未达到总阈值,否则表示已达到群集的总阈值,并且当前实例必须被阻止