Introduction of Dubbo

Hello everyone, from now on, I will share with you the Dubbo topic. So why do we learn Dubbo? What is a Dubbo? You may have a lot of questions about people who are new to you or just starting out at work. First of all, Dubbo is the basic capability framework of our micro-service development, which can be said to be the top RPC framework in China. It not only has complete service governance ability, service registration discovery ability, fault tolerance ability, cluster ability and so on, but also provides rich pluggable expansion ability. So what is RPC and what RPC frameworks are out there? What are their performance advantages? So let’s go into detail with our Dubbo series.

preface

First, let’s explain what RPC is. Remote Procedure Call stands for Remote Procedure Call. RPC is used to call functional procedures on a remote computer (it is also commonly used between processes on the same machine). Consider this scenario: Service A and service B are deployed on two different servers. Service A needs to invoke A method on service B. Since these services are deployed on two different servers, the process of establishing A network connection to interact is called remote service invocation. The following figure shows two common RPC calls:

  1. RPC cross-process invocation: Service invocation between different processes in the same operating system

  1. PRC cross-system and cross-process invocation: that is, remote service invocation between different operating systems and across processes

From the level of communication protocol, it can be divided into:

  1. Based on HTTP protocol:

    1.1 SOAP (XML-based Transport)

    1.2 REST (JSON Based Transfer)

    1.3 Hessian(Based on Binary Transmission)

  2. Based on TCP:

    2.1 Mina

    2.2 Netty

From the level of language and platform, it can be divided into:

  1. The Java platform

    1.2 the RMI

  2. The.net platform

    2.1 the Remoting

The call process can be divided into:

  1. A synchronous invocation

  2. The asynchronous call

1. What is Dubbo

Apache Dubbo is an open source high-performance, Java-based RPC framework developed by Alibaba. As in many RPC systems, Dubbo revolves around the idea of defining a service that can invoke remote methods by specifying their parameters, methods, and return types. On the server side, the server implements this interface (note: the service provider provides the specification of the interface implemented by the service) and runs the Dubbo server to process the client calls. On the client side, the client has a server-side stub (note: interface specification provided by the server) from which remote server-side methods can be invoked as if they were local methods.

2. RPC ecological comparison

Here’s a quick horizontal comparison of the features of the popular RPC frameworks.

Dubbo Montan rpcx gRPC Thrift
The language environment Java Java Go cross-language cross-language
distributed support support support Does not support Does not support
Multiple serialization framework support Support (currently supports Hessian2, Json, extensible) support Not supported (Protobuf only supported) Not supported (Thrift format)
Multiple registry support support support Does not support Does not support
Management center support support support Does not support Does not support
Cross-programming language Does not support Not supported (Php Client and C Server supported) Does not support support support
  1. Dubbo: Alibaba open source

  2. Montan: Sina Weibo is open source

  3. RPCX: Golang.net/RPC

  4. GRPC: Google open source

  5. Thrift: Facebook open source

3. Development history of Dubbo

  1. 2.5.x-2.6.x Major functions and features

    1.1 Service registration/discovery

    1.2 Health Check

    1.3 Multi-protocol support

    1.4 Serializing Services

    1.5 Service Cluster

    1.6 Failed to Execute a policy

    1.7 Load Balancing Policies

    1.8 Service Governance

    1.9 Service Monitoring

    1.10 Service Running Containers

    1.11 Directly connected provider

    1.12 Service Proxy

    Version 1.13 / Group management

    1.14 Generalization call

    1.15 Delayed exposure

    1.16 Local stubs

    1.17 Service Degradation

    1.18 Configuring Routing Rules

  2. 2.7. X Major Functions and features

    2.1 Application Granularity Service Registration

    2.2 HTTP/2 (gRPC) protocol support

    2.3 Protobuf support

    2.4 Performance optimization: Call link performance is improved by 30%

    2.5 Supports TLS secure transmission links

    2.6 Optimized consumer side threading model

    2.7 Added load balancing policies suitable for multi-cluster Deployment scenarios

    2.8 New APPLICATION Development API (Compatible with applications of earlier versions)

    2.9 Service introspection

    2.10 Asynchronous programming model – consumer/provider asynchronous

  3. Dubbo3.0 planning

    3.1 Asynchronization of Filter chain of Dubbo kernel

    3.2 Reactive support

    3.3 Exploration of cloud native/ServiceMesh

    3.4 Integration and support within Ali

4. The Dubbo ecology

** Below are the current open source ecosystem products supported by Dubbo framework, including alibaba’s own open source products and other open source products from domestic and foreign companies. These include: service governance, registry, link tracing, service monitoring, JVM service diagnostics, log management, service gateways, and more. These ecological products are basically out of the box.

5. Domestic development prospects of Dubbo

With the current popularity of microservice architecture, the selection of infrastructure technology is basically in the following forms:

  • **Spring Cloud Netflix ** Microservices Technology suite
  • **Spring Cloud Alibaba ** Microservices Technology suite
  • SpringBoot, Dubbo, open source service governance framework integration

**Spring Cloud Netflix ** is a complete set of micro service architecture technology stack contributed by Netflix. Currently, many components are not officially supported by Netflix. At the same time, an important problem in the micro service architecture is that distributed transactions fail to provide solutions.

Spring Cloud Alibaba is an open source micro-service solution developed by Alibaba with a strong momentum in the past two years. It also provides relatively perfect ecological component support and provides a solution for distributed transactions (Seata).

The SpringBoot and Dubbo technology system is the intermediate product of the transition to Spring Cloud Alibaba, Spring Cloud Netflix or the next generation microservice architecture. At present, many domestic companies use this architecture to do, and it is necessary for corporate architects to carry out architecture design and framework integration of the whole technology stack, with a high degree of free play.

Compared with the previous architecture schemes, the communication between services in microservice architecture is based on two communication modes (also message-oriented middleware) : HTTP and RPC. In technology selection, we basically adopt RPC mode (efficient, big data transmission, etc.) for internal services, and Dubbo is the leading RPC service governance framework in China.

6. Version description

This series is explained with Dubbo’s latest version 2.7.x(current latest version: 2.7.8).

7. Basic skills

Beginners should have basic Java programming ability, network communication programming ability, common design patterns and some practical project programming ability.

Nodule 8.

In this section, we mainly learned what RPC is, what Dubbo is, the development history of Dubbo and the domestic ecological environment of Dubbo.

The highlights of this lesson are as follows:

  1. Understand the RPC

  2. Know what a Dubbo is

  3. Learn about Dubbo’s history

  4. Understand the domestic development prospect of Dubbo

The author

Personally engaged in the financial industry, I have worked in chongqing’s first-class technical team of Yiji Pay, Sijian Technology and an online car hailing platform, and now I am working in a bank responsible for the construction of unified payment system. I have a strong interest in the financial industry. It also practices big data, data storage, automated integration and deployment, distributed microservices, responsive programming, and artificial intelligence. At the same time, he is also keen on technology sharing, creating public accounts and blog sites to share knowledge system. Concern public number: young IT male get latest technical article push!

Blog: Youngitman.tech

CSDN: blog.csdn.net/liyong10288…

Wechat Official Account:

Technical Exchange Group: