Dubbo (info)

in with 0 comment

Dubbo Tips

Apache Dubbo is an open source, remote procedure call framework based on Java(RPC).

open sourced in 2011, and entered the Apache Incubator in February 2018

Dubbo brings key functionalities such as interface based remote call, fault tolerance and load balancing, and automatic service registration and discovery.

Architecture

image.png (Image taken from https://dubbo.apache.org/)

  1. Container is responsible for launching, loading, and running the service Provider
  2. Provider registers its services to Register during its initialization
  3. Consumer subscribes the services it needs from the Register when it starts
  4. Register returns the Providers list to Consumer, and when a change occurs, the Register push the changed data to Consumer
  5. Based on a soft load balancing algorithm, the Consumer will select one of the Providers and executes the invocation, automatically choose another Provider when a fail occurs.
  6. Both Consumer and Provider will count the number service invocations and time-consuming in memory, and send the statistics to Monitor every minute.

Feature

(above: article taken from infoq)

Q&A

  1. 为什么要独设Monitor, 虽然很多Frame都会这么做.减少Registry资源消耗?
  2. Load Balance是谁的LD? Consumer还是Provider?
  3. container提供Proivder运行环境? container可以分布式扩展吗?
  4. 最后的问题, RPC的应用场景是什么? 为什么要RPC? 用于局域网? 公网? 从功能上看, RPC类似于API接口, 那为什么要细化到方法的程度? 耦合性不是更强?