首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Dubbo配置问题-1

Dubbo配置问题-1

作者头像
名字是乱打的
发布2021-12-22 16:26:56
发布2021-12-22 16:26:56
3420
举报
文章被收录于专栏:软件工程软件工程

目录

1.Dubbo可进行容器配置 2.Dubbo的多协议支持 3.Dubbo的多注册中心支持 4.Dubbo的循环依赖问题 5.关于dubbo的负载均衡

1.Dubbo可进行容器配置
dubbo支持的容器
  • Spring container
  • Jetty Container
  • Log4j Container 之前我们用基于Bootsrap利用ClassPathXmlApplicationContext实现provider-dubbo的启动,快速启动Dubbo现在我们测试一下用Dubbo提供的Main.main方法启动

对于用spring容器启动,由于其原码的规定我们需要把相关xml配置文件放在资源文件resources的META-INF.spring下。

源码规定

dubbo配置容器启动,测试结果

2.Dubbo的多协议支持
dubbo支持的协议

RMI/hessian/webservice/http/thirft/Dubbo(默认)

如图,我们可以去除单独的协议配置,在服务端每个service上进行配置,当然我们在客户端xml dubbo:reference也要进行相应的指定

这个反应到客户端其实就是一个协议头的关系而已,比如由原来的dubbo://ip:port转为hessian://ip:port,但是通过这个我们可以进行其他比较灵活的配置,比如搞两个接口做俩协议在做服务迁移时候很方便。

3.Dubbo的多注册中心支持

如果说我们像上面一样配置了多个注册中心,那么我们在进行服务发布时候也需要指定注册中心。

4.Dubbo的循环依赖问题

有时候我们A依赖了B模块提供的信息,B模块依赖的A模块提供的信息,那么总有一个要先于另一个模块启动啊,但是启动时候发现另一个模块没有就会报错停止。为了防止这种情况,我们可以在调用方的reference里设置启动检查provider里是否有该提供者为false,就可以安全启动了

5.关于dubbo的负载均衡

负载均衡实际上是多个相同的服务放在多个服务器上,我们客户端调用会得到相同的结果,但是这里我们为了区别对统一接口做了两个不同实现类,由于机器不够就放在一台机器上了,但是用不同端口提供服务。客户端配置方面我们不需要做修改。

结构

对于同样的接口的调用,我们循环测试一下会发现两个接口实现类是随即被调用的。

以上结果的原因是Dubbo的负载均衡算法默认是随机算法。查看dubbo源码中集群模块有发现负载均衡算法默认指定了随机算法,且可设置权重。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 1.Dubbo可进行容器配置
    • 2.Dubbo的多协议支持
    • 3.Dubbo的多注册中心支持
    • 4.Dubbo的循环依赖问题
    • 5.关于dubbo的负载均衡
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档