Пользовательский опросщик Spring, использующий динамическое максимальное сообщение для каждого значения опроса
Я в настоящее время разрабатываю SMPP
Платформа, которая должна быть способна доставлять определенное количество смс в секунду.
Это было легко реализовано с помощью amqp
с пружинной интеграцией
НО
Мне нужно запустить проект как active-active
сервис на 2 узла и каждый узел имеет подключение к 2 SMSC.
Для этой конфигурации у меня есть разрешенный трафик 100 мсг / с, и мне нужно идеально распределить свой трафик по всем доступным соединениям.
Простой опросчик может быть легко настроен на 25
мс / с для каждого узла (4 * 25 = 100), но если одно из моих соединений не работает, я хочу распространить потерянную емкость на другие узлы / соединения в прямом эфире.
Для этого я хотел бы создать динамический опросчик, который получает информацию о состоянии соединения в redis и просто адаптировать количество сообщений, разрешенных для каждого опроса во время выполнения (0 для разорванного соединения и 33% для 3 других, например, или 50%, если доступно только 2 соединения на 4).
Можно ли реализовать это поведение с помощью пользовательского PollerMetadata или я должен искать какое-то другое решение?
Спасибо заранее за помощь.
1 ответ
Опрос довольно тяжелый и может считаться "старомодным" в наши дни.
Я настоятельно рекомендую попробовать: Sse (событие отправки сервера) или websocket.
Многие технологии также поддерживают оба вышеуказанных решения (весна...)
Вы можете найти более подробно в этой статье:
https://codeburst.io/polling-vs-sse-vs-websocket-how-to-choose-the-right-one-1859e4e13bd9