Я занимаюсь проектированием системы, которая действует как пересылка сообщений от одной системы к другой. У меня есть несколько вариантов, но я хотел бы применить лучший вариант, который обеспечивает меньшее потребление ресурсов (ЦП, ОЗУ) и задержку. Таким образом, мне нужна ваша рекомендация и ваше мнение по этому поводу. Мы предполагаем, что сообщения будут передаваться в нашу систему из темы в Kafka. Нам нужно переслать все сообщения из темы на другой хост. Для этого могут быть разные стратегии.
- Соберите определенное количество сообщений, скажем, 100 сообщений (пакетная обработка) и отправьте их сразу в одном сообщении HTTP.
- Когда получено одно сообщение, система отправит это сообщение как HTTP-запрос POST на целевой хост.
- Откройте webSocket между нашей системой и целевым хостом и отправьте сообщения.
- Ведите себя как продюсер Kafka и отправляйте сообщения в тему.
У каждого из них могут быть свои достоинства и недостатки. Я обеспокоен тем, что система может не обрабатывать большое количество поступающих сообщений. Есть ли у вас другие варианты, кроме этих 4 пунктов? Какой вариант вы считаете лучшим с точки зрения чего?