Spring Netflix eureka, zuul vs Spring Облачный поток данных

Я новичок в мире микросервисов. Хотелось бы узнать, когда использовать Spring eureka, zuul против потока данных Spring.

Я строю сервис, который, в свою очередь, будет использовать несколько гранулированных сервисов (микро-сервис), агрегирует все данные и возвращает агрегированные данные потребителю. Все сервисы будут работать в локальной сети в пределах инфраструктуры компании. Также я бы хотел балансировать нагрузку на отдельные микросервисы.

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

Я использую Spring 4.3, Spring boot, Rest, Spring data.

2 ответа

Я предлагаю эту архитектуру:

  1. Netflix Eureka: для открытия сервиса
  2. Сервер Consul или Config: для сохранения конфигураций в базе среды на 12 факторов
  3. Zuul: для интеллектуальной и программируемой маршрутизации
  4. Лента Netflix: для балансировки нагрузки на стороне клиента
  5. Зипкин: для отслеживания
  6. Турбина: для агрегирования метрик
  7. Netflix Feign: для реализации декларативного REST API
  8. Hysterix: для автоматического выключателя (один из шаблонов EIP)
  9. RabbitMQ (Spring-AMQP) или Kafka (Spring-Kafka и Kafka Stream) за асинхронный стиль связи
  10. Графана + Прометей + Прометей-jmx-экспортер для системы мониторинга
  11. Докер: для виртуализации и архитектуры контейнерной базы
  12. Docker Swarm или Kubernetes: для масштабируемости, автоматизации и управления контейнерами

примечание: Prometheus - это база данных временных рядов (включая функции мониторинга), вы также можете использовать InfluxDb или Graphite вместо нее.

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

Другие вопросы по тегам