Micro service architecture

What is a microservice?

The concept of microservices was first proposed by Martin Fowler and James Lewis in 2014. They defined microservices as small services composed of a single application, with its own process and lightweight processing. Designed according to business functions, deployed in a fully automated manner, and communicate with other services using HTTP API. At the same time, the service will use the smallest-scale centralized management (such as Docker) technology, and the service can use different programming languages ​​and databases.
Microservices are the final product of the SOA architecture. The design goal of this architecture is to dismember the business so that the service can run independently.
Mainly have the following characteristics

Service splitting granularity is finer
Microservices can be said to be a more fine-dimensional servicization, as small as a sub-module. As long as the resource that the module depends on has nothing to do with other modules, it can be split into a microservice.

Independent deployment of services
Each microservice strictly follows the guidelines of independent package deployment and does not affect each other. For example, multiple Docker instances can be deployed on a physical machine, and each Docker instance can deploy a microservice code.

Service independent maintenance
Each microservice can be developed, tested, released, and operated by a small team or even an individual, and is responsible for the entire life cycle.

High requirements for service governance capabilities
Because the number of services increases after being split into microservices, a unified service governance platform is needed to perform manage.

Under the microservice architecture, service invocation mainly relies on the following basic components: Service Description Registry Service Framework Service Monitoring Service Tracking Service Governance

Open source RPC framework introduction

Back to top

Dubbo

The earliest open source RPC framework in China , Developed by Alibaba and open sourced at the end of 2011, only supports Java language. In the middle of no maintenance, a lot of people were pitted, and the maintenance was restarted in 17 years to bring a new year. The architecture diagram is as follows
dubbo-relation back to top

< h3 id="tars">Tars

Tars is a high-performance RPC development framework based on the name service using the Tars protocol. At the same time, it is equipped with an integrated service management platform to help individuals or enterprises quickly use microservices. Build your own stable and reliable distributed applications.
Tars is an open source project that summarizes years of practice results of TAF (Total Application Framework), a microservice architecture used internally by Tencent.

Official website: https: //github.com/TarsCloud/Tars

The architecture diagram is as follows
picture description back to top

gRPC

It was originally developed by Google and is a language-neutral, platform-neutral, and open source remote procedure call (RPC) system.
Official website: https://grpc.io
picture description Back to top

Motan

Motan is another well-known open source in China The RPC framework also only supports Java language implementation. Its architecture can be described in the following picture.
Picture description Back to top