微服务系统的度量、迁移与管理
1. 微服务系统的不变量
1.1 消息流速率比率作为不变量
消息流速率的比率是系统的不变量。对于给定的消息模式配置,无论负载、服务和网络如何变化,这些比率都保持不变。可以利用这一特性来验证系统的正确性。如果两个消息之间存在因果关系,即一个消息的到达会导致另一个消息的发送,那么可以随时间捕获它们的流速率比率。与预期比率值的偏差代表系统行为不正确。
例如,在用户登录与加载用户配置文件的案例中,如果比率发生了令人担忧的变化,就可能意味着系统出现了问题。还可以将这个比率图表用作控制图,在使用渐进金丝雀部署模式部署用户登录服务的新版本时,通过流速率比率来验证新版本是否没有破坏任何功能。
1.2 从业务逻辑中寻找不变量
每个由消息流编码的业务需求都建立了一个不变量。以微博系统为例,发布新条目时,会生成一个同步消息到条目存储,并生成一个关于该条目的异步公告消息。因此, post:entry 消息与它引发的两个消息( info:entry 和 store:save,kind:entry )之间的流速率比率为 2。
建立这些不变量可以在系统持续变化时验证系统,允许快速安全地进行更改而不破坏系统。当一个或多个不变量出现偏差时,可以回滚上一次更改。同时,不变量还能用于检查实时系统的健康状况,监控系统是否按设计运行。并且,应该考虑自动化配置从业务规则派生的不变量。
1.3 从系统架构中寻找不变量
1.3.1 参与者风格不变量
在同步/消费消息的经典请求
超级会员免费看
订阅专栏 解锁全文
68

被折叠的 条评论
为什么被折叠?



