我正在开发一个SMPP
必须能够每秒发送特定数量的短信的平台。
amqp
使用spring 集成很容易实现这一点。
但:
我需要在 2 个节点上将项目作为active-active
服务运行,并且每个节点都连接到 2 个 SMSC。对于此配置,我的允许流量为 100 msg/s,并且我需要将我的流量理想地分布在所有可用连接上。
一个简单的轮询器可以很容易地为每个节点配置为 25 msg/s (4 * 25 = 100),但是如果我的一个连接断开,我想将丢失的容量分散到实时的其他节点/连接。
为此,我想创建一个动态轮询器,它获取有关 redis 中连接状态的信息,并仅调整运行时每次轮询允许的消息量(例如,断开连接为 0,其他 3 个连接为 33%,如果连接为 50%,则为 50% 4 上只有 2 个连接可用)。
是否可以使用自定义 PollerMetadata 来实现此行为,还是应该寻找其他解决方案?