【发布时间】:2018-09-25 10:22:17
【问题描述】:
我正在开发一个SMPP 平台,该平台必须能够每秒发送特定数量的短信。
这很容易通过使用 amqp 和 spring 集成来实现。
但是:
我需要在 2 个节点上将项目作为 active-active 服务运行,并且每个节点都连接到 2 个 SMSC。
对于此配置,我的允许流量为 100 msg/s,我需要将流量理想地分布在所有可用连接上。
一个简单的轮询器可以很容易地为每个节点配置为 25 msg/s (4 * 25 = 100),但是如果我的一个连接断开,我想将丢失的容量分散到实时的其他节点/连接。
为此,我想创建一个动态轮询器,以获取有关 redis 中连接状态的信息,并仅调整运行时每次轮询允许的消息量(例如,0 表示断开的连接,33% 表示其他 3 个连接,或者如果 4 上只有 2 个连接可用,则为 50%。
是否可以使用自定义 PollerMetadata 来实现此行为,还是应该寻找其他解决方案?
【问题讨论】:
-
欢迎来到 SO。你能更详细地描述你的问题吗?例如。通过添加描述您的问题的代码、命令或屏幕截图。另请查看帮助中心,尤其是asking 和minimal examples。谢谢。
标签: spring spring-integration amqp high-availability poller