2013-05-21 18 views
0

У меня есть WSO2 ESB и ELB экземпляры установлены.
Когда HTTP-запрос поступает в ESB, он открывает сокет и ждет ответа.
Но если ELB создает новый ESB, тогда ответ может перейти на ESB # 2 (вместо # 1) и обнаружить, что соединение сокетов отсутствует.
Как отправить ответ на ESB # 1?WSO2 ESB: маршрут к определенному узлу


[EDIT]
я реализовал пользовательский Axis2 транспорт, который имеет класс CustomTransportListener. Существует List открытых соединений сокетов, которые ждут ответа. Именно по этой причине только ESB # 1 может обрабатывать ответ.

ответ

0

Каждый ESB в ESB-кластере за ELB является таким же, поэтому не имеет значения, какой ESB-узел в кластере обслуживает запрос. Цель ELB заключается в том, чтобы автоматически балансировать нагрузку и сделать ее так, чтобы сложность кластера не была видна, поэтому она не дает способа указать конкретный узел, который должен получить ответ.

Невозможно отправить запрос на конкретный ESB в кластере через ELB, потому что ELB использует алгоритм Round Robin для отправки запроса в кластер ESB, поэтому вы не можете гарантировать, что конкретный узел ESB получит запрос. В моем opinoin не думаю, что это хорошая идея, чтобы ESB в одном кластере отличались друг от друга :).

+0

Спасибо! Я обновил вопрос. В моей ситуации каждый узел ESB отличается от другого, поскольку в моей настраиваемой Транспорте я храню входящие соединения сокетов. Поэтому, если ELB перенаправляет запрос на узел ESB # 2, не может быть открытых соединений сокетов (но он все еще открыт в ESB # 1). – surlac

+0

surlac i обновил ответ, я думаю, что его более ясно сейчас :) – pulasthi

Смежные вопросы