如果要缩放并使用每个pod/实例中的8个线程执行器服务,在系统突然关闭时,“消息”就会被认为已经被接收/消耗了。我猜想的一种策略是使用一个单独的分布式 Redisson list / map来表示这些元素/消息正在处理。我想这是可行的,但是跟踪这个列表也不容易。是否有一种方法可以实现takeHead,以某种方式使用活动对象,然后将队列中的一个元素标记为被管理,然后在执行O(1)时以某种方式删除它?
我正在写一个实时应用程序,它每秒接收大约2000条消息,这些消息在队列中被推送。我已经编写了一个后台线程来处理队列中的消息。/ Like updating the received message in a datagrid }}
上面代码的问题是,它使用了大约12%的CPU(2.40 GHz双核处理器)的大量处理能力。