dubbo学习

参考dubbo官方文档
[http://dubbo.apache.org/books/dubbo-user-book/configuration[官方文档]

1.本地dubbo环境的搭建

环境

    java1.8
    maven
    idea
    zookeeper
    dubbo

dubbo的搭建不需要依赖spring框架,
maven的依赖中加入 dubbo,zkClient, spring-context(主要用来加载配置文件)即可。
由于公司电脑是window环境,个人电脑是mac。同样的项目在mac环境中跑不起来。
报如下的错:

Caused by: java.lang.ClassNotFoundException: org.apache.curator.RetryPolicy

dubbo的默认zookeeper的实现是用zkclient。这个错误好像是默认成curator
在 registry中指定 客户端实现,问题解决

<dubbo:registry address="zookeeper://127.0.0.1:2181" client="zkclient"/>

2.覆盖关系

  • 方法级优先,接口级次之,全局配置再次之。
  • 如果级别一样,则消费方优先,提供方次之。

如:

    <dubbo:provider timeout="10000"/>
    <dubbo:application name="demo-provider"/>
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
    <dubbo:protocol name="dubbo" port="20880"/>
    <dubbo:service interface="com.tiany.DemoService" ref="demoService" timeout="5000">
       <dubbo:method name="sayHello" timeout="1000"/>
    </dubbo:service>
    <bean id="demoService" class="demo.DemoServiceImpl"/>

现在像timeout这个属性,有全局的dubbo:provider, 有接口级别 dubbo:interface,有方法级别 dubbo:method
测试1:在DemoService的sayHello方法中Thread.sleep(1200);超过method的超时时间,小于接口的超市时间
结果:消费端会报超时异常
测试2:provider的sayHello方法中Thread.sleep(900), 客户端配置方法级别的超时时间是800,如下:

    <dubbo:reference id="demoService" interface="com.tiany.DemoService" >
        <dubbo:method name="sayHello" timeout="800"/>
    </dubbo:reference>

结果:消费端会报超时异常

配置的覆盖策略:
java -D > xml > properties

3.服务的注册和发现

服务注册的几种方式:

  • multicast 注册中心
  • zookeeper注册中心
  • redis注册中心
  • simple注册中心

4.集群容错

转自dubbo官网
几种类型:

  • Failover
    失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries=”2” 来设置重试次数(不含第一次)
  • Failfast
    快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录

如果我failover设置retries = 0 跟 failfast 有什么区别?

  • Failsafe
    失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。
  • Failback
    失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。
  • Forking
    并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks=”2” 来设置最大并行数。
  • Broadcast
    广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值