Dubbo 源码剖析与实战
何辉
平安壹钱包架构师
4711 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
开篇词 (1讲)
Dubbo 源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

25|注册扩展:如何统一添加注册信息?

你好,我是何辉。今天我们继续学习 Dubbo 拓展的第三篇,注册扩展。
和前端进行联调测试,想必你再熟悉不过了,在这个阶段,前端为了能调用到指定的网关服务,一般会在请求 URL 中,把域名替换为具体的 IP,然后请求网关,进行功能联调测试。
但是大多数功能的核心逻辑,不在网关,而是在后端应用,那就意味着,网关接收到前端请求后,还得再调用其他后端应用,但是,后端应用系统会部署在测试环境的多个 IP 节点上。那,网关怎么知道要调用后端应用哪个 IP 节点呢?
按“温故知新”学过的负载均衡策略,你可能会说,网关根据调用接口,负载均衡到任意一个 IP 节点就行了。
可是,你忽略了一个重要因素,在需求并行迭代开发的节奏下,不同的 IP 节点,可能部署的是你这个后端应用的不同版本,如果让网关负载均衡,我们怎么能保证每次前端发起的请求,都会命中需要测试的那个后端应用 IP 节点呢?
就像图中,有一个网关,两个后端应用 app1 和 app2,app1 的两个迭代版本分别部署在 ip1 和 ip2 节点上。现在,前端通过指定 IP 请求到了网关,网关继续调用 app1,该调用 app1 的 ip1 节点,还是 ip2 节点呢?网关是负载均衡调用,还是指定 app1 的 IP 调用呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了Dubbo拓展中的注册扩展问题,重点讨论了如何解决在前端联调测试中,网关需要调用后端应用的不同IP节点的情况。作者提出了手动配置IP的方法,但也指出了其局限性和不足之处。针对小型项目和复杂系统,作者分别提出了通过指定url属性和配置化的形式来解决问题。最后,作者提出了在System Properties和Externalized Configuration两个层级进行动态化配置的方法,以解决硬编码形式的问题。通过具体案例和技术细节,本文深入浅出地介绍了注册扩展的相关问题和解决方法,对于需要了解Dubbo拓展的读者具有一定的参考价值。文章通过实例和技术细节,详细介绍了注册扩展的相关问题和解决方法,对于需要了解Dubbo拓展的读者具有一定的参考价值。文章还提出了在消费方自定义一个集群扩展器的思考题,为读者提供了进一步思考和讨论的空间。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Dubbo 源码剖析与实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • Nights
    点赞,公司的软路由估计就是这种实现,到公司确认一下。之前只知道使用,这会知道原理了

    作者回复: 你好,Nights:希望对你有帮助~

    2023-02-14归属地:北京
    2
    1
  • Geek_d45d62
    我想到的第一个方案是group version

    作者回复: 你好,Geek_d45d62:你想到的这个 group version 后,若能进一步的封装,然后极其简单的推广下去,那也是 ok 的。

    2023-08-10归属地:北京
  • 星期八
    服务提供方通过打标签dubbo.tag,消费者段通过invocation.setAttachment(CommonConstants.TAG_KEY, tag )传递标签的形式,是不是可以完成?

    作者回复: 你好,星期八:这个也是可以的。不过在消费方指定 attachment 时,得关注一个点,消费方一个方法从上而下调用多个提供方时,别让设置的标签没了就行了。 而且这种方式的话,dubbo-admin 也可以修改,在测试环境被修改的可能性比较大,有点不太可控。

    2023-02-13归属地:浙江
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部