Spring Cloud Eureka с языком не-JVM (PHP) / Обнаружение сервисов с использованием конечных точек REST Eureka

Я использую Spring Eureka в качестве сервера обнаружения в своем приложении, которое реализовано с использованием архитектуры микросервисов. Службы в основном создаются с помощью PHP, и они регистрируются при запуске с использованием конечных точек Eureka REST, и каждая из них посылает сердцебиение каждые 30 секунд, и все работает хорошо.

Теперь представьте, что служба A хочет поговорить со службой B. Как происходит обнаружение?
В настоящее время я думаю, что служба A должна отправить запрос GET http://localhost:8761/eureka/apps/service-B конечная точка, получить список текущих экземпляров службы B и выбрать между ними. Это правильный подход?
Как насчет балансировки нагрузки? Должен ли я реализовать это в своих службах, чтобы каждый раз запрашивать другой экземпляр? Или выбирать между ними случайно?

Любая помощь будет принята с благодарностью.

Обновить: Взгляни на эта библиотека.

1

Решение

Существует простой способ сделать это с помощью Spring Cloud Netflix Sidecar: http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_polyglot_support_with_sidecar

Если вы хотите продолжить реализацию этого самостоятельно, у вас есть несколько вариантов. С помощью балансировки нагрузки на стороне клиента вы можете извлечь все экземпляры из Eureka, а затем выбрать один случайным образом на стороне потребителя. Если вам нужна балансировка нагрузки на стороне сервера, вам понадобится дополнительный компонент, такой как Zuul, и пусть он выполняет балансировку нагрузки и маршрутизацию. Zuul использует конфигурацию eureka, поэтому ее легко интегрировать.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]