Netflix provozuje stovky mikroslužeb pro 70 milionů uživatelů. Své interní nástroje open-sourcovali. Eureka pro service discovery, Zuul jako API gateway, Ribbon pro client-side load balancing — a Spring Cloud to integruje do Spring ekosystému.
Eureka: service registry¶
Každá služba se registruje do Eureka serveru a pravidelně posílá heartbeat.
Klienti se dotazují Eureka na dostupné instance. S Spring Cloud Netflix:
@EnableEurekaClient a konfigurace v application.yml.
Zuul: API Gateway¶
Zuul je edge service — jediný vstupní bod pro klienty. Routuje requesty na správné služby, přidává autentizaci, rate limiting, monitoring. Pre-filters a post-filters pro cross-cutting concerns.
zuul:
routes:
users:
path: /api/users/**
serviceId: user-service
orders:
path: /api/orders/**
serviceId: order-service
Ribbon: client-side load balancing¶
Místo centrálního load balanceru Ribbon distribuuje zátěž na klientské straně. Dotáže se Eureka na instance a round-robin vybírá. Eliminuje SPOF load balanceru.
Spring Cloud Netflix¶
Spring Cloud integruje Netflix stack do Spring Boot aplikací. Anotace, auto-konfigurace, společná konfigurace. Enterprise Java tým se cítí jako doma.
Netflix OSS je proven stack¶
Battle-tested na obrovské škále. Spring Cloud integrace to dělá přístupným pro Java enterprise vývojáře. Doporučujeme pro Spring-based mikroslužby.