如何计算无状态服务中的打开会话

How to account for open sessions in a stateless service

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

我的经典版本是编写本地 windows 性能计数器:会话打开时 +1,会话关闭时 -1。如果服务意外终止,新实例会在启动期间重置计数器。远程监控服务正在收集所有实例的计数器并显示总数和平均值。

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

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

是否有更优雅的模式来对无状态服务的打开会话进行可靠的统计?

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

好吧,如果您的服务是无状态的,并且您希望将无提示崩溃考虑在内,为什么不在需要时从当前处于活动状态的服务中查询该信息呢?每个服务都知道它有多少活动会话。如果一个服务没有响应请求,它就死了。