Spring Netflix eureka, zuul vs Spring Облачный поток данных
Я новичок в мире микросервисов. Хотелось бы узнать, когда использовать Spring eureka, zuul против потока данных Spring.
Я строю сервис, который, в свою очередь, будет использовать несколько гранулированных сервисов (микро-сервис), агрегирует все данные и возвращает агрегированные данные потребителю. Все сервисы будут работать в локальной сети в пределах инфраструктуры компании. Также я бы хотел балансировать нагрузку на отдельные микросервисы.
Каким должен быть выбор технологии для развертывания микросервисов?
Я использую Spring 4.3, Spring boot, Rest, Spring data.
2 ответа
Я предлагаю эту архитектуру:
- Netflix Eureka: для открытия сервиса
- Сервер Consul или Config: для сохранения конфигураций в базе среды на 12 факторов
- Zuul: для интеллектуальной и программируемой маршрутизации
- Лента Netflix: для балансировки нагрузки на стороне клиента
- Зипкин: для отслеживания
- Турбина: для агрегирования метрик
- Netflix Feign: для реализации декларативного REST API
- Hysterix: для автоматического выключателя (один из шаблонов EIP)
- RabbitMQ (Spring-AMQP) или Kafka (Spring-Kafka и Kafka Stream) за асинхронный стиль связи
- Графана + Прометей + Прометей-jmx-экспортер для системы мониторинга
- Докер: для виртуализации и архитектуры контейнерной базы
- Docker Swarm или Kubernetes: для масштабируемости, автоматизации и управления контейнерами
примечание: Prometheus - это база данных временных рядов (включая функции мониторинга), вы также можете использовать InfluxDb или Graphite вместо нее.
Я думаю, что для начала лучше всего ознакомиться с обзором всех этих проектов, чтобы лучше понять цели, которые достигаются каждым из этих проектов.