java - Spring用单线程池并发处理多个队列

标签 java spring multithreading spring-integration

我有一个 spring 应用程序,应该处理和存储套接字传入数据,由于瓶颈问题,这应该通过多线程来完成。

传入数据属于许多实体,并且每个实体任务应该串行处理,但我认为为每个实体分配一个线程并不是一个好的解决方案(数千个单个实体)线程来处理每个实体的队列)

那么如何定义一个公共(public)ThreadPool来使用票价算法处理所有实体的队列?

最佳答案

您描述了一个使用消息驱动架构来解决的完美问题。

Spring Integration 是为您提供此功能的模块。

您可以构建任务服务并使用 @ServiceActivator 进行注释,并使用 Channels 创建链。

channel 可以选择在不同的线程池上执行,并且可以通过 channel 上的队列设置来克服峰值负载造成的瓶颈。

绝对值得尝试查看 Spring Integration 的文档。

关于java - Spring用单线程池并发处理多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41932123/

相关文章:

java - 返回什么类型?

java - 如何处理web java项目中的所有异常

java - Hystrix 线程池属性

java - ArrayList.add(int index, E element) 线程不安全吗?

java - 检查一个字符串是否只有字母+空格?

java - Android 应用程序不合理地旋转为横向,然后又返回纵向

java - Spring Batch循环读取器,同时更改sql查询并写入不同的文件

spring - 属性文件中的 persistence.xml 属性值

spring - 使用 Spring Autowiring Struts Action 类

c - 线程的缓存在退出时是否刷新到主内存?