模式以避免多实例应用程序中的单例中的消息计数器

Ant*_*ado 5 java architecture multi-instance-deployment

我想知道哪个模式建议使用计数器来表示处理的消息数,应用程序应该是无状态的.

例如,在应用程序部署在多个服务器上的体系结构中,数据库用于存储持久性信息(会话等).但是,此类信息不会像消息计数器那样暴露于并发更新.在单实例应用程序中,我们可以使用单例,但这不是这种情况.

你有什么建议来实施这样的计数器?使用计数器设计不好吗?

Vla*_*sny 0

我认为没有某种模式可以完成这项非常抽象的任务。还:

在单实例应用程序中,我们可以使用单例,但这里不是这种情况。

使用单例并不能保证多线程系统中的数据安全。您需要一些同步原语。非常简单的是关键部分。

如果您的所有应用程序都应该更新一些计数器,那么将这个“计数器”管理重构到微服务中并使用微服务内的关键部分来更新资源看起来是合理的。在这种情况下,在每个给定时刻,您保证只有一个线程更新计数器。