Я использую HAProxy 1.8 для прокси-запросов к моему HTTP API, и теперь хочу сбалансировать нагрузку между несколькими серверами, примерно так:
backend http-in-backend
balance roundrobin
server api-server1 10.1.1.1:1234
server api-server1 10.1.1.2:1234
Однако есть некоторые запросы, которые необходимо отправлять на все серверы. В этом случае можно вернуть ответ от любого из них клиенту, поскольку ответ должен быть таким же. Есть ли способ сделать это? Конечно, я могу условно отправить эти запросы на отдельный сервер. Итак, проблема в следующем: как мне отправить один запрос на несколько серверов и вернуть ответ с любого из них?
По-видимому, никак с haproxy: https://www.mail-archive.com/haproxy@formilux.org/msg02138.html
Это больше похоже на задачу для очереди сообщений, чем для обратного прокси. Загляните в RabbitMQ или аналогичный, чтобы увидеть, как можно спроектировать такое решение. Одним из наиболее вероятных решений может быть «любой» сервер, получивший запрос, а затем передать соответствующее содержимое в очередь, на которую подписаны «все» серверы.