公司使用dubbo做为rpc框架,有必要简单学习一番(自己搭建),自己做下学习记录.
dubbo认识: dubbo是分布式SOA(面向服务)架构的rpc服务治理框架.可兼容各种rpc,强势的地方主要还是用于服务治理.目前阿里提供维护更新
服务治理:主要包括负载均衡和集群容错机制.
项目搭建部分:
环境:三台虚拟机zookeeper启动 ,idea ,maven ,tomcat
项目说明:官方提供简单的入门教程,官方之所以不用tomcat,我想一方面出于简单,另一方面因为本身rpc是基于netty容器(tcp级别),不需要依赖servlet容器
加上tomcat浪费资源.
整体来说还是比较简单的,这边的话,选用的是zookeeper作为注册中心,
(sh zkCli.sh timeout 5000 -server ip port 可以使用该命令查看节点,注意设置超时时间的大小,否则可能链接不上,默认时间比较小).
这边的话,感觉描叙起来很费劲,直接放链接
provider:http://git.gupaoedu.com/jinjian/dubboProvider
consumer:http://git.gupaoedu.com/jinjian/dubboConsumer
负载均衡:LoadBalance
1.Random(随机指定一台provid);2.RoundRobin(权重轮询);3.LeastActive(最少活跃度,服务性能快的优先);4ConsistentHash (一致hash,参数一致的调用相同的机器);
集群容错策略:
1.Failover Cluster(失败自动切换,配合retries);2,Failfast (快速失败,调一次失败就结束);3Failsafe(失败安全) ,4Failback(失败恢复定时重发) ,5.Forking(并行,有一个成功就返回) 6.Broadcast (逐个调用,有一个报错就返回)
补充:如果要在项目中实现软负载均衡,指定某台机器执行,可以把每个tomcat作为provider,这样的话,调用方作为consumer可以利用dubbo实现!
关于负载和容错详情,参考博客:https://blog.csdn.net/songjinbin/article/details/49455515
关于dubbo的基础知识可以参考: