Мы работаем над облачным родным приложением, которое будет развернуто в Cloud Foundry, и после первоначального «давайте использовать все лакомства из Netflix» мы начали задаваться вопросом, оправдывает ли использование перекрытие с CF использование компонентов Netflix.Ценность Эврика в облачном литейном/PaaS-окружении?
Специально в случае Eureka, мы планировали использовать его для обнаружения сервиса, но тогда очень похожие возможности предоставляются из коробки CF и маршрутами. То, что мы пропустили, - это временная регистрация служб (что в случае архитектуры, которая не меняется часто, не является большой проблемой и будет фактически статической картой serviceID -> CF-маршрута) и heartbeat (на уровне приложений, поскольку Я полагаю, что на уровне контейнера CF уверен, что все в порядке).
Так что теперь мне интересно - как вы используете его в своих приложениях (реальных приложениях) при использовании CF? Каковы преимущества сохранения его в архитектуре?
Спасибо,
Лешек
PS. Интересно отметить, что если eureka хранит простую карту маршрута serviceID -> CF, тогда, если я прав, значение Zuul также снизится (поскольку LB будет доставлен CF, а gorouter - очень хороший вариант).
Ну, это правда, если мы предполагаем жестко закодированные URL-адреса, но что, если мы используем службу конфигурации (которая, как я надеюсь, большинство людей используют в настоящее время в любом случае), чтобы хранить информацию о маршрутизации маршрута serviceID -> cloud Foundry? Отображение будет отличаться для локальной машины, для QA и PROD (отличается профилем весны) и будет отвлечено от моего приложения. Если я прав, этот подход даст мне именно то, что дает Eureka в CF, но устранит один компонент (Eureka Server) плюс Eureka Client libs от каждой службы. Итак, чистая победа из моего пова ...? :) –
Это, безусловно, жизнеспособный подход, но он требует, чтобы вы поддерживали маршруты в двух местах и синхронизировали их. Вам нужно будет определить маршрут, связанный с cf (например, в manifest.yml), а затем определить соответствующий маршрут в config-сервере. Если что-то изменится, вам нужно исправить в обоих местах. В больших развертываниях рекомендуется избегать подобных задач неавтоматической синхронизации. Но если это сработает для вас в вашей среде, это здорово! –
Хорошая точка. Поэтому теперь мне интересно - если у нас уже есть Redis в архитектуре, то такое отображение маршрута serviceID -> может храниться в Redis. Преимущества - нет дополнительного компонента, со всей ценностью Eureka, если я прав? –