Как сделать балансировщик нагрузки более полно асинхронным?

0

Прочитав руководство ZMQ о брейкерах балансировки нагрузки, я подумал, что было бы здорово реализовать в моем собственном коде. Таким образом, я сделал, добавив некоторые дополнительные штрихи, чтобы сделать его более отзывчивым. Одним из улучшений производительности, которые я хотел добавить, была способность одновременно отправлять многократные рабочие задания. Я думаю, что я прав по этому поводу, я мог ошибаться, поэтому рассмотрим следующее в отношении только кода lbbroker, который содержится в руководстве:

Два сотрудника (клиенты) одновременно запрашивают работу, каждая из которых имеет длительные рабочие задания, предоставленные им (менеджером или менеджером). В текущем коде это хорошо, потому что он не выполняет цикличную работу с разными получателями, а выбирает FCFS. Но есть также проблема в том, что сначала требуется ответ от первого работника, который проходит до того, как работа может быть передана второму работнику.

В принципе, я хочу, чтобы работник работал так же быстро, как и рабочие, готовые получить его, стиль FCFS и одновременно. В то же время я не хочу терять модель, которую у меня есть, где менеджер A получает доступ к работнику B, а ответ рабочего B возвращается менеджеру A. Сохраняя это, чему способствует шаблон запроса-ответа, тогда как в то же время позволяя работнику B получить второе рабочее задание второго менеджера, в то время как A все еще может обрабатывать его работу, очень желательно.

Как я могу с легкостью добиться этого? Предпочтительно, изменяя мою текущую реализацию lbbroker, которая не слишком отличается от lbbroker в руководстве.

Заранее спасибо.

Теги:
asynchronous
zeromq

1 ответ

0
Лучший ответ

Как оказалось, мои трудности обусловлены недостаточно конкретным пониманием примера брокерской балансировки нагрузки; это не брокер, у которого есть сокеты REP, чтобы он мог получать между каждым запросом на запрос работы/рабочего запроса. Таким образом, асинхронная проблема вообще не существует.

В принципе, маршрутизатор имеет идентификационное сообщение и при переадресации, что согласованно, вы можете полностью исключить проблему, и маршрутизатор может свободно подключать другие пары рабочих менеджеров, пока работают N одновременных рабочих.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню