java订阅大量客户端,如何实现类似http同步请求的效果

问题:java订阅大量客户端,如何实现类似http同步请求的效果
背景:比如1000台设备集中由平台管理,每个设备大约40组主题(request/response),主题上带上设备码做区分
期望效果:类似http请求效果,向主题发出消息之后,可以实时得到返回结果
目前做法:每个请求有唯一id,返回的消息中,根据id做匹配。由线程池和redis实现
但有弊端,请求很多的情况下,线程池中连接数有限,后续请求就只能等待
看看大家有没有类似的场景,有没有更好的方案

就目前了解到的,大部分和这个方案是差不多的。目前现在极限能抗到多少 TPS 呢?

不过不太清楚这里的 Redis 的作用。按理来说,请求和应答都放内存就行了,其实就和 HTTP 客户端的实现类似。

因为可能存在响应超时或者响应耗时的情况,所以我们收到响应之后,先放redis,再通知请求方去redis里匹配

使用的共享订阅的情况下,如果不放redis只放内存的话,可能请求 跟 响应 不在同一个服务里面