如何在无状态服务中考虑开放会话

时间:2016-12-15 02:20:29

标签: design-patterns cloud monitoring microservices instrumentation

我正在将我的应用从经典服务转换为微服务。 我需要计算公开会话的总数。

我的经典版本是写一个本地windows perf计数器:会话打开时+1,会话结束时-1。如果服务意外死亡,则新实例在启动期间重置计数器。远程监控服务从所有实例收集计数器并显示总数和平均值。

我的新服务使用诊断库写入计数器,该库将值推送到远程监控服务。

如果服务意外死亡,我不明白如何重置计数器。我得到的唯一想法是开始从每个服务收集心跳并在服务终止时重置计数器,但它似乎过度设计。

是否有更优雅的模式可以为无状态服务的开放会话进行可靠的计算?

微服务管理系统中是否有针对此场景的标准术语?

1 个答案:

答案 0 :(得分:1)

那么,如果您的服务是无状态的并且您想要将无声崩溃考虑在内,为什么不在需要时从当前处于活动状态的服务中查询该信息?每个服务都知道它有多少活动会话。如果某项服务没有回复该请求,那么它已经死了。