Dubbo Introduction
Apache Dubbo (incubating) |ˈdʌbəʊ| is a high-performance, java based RPC framework open-sourced by Alibaba.
RPC(Remote Procedure Call Protocol):is when a computer program causes a
procedure (subroutine) to execute in a different address space (commonly
on another computer on a shared network), which is coded as if it were a
normal (local) procedure call, without the programmer explicitly coding
the details for the remote interaction.
Dubbo offers three key functionalities:
-
interface based remote call
-
fault tolerance & load balancing
-
automatic service registration & discovery
Provider: | The service provider that exposed the service. |
Consumer: | Invokes the services, as consumer of the remote service. |
Registry: | Center of service registration and discovery. |
Monitor: | A monitoring center that counts the number of calls to the service and the call time. |
Additional content:
In order to illustrate the necessity of using the RPC framework, let's
look at the evolution of web application architectures.
All in One
- When the website traffic is very small, only one application is needed and all functions are deployed together to reduce deployment nodes and costs.
- At this point, the Data Access Framework (ORM) that is used to simplify the addition, deletion, and modification workload is the key.
Vertical Application
- When the website traffic grow, adding appliction copy machine is not effective. Break appliction to multipart, to improve efficiency. There is no dependency relationship among multiple parts, and the original application is functionally separated.
- At this point, the Web Framework (MVC) used to accelerate front-end page development is the key.
Distributed Service
- With more and more vertical applications, interactions between applications are unavoidable. Extracting core service as an independent service, a stable service center is gradually formed so that front-end applications can more quickly respond to changing market demands.
- At this point, The Distributed Services Framework (RPC) for improving service reuse and integration is the key.
Elastic Computing
- When more and more services are available, the assessment of capacity, and the waste of small service resources are becoming more and more obvious. At this time, a dispatch center needs to increase the capacity of clusters in real time based on access pressure to improve cluster utilization.
- At this point, Resource Scheduling and Governance Center (SOA) for improving machine utilization is the key.