美文网首页
几个你不知道的dubbo注册中心细节

几个你不知道的dubbo注册中心细节

作者: 捉虫大师 | 来源:发表于2021-03-16 12:49 被阅读0次

你会正确配置backup地址吗?

在配置dubbo注册中心时,一般会这样写

dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181

也会简单地写成

dubbo.registry.address=zookeeper://127.0.0.1:2181

当zookeeper地址不止一个,需要配置backup地址时,会这样写

dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181,127.0.0.1:2182

这时候如果你简写成这样

dubbo.registry.address=zookeeper://127.0.0.1:2181,127.0.0.1:2182

那就启动报错了~看下报错日志

java.lang.IllegalStateException: Failed to receive INITIALIZED event from zookeeper, pls. check if url zookeeper://127.0.0.1:2181,127.0.0.1:2182/org.apache.dubbo.metadata.report.MetadataReport?client=&dubbo.config-center.root-path=/ is correct

为什么会这样?

image-20210312201820713.png

从源码上能看出,当address中包含://时就认为address配置的是一个URL,此时如果要配置backup地址必须在URL参数中指定backup参数才行;

dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182

但当address中不包含://时,dubbo认为你配置的第一个地址是主,逗号后的地址都是backup。

多注册中心有什么猫腻?

多注册中心可以这样配置

dubbo.registries.zk1.address=zookeeper://127.0.0.1:2181
dubbo.registries.zk2.address=disf://127.0.0.1:2182

这样配置dubbo的默认行为是双注册都消费

双注册不用说,就是会将服务注册到这两个注册中心上去,应用启动耗时增加

都消费指的是针对每个provider,consumer都会和它建立连接,消费时按注册中心顺序挑选一个可用的invoker进行调用,也就是说将两个注册中心中提供的服务merge起来进行调用。假设这两个注册中心提供了相同的服务,consumer会和每个provider建立2条长链接

设置默认消费注册中心怎么这么难?

接上条,如果消费了两个注册中心,两个注册中心都提供了相同的服务,我想设置个默认消费的注册中心怎么设置呢?一般是这么设置

dubbo.registries.zk1.default=true

但是经过实践你会发现,有可能不生效,追一下源码

image-20210312205116862.png

可以看到当注册中心带了default是会被优先选中的,但为什么有时候这么配置又不行呢?

这是因为dubbo的版本问题,上图是2.7.3版本的代码,到2.7.5以后RegistryAwareClusterInvoker被换成了ZoneAwareClusterInvoker,看下这个类

image-20210312212114827.png

default参数被换成了preferred,所以我们的配置需要改成

dubbo.registries.zookeeper.preferred=true

如果不放心,可以两个配置都加上,以防万一。

相关文章

  • 几个你不知道的dubbo注册中心细节

    你会正确配置backup地址吗? 在配置dubbo注册中心时,一般会这样写 也会简单地写成 当zookeeper地...

  • Dubbo注册中心

    1 Dubbo注册中心概述 Dubbo的注册中心承担着Dubbo服务的注册与发现的功能。 Dubbo支持的注册中心...

  • Dubbo(学习中)

    Dubbo提供的注册中心 Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple...

  • dubbo面试题大全

    dubbo面试题大全 1、Dubbo与DubboX区别 2、Dubbo中zookeeper做注册中心,如果注册中心...

  • 2、spring cloud eureka

    1、搭建服务注册中心 使用过阿里的dubbo应该知道dubbo服务需要一个注册中心,将服务的信息注册到注册中心上,...

  • Dubbo 注册中心的工作流程是啥?

    Dubbo 注册中心的工作流程是啥? 什么是注册中心? 在Dubbo 核心系统中,注册中心是其核心组件。 Dubb...

  • Dubbo学习(二)注册中心及管理平台

    注册中心的选择 dubbo支持多种类型的注册中心: Multicast注册中心 Zookeeper注册中心 Red...

  • Dubbo本地搭建及样例

    DUBBO的介绍部分我这里就不介绍了,大家可参考官方文档。 DUBBO的注册中心安装 DUBBO的注册中心支持好几...

  • Dubbo注册中心

    Dubbo注册中心 前言 本篇主要介绍一下Dubbo的注册中心的总体工作流程,以及不同类型注册中心的数据结构和实现...

  • 3.Dubbo注册中心架构与源码

    3.1 注册中心概述 在Dubbo微服务体系中,注册中心是其核心组件之一。Dubbo通过注册中心实现了分布式环境中...

网友评论

      本文标题:几个你不知道的dubbo注册中心细节

      本文链接:https://www.haomeiwen.com/subject/esfdcltx.html