The 3 Creators Who Have Inspired My Approach to Creativity

He encouraged me to call myself a writer before I thought I was a write. Thanks to his blog I learned the core skills of writing online and connected with some good friends too. I discovered him due…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Top 5 Microservices framework as of 2019

In This article, I tried to cover basic aspects/functionalities provided by each framework to build microservices.

Spring Boot can be used for building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as possible.

Spring boot comes with tons of features e.g. service registration and discovery, circuit breakers, proxies, logging and log tracking, monitoring, authentication,config server, load balancing etc.

Spring Cloud — which builds on top of Spring Boot, provides a set of features to quickly build microservices. It’s very smart to know how to get them working together, can quickly setup services, with minimal configurations.

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.

Go Micro is a pluggable RPC based library which provides the fundamental building blocks for writing microservices in Go. it implements service discovery using consul, communication via http and encoding using proto-rpc or json-rpc, Pub/Sub.

Go Micro addresses the key requirements for building scalable systems. It takes the microservice architecture pattern and transforms it into a set of tools which act as the building blocks of a platform. Micro deals with the complexity of distributed systems and provides simple abstractions already understood by developers.

Technology is constantly evolving. The infrastructure stack is always changing. Micro is a pluggable toolkit which addresses these issues. Plug in any stack or underlying technology. Build future-proof systems using micro.

The runtime is composed of the following features:

Vertx is a tool-kit for building reactive microservices runs on the JVM. Vert.x doesn’t preach about what language is best — you choose the languages you want based on the task at hand and the skill-set of your team.We provide idiomatic APIs for every language that Vert.x supports.

Eclipse Vert.x is event driven and non blocking. This means your app can handle a lot of concurrency using a small number of kernel threads. Vert.x lets your app scale with minimal hardware. Vert.x provides simple APIs for auth in your applications. We also provide a few out of the box implementations.

Vert.x offers various component to build microservice-based applications.

This component lets you publish, lookup and bind to any type of services.

This component provides an implementation of the circuit breaker pattern for Vert.x

This component provides an extensible way to configure Vert.x applications.

Vert.x supports clustering and HA out of the box. Cluster group management is implemented in cluster managers which are pluggable. The default cluster manager uses Hazelcast.

Helidon Reactive WebServer provides a modern functional programming model and runs on top of Netty. Lightweight, flexible and reactive, the Helidon WebServer provides a simple to use and fast foundation for your microservices.

Helidon is designed to be simple to use, with tooling and examples to get you going quickly. Since Helidon is just a collection of libraries running on a fast Netty core, there is no extra overhead or bloat.

With support for health checks, metrics, tracing and fault tolerance, Helidon has what you need to write cloud ready applications that integrate with Prometheus, Jaeger/Zipkin and Kubernetes.

Axon provides a unified, productive way of developing Java applications that can evolve without significant refactoring from a monolith to Event-Driven microservices.

Axon includes both a programming model as well as specialized infrastructure to provide enterprise ready operational support for the programming model — especially for scaling and distributing mission critical business applications. The programming model is provided by the popular Axon Framework while Axon Server is the infrastructure part of Axon, all open sourced.

Axon Framework is a Java microservices framework that helps you build microservices architecture in-line with Domain Driven Design (DDD) principles.

Apart from DDD, Axon Framework also allows you to implement microservices patterns such as Command-Query-Responsibility-Segregation (CQRS) and Event-Driven Architecture.

Axon is ready to meet even the most demanding enterprise requirements like the most efficient scaling of event storage, security, clustering, load-balancing, service discovery, globally distributed data centers, third-party integration, metrics and monitoring.

Add a comment

Related posts:

The Extra Mile

Going the extra mile is often almost impossible because for most of us, we move with just enough fuel for one mile. The extra mile is for those who, after their fuel tank is empty, are willing to get…