我目前正在开发一个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实现此行为,还是应该寻找其他解决方案?
非常感谢您的帮助。
答案 0 :(得分:0)
民意测验非常沉重,这些天可能会被视为“过时”。
我强烈建议尝试使用:Sse(服务器发送事件)或websocket。
许多技术还支持上述两种解决方案(春季...)
您可以在本文中找到更多详细信息:
https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9