WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Core Java · Guru · question 84 of 100

What is a service mesh in microservices architecture? How is it used?

📕 Buy this interview preparation book: 100 Core Java questions & answers — PDF + EPUB for $5

In a microservices architecture, a service mesh is a dedicated infrastructure layer that provides traffic management, service discovery, security, and other functionality for microservices. The main idea behind a service mesh is to decouple the communication logic from the microservices themselves, thus simplifying the development and maintenance of the microservices.

A service mesh is typically implemented using a sidecar proxy, which runs alongside each microservice instance and handles all communication between the microservice and the service mesh. The sidecar proxy intercepts all incoming and outgoing traffic to the microservice and applies policies defined by the service mesh, such as traffic routing, load balancing, encryption, and authentication.

One of the most popular implementations of a service mesh is Istio, which is an open-source project developed by Google, IBM, and Lyft. Istio provides a comprehensive set of features for managing microservices, including traffic routing, security, telemetry, and policy enforcement.

Here’s an example Java code snippet that shows how to use the Istio Java SDK to interact with an Istio service mesh:

// Create a client to interact with the Istio control plane
IstioClient client = IstioClient.newBuilder().build();

// Get a list of all services in the mesh
List<Service> services = client.listServices();

// Get detailed information about a specific service
ServiceDetails details = client.getServiceDetails("my-service");

// Apply a traffic routing rule to send 50\% of 
//traffic to version 1 and 50\% to version 2
RouteRule rule = RouteRule.newBuilder()
    .setName("my-rule")
    .setDestination("my-service")
    .addRoute(Route.newBuilder()
        .setLabels(ImmutableMap.of("version", "v1"))
        .setWeight(50)
        .build())
    .addRoute(Route.newBuilder()
        .setLabels(ImmutableMap.of("version", "v2"))
        .setWeight(50)
        .build())
    .build();
client.createRouteRule(rule);
Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Core Java interview — then scores it.
📞 Practice Core Java — free 15 min
📕 Buy this interview preparation book: 100 Core Java questions & answers — PDF + EPUB for $5

All 100 Core Java questions · All topics