Contents
  1. 1. 参考博客
  2. 2. 学习规划
  3. 3. 源码github
  4. 4. 功能描述
  5. 5. 其它注意事项
  6. 6. 角色扮演
  7. 7. 白名单功能
    1. 7.1. dubbo的容错性
  8. 8. dubbo传输协议
  9. 9. 操作安装和使用
    1. 9.1. windows下的安装
    2. 9.2. 控制台使用
    3. 9.3. dubbo项目启动顺序

参考博客

http://blog.csdn.net/ichsonx/article/details/39008519

非常详细的一篇关于Dubbo整合zookeeper的blog,操作篇
http://blog.csdn.net/accp_fangjian/article/details/51658292

白名单配置篇
https://blog.csdn.net/l1028386804/article/details/74511445

学习规划

  • 弄清楚dubbo的原理是什么,相对于接口调用、消息队列有什么区别
  • 如何实现一致性 和分布式事务问题

源码github

https://github.com/huangzhenshi/dubbo_zk_deom

功能描述

  • 实现rpc调用,像调用本地方法一样调用远程server上的方法

  • 实现负载均衡,dubbo有负载均衡策略可以实现策略消费request。(dubbo的web管理界面提供配置:随机+权重配置、轮询、最少并发)

  • 实现高可用,zk的注册发现功能,一个provider挂了的话,会自动被剔除掉,保证服务器继续对外提供服务,如果重新provider重新恢复的话,又恢复到服务提供队列当中了

  • 实现服务提供者和消费者之间解耦,也实现服务提供者和提供者之间的解耦,利用zk的注册中心的功能,实现灵活的扩展和缩容。

  • 支持权限配置功能:比如白名单功能

  • 支持配置集群容错策略 failover failfast forking等

其它注意事项

  • dubbo的monitor功能是可选的,如果dubbo不启动,只有zk启动着,就可以实现rpc的功能。

角色扮演

  1. zookeeper:注册服务发现,当有新的provider注册进来的时候,会被zk发现,并通知的到dubbo,然后consumer调用的时候,会按照负载均衡策略把request分配到新的provider上面。

  2. 如果consumer已经获取到了provider的话,并且已经调用过了rpc方法,这个时候zk如果挂掉,还可以继续访问到provider,只是有新的provider不会被发现,或者新的consumer无法获取到所有的provider。

  3. provider 只配置 zk,consumer只配置zk,这样服务提供者和 服务消费者之间解耦。

  4. consumer发出request的时候,通过dubbo进行负载分配,分配到不同的provider。

白名单功能

  1. maven项目需要在resources 下创建 META-INF\dubbocom.alibaba.dubbo.rpc.Filter文件
  2. 配置

    dubboContextFilter=com.mor.server.dubbo.service.AuthorityFilter
  3. 重写Filter方法

dubbo的容错性

https://www.cnblogs.com/heben/p/7887664.html

通过在consumer里面配置策略,来实现不同的容错措施

  1. failover 失败自动切换 (缺省值)
    这种方式通常用于读操作,而不是写操作. 因为用在写操作,可能为导致重复写

    <dubbo:reference id="demoService" interface="com.mor.server.dubbo.service.DemoServer" cluster="failover" retries="2"/>
  2. Forking 并行调用多个服务器,只要一个成功即返回。
    通常用于实时性要求较高的读操作,但需要浪费更多服务资源

  3. failfast 快速失效
    只发起一次调用,失败立即报错。通常用于非幂等性写操作,比如说新增记录

dubbo传输协议

<dubbo:protocol name="dubbo" port="20880" />

默认是dubbo 协议,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 ,socket NIO TCP 长连接,来减少服务器端的线程开销

操作安装和使用

windows下的安装

安装参考
https://www.cnblogs.com/sxjun/p/6963844.html

下载war包 dubbo-admin
http://download.csdn.net/download/u014094611/9940278?web=web

把server项目生成jar包的方法
http://blog.csdn.net/xiao__gui/article/details/47341385

控制台使用

  • 配置负载均衡机制
    在dubbo管理页面http://localhost:8083/ 中选择负载均衡,添加服务接口,然后配置了。
    如果在随机的情况下,也可以通过倍权 和 半权来大约修改权重值。

dubbo项目启动顺序

  • 启动zk
  • 启动dubbo的tomcat –>http://localhost:8083/ 进入查看监控中心
  • 启动provider 和 consumer

启动provider后,可以在dubbo的管理界面看到 提供者的IP和暴露的端口

Contents
  1. 1. 参考博客
  2. 2. 学习规划
  3. 3. 源码github
  4. 4. 功能描述
  5. 5. 其它注意事项
  6. 6. 角色扮演
  7. 7. 白名单功能
    1. 7.1. dubbo的容错性
  8. 8. dubbo传输协议
  9. 9. 操作安装和使用
    1. 9.1. windows下的安装
    2. 9.2. 控制台使用
    3. 9.3. dubbo项目启动顺序