dubbo privider与consumer同时配置retry以哪个为主

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo privider与consumer同时配置retry以哪个为主相关的知识,希望对你有一定的参考价值。

  DUBBO的介绍部分我这里就不介绍了,大家可参考官方文档。
  DUBBO的注册中心安装
  DUBBO的注册中心支持好几种,公司用到zookeeper注册中心,所以我这边只说明zookeeper注册中心如何安装。
  安装zookeeper注册中心首先得下载zookeeper。大家可到zookeeper的官网http://zookeeper.apache.org/releases.html上去下载。
  我下载了zookeeper-3.4.5.tar.gz版本的包。接下来把zookeeper-3.4.5.tar.gz解压到文件夹D:\\zookeeper-3.4.5\\中,
  然后将zoo_sample.cfg改名为zoo.cfg。然后将配置文件zoo.cfg改成如下:
  [html] view plain copy
  # The number of milliseconds of each tick
  tickTime=2000
  # The number of ticks that the initial
  # synchronization phase can take
  initLimit=10
  # The number of ticks that can pass between
  # sending a request and getting an acknowledgement
  syncLimit=5
  # the directory where the snapshot is stored.
  # do not use /tmp for storage, /tmp here is just
  # example sakes.
  dataDir=D:\\\\zookeeper-3.4.5\\\\data
  dataLogDir=D:\\\\zookeeper-3.4.5\\\\log
  # the port at which the clients will connect
  clientPort=2181
  然后就可以启动了。
  DUBBO的管理平台DUBBO-ADMIN的部署
  dubbo-admin.war可在网上百度去下载,但是我下载了好几个war包,发布上去服务启动都报错,这个时候大概是我们系统的JDK和编译
  dubbo-admin.war的JDK版本不同导致的了。所以我之后直接下载了dubbo-master的源代码,然后自己编译了一个war包,这样就不会存
  在启动报错的问题了。
  以上就是我下载下来的导入eclipse的源码。
  dubbo的所有源码可在https://github.com/alibaba/dubbo上下载。用MAVEN在最外层目录编译即可将所有项目全部编译。
  下载编译的时候会出现问题,首先是找不到opensesame的情况,这个好解决。去这个地址https://github.com/alibaba/opensesame
  将pom文件下载下来,然后用MAVEN命令下载依赖包到本地仓库就好了。然后就可以顺利编译DUBBO MASTER项目了。
  编译好之后在dubbo-admin项目中会出现dubbo-admin.war包
  将dubbo-admin.war导入到TOMCAT中,然后启动TOMCAT,然后输入localhost:8080然后输入账号密码(默认都是root)
  就可以访问到dubbo控制中心了。注意得将WEB-INF中的dubbo.properties中的配置项改成这样
  (配置的地址端口必须和zookeeper的服务的地址端口一致)
  [html] view plain copy
  dubbo.registry.address=zookeeper://127.0.0.1:2181
  DUBBO的管理平台DUBBO
  MONITOR的部署
  dubbo
  monitor部署非常简单,之前把dubbo-master全编译了,所以在编译好的dubbo-monitor-simple项目中就
  能拿到dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gz包
  然后解压到文件夹中,打开配置文件,将配置文件中的端口修改为未占用的端口
  [html] view plain copy
  dubbo.protocol.port=6066
  dubbo.jetty.port=6060
  我随便改成了6066和6060,这个随自己改,只要其它服务没占用就行,然后双击start.bat启动服务,
  浏览器输入localhost:6060就能访问了,访问到的内容如下:
  DUBBO的provider和consumer
  provider和consumer的案例网上应该有很多了,如果在工作中,项目中有DUBBO肯定也会知道provider和consumer如何布置,
  我这里就不多说了。我这边主要是讲我们在项目中不会碰到的一些东西,比如zookeeper,dubbo-admin,dubbo-monitor如何布置,
  因为我们开发者往往接触不到如何布置。
参考技术A dubbo配置优先级:
方法级>接口级>全局级
消费方配置优先于提供方配置
所以,retry如果都配了,以消费方为主。

dubbo配置的覆盖关系

  dubbo推荐在Provider上尽量多配置Consumer端属性:

    • 由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的参数设置;  
    • 在Provider配置后,Consumer不配置则会使用Provider的配置值,即Provider配置可以作为Consumer的缺省值;否则,Consumer会使用Consumer端的全局设置,这对于Provider不可控的,并且往往是不合理的;

 

  配置的覆盖规则:

    1.方法级配置别优于接口级别,即小Scope优先;

    2.Consumer端配置 优于 Provider配置 优于全局配置;

    3.最后是dubbo的配置的缺省值;

 

      技术图片

   参考:http://dubbo.apache.org/zh-cn/docs/user/configuration/xml.html

以上是关于dubbo privider与consumer同时配置retry以哪个为主的主要内容,如果未能解决你的问题,请参考以下文章

dubbo配置的覆盖关系

dubbo的服务consumer与provider使用的api版本不一致,是否有影响

如何查看Zookeeper下Dubbo的Provider与Consumer信息

《一》Dubbo之总体架构剖析

Dubbo——Registry服务注册

从Consumer分析Dubbo调用链