在我的 J2EE Web 应用程序中,我必须将每个 Web API 调用的计数发送到一个隔离线程以计算调用次数。可能性包括:
a) 使用原子长。如果我在一分钟内有数百万个电话,我认为这会引起争用。因为,所有线程都将尝试更新单个变量。
b) 使用共享队列。每个请求处理线程都将插入队列,并且专用计数器线程将从该队列中出列并增加计数。
c) 使用演员模型,比如使用 Akka 库。向参与者发送一条异步消息,这会将其添加到计数中。
我的问题是方法(b)与(c)相比如何。有什么优点和缺点,它们在低级别有什么不同?