В настоящее время я разрабатываю платформу SMPP
, которая должна быть способна доставлять определенное количество смс за секунду.
Это легко реализовать с помощью amqp
с пружинной интеграцией
НО
Мне нужно запустить проект как сервис active-active
на 2 узлах, и каждый узел имеет соединение с 2 SMSC.Для этой конфигурации у меня есть разрешенный трафик 100 мсг / с, и в идеале мне нужно распределить свой трафик по всем доступным соединениям.
Простой опросчик может быть легко настроен на 25
мсг / с для каждого узла(4 * 25 = 100), но если одно из моих соединений не работает, я хочу распространить потерянную емкость на другие узлы / соединения в прямом эфире.
Для этого я хотел бы создать динамический поллер, который получитинформация о состоянии соединения в redis и просто адаптация количества сообщений, разрешенных для опроса во время выполнения (например, 0 для разорванного соединения и 33% для 3 других, или 50%, если доступно только 2 соединения на 4).
Возможно ли реализовать это поведение с помощью пользовательских PollerMetadata или мне нужно искать какое-то другое решение?
Спасибо заранее за помощь.