-
Notifications
You must be signed in to change notification settings - Fork 26.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dubbo 2.7.14 指定zone的功能不起作用 #9673
Comments
能否按照这个issue给的方式看一下执行情况 |
用你的demo debug复现看了下,导致你这个问题的原因是没有配置cluster="failsafe" 。你需要在配置文件中加上cluster="failsafe" 这个配置,否则会因为isAvailable=false,导致你说的这个问题。修复后的demo链接:【https://github.com/acmday/dubbo_zone_demo 】 |
#8838是在provider重启后才会有问题并且已经修复,你这个issue和#8838没关系。如果没在配置文件中配置cluster="failsafe",就走不到同区域调用的逻辑(走不到截图中第85行的逻辑),截图中的debug结果已经能给出答案了。你可以clone 【修复后的dubbo_zone_demo 】验证下。@elvislou |
Check this issue #7822 |
@acmday |
可以看下上面截图中第84行代码。 |
failsafe配置在多注册中心中,没有生效,这个有什么办法吗?必须每个接口都要配置一下? |
使用Dubbo的多注册中心和Zone 功能,想通过zone机制跨机房部署dubbo服务。
假设有机房A和机房B,分别部署了nacos注册中心,我们叫nacosA和nacosB
现在在机房A部署一个dubbo服务,注册到nacosA
在机房B部署同一个dubbo服务,注册到nacosB
现在想要做到的效果是:部署在机房A的消费者,需要优先调用机房A的dubbo服务,只有当机房A没有服务的时候,
再调用机房B的服务
根据网上资料和dubbo源码,我们是通过调用前设置
RpcContext.getContext().setAttachment("registry_zone", "A");
来实现的(provider配置文件声明registry的时候,nacosA指定了zone参数为“A”,nacosB指定了zone参数为“B”)。
另外consumer的配置文件中同时声明了两个注册中心nacosA和nacosB
但结果是,不起作用,有时候会调用机房A的服务,有时候会调用到机房B的服务,
dubbo版本是2.7.14
demo见附件
dubbo_zone_demo.zip
。
The text was updated successfully, but these errors were encountered: