我有一个来自websocket或grpc客户端的消息流。我的服务为每条消息生成0条或更多回复消息。默认情况下,websocket端点和grpc请求观察器都保证由最多1个线程同时调用,因此我的回复与请求的发送顺序相同。现在我想将请求处理分派给其他线程并并行处理它们,但仍然保持顺序。因此,我需要一些“并发有序响应缓冲区”,它将缓冲对给定请求消息的响应,直到完成对以前请求的处理并发送对它们的响应(按照它们在每个“请求桶”中产生的顺序)。
我可以自己开发这样的类,但这似乎是一个常见的情况,所以我想知道,也许这样的事情已经存在(不要重新发明轮子)。然而,我在网上找不到任何东西:有人知道这样的事情吗?
谢谢!
1条答案
按热度按时间t3psigkw1#
万一有人也需要,我自己写的,因为没有答案:
https://github.com/morgwai/java-utils/blob/master/src/main/java/pl/morgwai/base/utils/orderedconcurrentoutputbuffer.java
欢迎反馈:)