Dubbo 架构(角色和特性)

Dubbo 架构(角色和特性)

参考

http://dubbo.apache.org/zh-cn/docs/user/preface/architecture.html

角色

Dubbo有5个参与者:其中Monitor、Registry不是必须的

Provider 暴露服务的服务提供方

Consumer 调用远程服务的服务消费方(负载均衡)

Registry 服务注册与发现的注册中心(监控、心跳、踢出、重入)

Monitor 服务消费者和提供者在内存中累计调用次数和调用时间,主动定时每分钟发送一次统计数据到监控中心。

Container 服务运行容器:远程调用、序列化

Provider

Dubbo不像RocketMQ,并没有堆积的功能,但是Dubbo的Provider有一个 fixed Cache的线程池来缓存请求

注册中心

Dubbo注册中心仅仅只负责Provider的注册、Consumer的订阅、以及心跳和通知。这和Rocketmq的nameServer不同,nameServer除了扮演注册中心,还扮演路由器的功能。

注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外

注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表

注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

注册中心实现原理

http://dubbo.apache.org/zh-cn/docs/user/references/registry/zookeeper.html

http://dubbo.apache.org/zh-cn/docs/user/references/registry/redis.html

常见的zookeeper实现、Redis实现,实现方式不一样

Zookeeper实现注册中心

image

所有的Consumer监测 /dubbo/$service/providers 节点,获取到所有的Providers的信息,并且Watch 该结点的变动,如果新加入Provider或者某个Provider宕机,会触发事件。

所有的Consumer自己也要注册在 /dubbo/service,获得提供者和消费者 URL 地址。

Redis实现注册中心

image

使用 Redis 的 Publish/Subscribe 事件通知数据变更:

通过事件的值区分事件类型:register, unregister, subscribe, unsubscribe

普通消费者直接订阅指定服务提供者的 Key,只会收到指定服务的 register, unregister 事件

监控中心通过 psubscribe 功能订阅 /dubbo/*,会收到所有服务的所有变更事件

Dubbo不依赖注册中心的配置

Dubbo绕开注册中心,直接使用Dubbo

Provider配置

Consumer配置,去除掉zk,但是要配置url

相关推荐

大话新区200预约划算吗?
365bet的网站是多少

大话新区200预约划算吗?

📅 07-08 👍 999
租号玩租号开挂封谁赔啊,租号玩开挂封号了协商一般怎么解决
dnf升级一件b套要多久
365速发app下载平台注册

dnf升级一件b套要多久

📅 08-16 👍 178