Dubbo, dubbo Official Website
Dubbo:In short, Dubbo is a service governance framework that centrally manages RPC calls and provides multiple access policies and loads to ensure mutual calls between application systems.
RPC Remote Procedure Call Protocol:It is a protocol that requests services from remote computer programs over a network without understanding the underlying network technology. The RPC protocol assumes that some transmission protocols, such as TCP or UDP, carry information data between communication programs. In the OSI network communication model, RPC spans the transport layer and application layer. RPC makes it easier to develop applications, including distributed network applications. RPC adopts the Client/Server mode. A request is a client, and a service provider is a server. First, the client calls the process to send a call information with process parameters to the service process, and then waits for the response information. On the server side, the process remains asleep until the call information reaches. When a call Information arrives, the server obtains the process parameters, calculates the results, sends the reply information, and waits for the next call Information. Finally, the client calls the process to receive the reply information and obtain the process results, then, call and execute to continue.
Dubbo Architecture
- Provider:Expose the service provider.
- Consumer:The consumer that calls the remote service.
- Registry:Service Registration and discovery registration center.
- Monitor:The monitoring center that counts the call times and call times of the service.
- Container:Service running container.
Note: Registry is very lightweight. In fact, Dubbo only shares service-related information in the Registration Center. Dubbo is mainly Provider and Consumer, both of which are within the application scope. Monitor is also a very lightweight module. Monitoring Services must be registered in the Registry before they can be used normally. Monitoring downtime does not affect services.
Dubbo itself provides support for multiple protocols, and the hession protocol is also one of them.
Dubbo: // dubbo default protocol uses a single persistent connection and NIO asynchronous communication (non-group scattering), which is suitable for service calls with large volumes of small data and concurrent requests, and when the number of machines of the service consumer exceeds the number of machines of the Service initiator.
- Dubbo's default protocol is not suitable for services that transmit large amounts of data, such as file transfer and video transfer, unless the request volume is low.
- Rmi ://
The RMI protocol is implemented using JDK standard java. rmi. *, and uses blocking short connections and JDK standard serialization methods.
- Hessian ://
Hessian protocol is used to integrate Hessian services. Hessian uses Http Communication at the underlying layer and Servlet exposure services. Dubbo uses Jetty embedded by default as the server.
- Http ://
Http-based short connection protocol is basically not used.
- Webservice ://
Webservice
- Redis ://
Redis is an efficient KV storage server.
- Memcached ://
Memcached is an efficient KV cache server.
- Thrift ://
Thrift is an RPC framework donated by Facebook to Apache.
Registration Center Introduction
Dubbo also supports multiple types of registration centers, including:
- Multicast
Registration Center Based on multicast implementation, mutual discovery
- Zookeeper
Zookeeper is a sub-project of Apacahe Hadoop. It is a tree-like directory service that supports change push. It is suitable for serving as the Registration Center of Dubbo services. It is highly industrial and can be used in production environments, and recommended.
- Redis
Redis is an efficient KV storage server.
- Simple
The Registration Center itself is a common Dubbo service, which can reduce third-party dependencies and ensure the overall communication mode is consistent.
<A href = "http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm" class = "external-link" rel = "nofollow"> User + Guide-zh </a>