我有一个服务结构应用程序,其中包含一个无状态服务和多个有状态服务。无状态服务从RabbtitMQ读取(使用MassTransit),并将消息传递给相应的有状态服务以对其进行处理。传递给有状态服务的消息在ConcurrentQueue中排队,并在RunAsync中使其出队和处理。直到出现较少的消息为止,一切都很好。最近,消息的数量增加了很多倍。现在的情况是RabbitMq中的消息计数为数百万,并且有状态服务队列过载。内存使用率非常高,群集被卡住。
谢谢
您如何划分感激的服务?如果您具有范围或命名分区,则所有消息都不应与同一个副本相同。如果正确应用了分区方案,则消息将最终位于同一有状态服务的不同分区中,并且可以横向扩展。