使用每个轮询值的动态最大消息数的Spring自定义轮询器

时间:2018-09-25 10:22:18

标签: spring spring-integration amqp high-availability poller

我目前正在开发一个SMPP平台,该平台必须能够每秒传输特定数量的短信。

使用amqp和spring集成很容易实现这一点

但是

我需要在2个节点上将项目作为active-active服务运行,并且每个节点都连接到2个SMSC。
对于此配置,我允许的流量为100 msg / s,并且理想情况下,我需要将流量分布在所有可用的连接上。

一个简单的轮询器可以很容易地配置为每个节点25 msg / s(4 * 25 = 100),但是如果我的一个连接断开,我想将丢失的容量分配给其他节点/实时连接。

为此,我想创建一个动态轮询器,以获取有关redis中连接状态的信息,并仅调整运行时每次轮询所允许的消息量(例如,断开的连接为0,其余3个为33%,或者如果只有4个连接中有2个连接,则为50%。

是否可以通过自定义的PollerMetadata实现此行为,还是应该寻找其他解决方案?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

民意测验非常沉重,这些天可能会被视为“过时”。

我强烈建议尝试使用:Sse(服务器发送事件)或websocket。

许多技术还支持上述两种解决方案(春季...)

您可以在本文中找到更多详细信息:

https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9