我有一个 spring 应用程序,应该处理和存储套接字传入数据,由于瓶颈问题,这应该通过多线程来完成。
传入数据属于许多实体,并且每个实体任务应该串行处理,但我认为为每个实体分配一个线程并不是一个好的解决方案(数千个单个实体)线程来处理每个实体的队列)
那么如何定义一个公共(public)ThreadPool
来使用票价算法处理所有实体的队列?
最佳答案
您描述了一个使用消息驱动架构来解决的完美问题。
Spring Integration 是为您提供此功能的模块。
您可以构建任务服务并使用 @ServiceActivator 进行注释,并使用 Channels 创建链。
channel 可以选择在不同的线程池上执行,并且可以通过 channel 上的队列设置来克服峰值负载造成的瓶颈。
绝对值得尝试查看 Spring Integration 的文档。
关于java - Spring用单线程池并发处理多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932123/