☁️
Advanced Spring

Spring Cloud Basics

Service Discovery, API Gateway
💡 Spring Cloud ek AIRPORT CONTROL TOWER hai — INDIVIDUAL planes (microservices) khud APNA schedule/route manage NAHI karte, CONTROL TOWER (Eureka/Gateway) SAB KUCH COORDINATE karta hai — WHO is WHERE, KAUN se RUNWAY se JANA hai, sab CENTRALLY managed.

Spring Cloud, Spring Boot ke UPAR TOOLS ka SET hai, MICROSERVICES architectures banaने ke liye. SERVICE DISCOVERY (Eureka) — HAR microservice STARTUP par khud REGISTER karti hai, aur DUSRI services usse NAAM SE dhoondती hain (hardcoded IP/port ke bajaye) — cloud environments mein, jaha IPs CONSTANTLY CHANGE hoti hain, ye ESSENTIAL hai.

API GATEWAY (Spring Cloud Gateway) EK SINGLE ENTRY POINT hai — CLIENT sirf Gateway se baat karta hai, jo request ko SAHI internal service tak ROUTE karta hai. Cross-cutting concerns (RATE LIMITING, AUTHENTICATION) YAHIN CENTRALIZE ho sakte hain, HAR individual service mein DUPLICATE karne ke bajaye.

// Eureka Server (registry):
@SpringBootApplication
@EnableEurekaServer
public class DiscoveryServerApplication { }

// Individual microservice — khud REGISTER karti hai:
@SpringBootApplication
@EnableDiscoveryClient
public class OrderServiceApplication { }

// Ek service, DUSRI ko NAAM se call karti hai (IP nahi):
@Service
public class OrderService {
    private final WebClient.Builder webClientBuilder;

    public Inventory checkInventory(Long productId) {
        return webClientBuilder.build()
            .get()
            .uri("http://inventory-service/api/inventory/" + productId)  // service NAME, IP nahi
            .retrieve()
            .bodyToMono(Inventory.class)
            .block();
    }
}
☁️
Spring Cloud ek AIRPORT CONTROL TOWER hai — INDIVIDUAL planes (microservices) khud APNA schedule/route manage NAHI karte, CONTROL TOWER (Eureka/Gateway) SAB KUCH COORDINATE karta hai — WHO is WHERE, KAUN se RUNWAY se JANA hai, sab CENTRALLY managed.
1 / 6
⚡ झट से Recap
  • Service Discovery (Eureka) = services khud register hoti hain, naam se dhoondi jaati hain
  • API Gateway = single entry point, cross-cutting concerns centralize
  • Sirf ACTUAL microservices architecture mein zaroori — monolith mein NAHI
इस page में (2 subtopics)

Microservices environment mein, services EK-DUSRE ko DIRECTLY hardcoded IP/PORT se call NAHI karte (IPs change hoti rehti hain, especially cloud/container environments mein). Eureka ek SERVICE REGISTRY hai — HAR service startup par apna naam REGISTER karti hai, aur DUSRI services usse NAAM SE dhoondhती hain, IP-agnostic.

💡Tip: Service discovery WITHOUT IT bhi kaam kar sakta hai (hardcoded URLs), lekin scale par (10s/100s of services, jo CONSTANTLY scale-up/scale-down ho rahi hain), MANUAL IP management IMPOSSIBLE ho jaata hai.

API Gateway (jaise Spring Cloud Gateway) ek SINGLE ENTRY POINT hai poore microservices system ke liye — client SIRF Gateway se baat karta hai, Gateway REQUEST ko SAHI internal service tak ROUTE karta hai. Cross-cutting concerns (rate limiting, authentication) YAHAN CENTRALIZE ho sakte hain.

  • Client → API Gateway → correct internal microservice
  • Cross-cutting concerns (auth, rate-limiting) Gateway par centralize
  • Internal service URLs client se HIDDEN rehte hain