我有一个后端,它接收函数的请求。
update(by_whom, payload);
然后我处理请求,并作出相应的答复。
每次用户发送请求时,消息在生成答案之前都要经过几个处理对象。
现在,我将如何在自己的线程中处理每个用户?我不明白如何将事件分派给定制的线程。
示例:
User 1发送第一个请求->我们创建了一个ThreadUser1并在那里处理它。
User 2发送了第一个请求->我们在那里创建了一个ThreadUser2并处理它,如果user1的request1还没有完成的话,它们可以一起运行。
User 1发送第二个请求,--他发送的第一个请求尚未完成 -> --我们
我有Kafka topic和1-partition。1 listener是在我的春季引导应用程序中使用@KafkaListener定义的。listener使用一个ThreadPoolTaskExecutor来选择并处理ConsumerRecord。但是,我可以看到kafka承诺不具备的严格顺序,因为在这个场景中,当并行线程开始处理时,我可以看到offset的跳转(用时间戳验证)。所以问题是:
为什么侦听器中的并行线程不遵循顺序?
如何同时实现并行性和有序性,使并行线程获取下一个偏移量而不跳转?
编辑1
public class DefaultTopicListener {