GoConqr has a new look! Let us know what you think.

Notes

Microservices

Mariano Salas Java EE examen 1 Spanish 4 pages

Microservices

Content of the notes (4)

Page 1

Spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

Spring Cloud focuses on providing good out of box experience for typical use cases and extensibility mechanism to cover others.

Distributed/versioned configuration

Service registration and discovery

Routing

Service-to-service calls

Load balancing

Circuit Breakers

Global locks

Leadership election and cluster state

Distributed messaging

Page 2

Spring Cloud Context provides utilities and special services for the ApplicationContext of a Spring Cloud application (bootstrap context, encryption, refresh scope and environment endpoints). Spring Cloud Commons is a set of abstractions and common classes used in different Spring Cloud implementations (eg. Spring Cloud Netflix vs. Spring Cloud Consul).

How create a Spring Cloud App?

Create a Spring Boot project with Spring Cloud dependencies

Configuration management

Spring Cloud config: Client and Server

Repository organization

Solution

Spring Cloud Config: Provides centralized, externalized, secure, easy to reach a source of applications configuration. Client load application profile using .properties or .yml files (is a hierarchical file base on spaces)

Properties described by server become in part of client application`s environment

Spring Cloud Bus: Provides a simple way to notify clients of config changes.

Spring Cloud Netflix Eureka: Service Discovery, allows applications to register themselves as a client.

Page 3

Service Discovery

Service instances have dynamically assigned network locations. Moreover, the set of service instances changes dynamically because of autoscaling, failures, and upgrades. Consequently, your client code needs to use a more elaborate service discovery mechanism.

There are two main service discovery patterns: client‑side discovery and server‑side discovery. Let’s first look at client‑side discovery.

Problem

How do clients of a service (in the case of Client-side discovery) and/or routers (in the case of Server-side discovery) know about the available instances of a service?

Forces

Each instance of a service exposes a remote API such as HTTP/REST, or Thrift etc. at a particular location (host and port)

The number of services instances and their locations changes dynamically. Virtual machines and containers are usually assigned a dynamic IP address. An EC2 Autoscaling Group, for example, adjusts the number of instances based on load.

Solution

Implement a service registry, which is a database of services, their instances and their locations. Service instances are registered with the service registry on startup and deregistered on shutdown. Client of the service and/or routers query the service registry to find the available instances of a service. A service registry might invoke a service instance’s health check API to verify that it is able to handle requests.

(Netflix Eureka, Zookeeper, SmartStack)

The Client‑Side Discovery Pattern

When using client‑side discovery, the client is responsible for determining the network locations of available service instances and load balancing requests across them. The client queries a service registry, which is a database of available service instances. The client then uses a load‑balancing algorithm to select one of the available service instances and makes a request.

Microservices

The Server‑Side Discovery Pattern

The client makes a request to a service via a load balancer. The load balancer queries the service registry and routes each request to an available service instance. As with client‑side discovery, service instances are registered and deregistered with the service registry.

The AWS Elastic Load Balancer (ELB) is an example of a server-side discovery router

Microservices

Page 4

ToolsKit

DropWizard

Ratpack

Information

Description
examen 1 Java EE (Back-end) Note on Microservices, created by Mariano Salas on 16/06/2017.
Created by
Mariano Salas
Views
2
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?