Dubbo优点

什么是dubbo?
SOA服务治理方案,dubbo就是个服务治理的框架,适用于分布式需求。
核心部分包括:
1.远程通讯:提供多种基于长连接的NIO框架进行封装,包括多种线程模型,序列化,以及请求相应模式的交换
2.集群容错:提供基于接口方法的透明远程过程调用,包括多协议的支持,以及软负载均衡,失败容错,
地址路由,动态配置等集群支持
3.自动发现:基于注册中心目录服务,使服务消费方能够动态的查找服务的提供方,使地址透明,使服务提供方
可以平滑增加或者减少机器。
Dubbo能做什么?
1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,配置简单,无API侵入
2.软负载均衡以及容错机制,可在内网替代F5等硬件负载均衡器,降低成本
3.服务的自动注册与发现,不需要写死服务提供方的地址,注册中心基于接口名查询服务提供着的IP地址,
并且可以平滑的添加或者删除服务提供者。
4.Dubbo采用Spring配置的方式,透明化接入应用,只需要Spring加载Dubbo的配置即可
Dubbo基于Spring的Schema扩展进行加载。
Dubbo启动后服务的管理:Dubbo进行服务管理控制时使用dubbo-admin(dubbo管控台)对服务进行控制,设置负载均衡策略。当provider禁用服务提供时,会抛出illegelStateExeception
1.启动时检查:
Dubbo启动时检查的缺省值为check="false",如果Spring容器时懒加载的,或者通过API延迟引用服务,
请关闭check,否则服务是不可用的,会抛出异常,拿到一个null的引用,如果check为false,总会返回应用
dubbo-service暴露服务,写操作时可以设置retries=0,避免重复调用SOA服务
dubbo-reference调用服务,设置check的参数
2.集群容错模式:Dubbo自带的集群容错的机制
Failover Cluster:
失败时自动切换,当出现失败时,重试其他的服务器(缺省操作)
通常用于读的操作,但是重试会带来更长的延迟
可以用过retries=2来设置重试的次数(不含第一次),但是可能会由于网络原因产生重复性写入的问题
所以设置重试的时候,应该在代码中设置幂等性判断,用于判断当前写服务是否已经被调用了。
一般来说对于重试次数设置为0即可。
Failfast Cluster:
快速失败,只会发起一次调用(retries为0),失败时立即报错
通常用于非幂等行的写操作,比如新增记录
Forking Cluster:
并行的调用多个服务器,只要有一个成功就可以直接返回
用于实时性要求比较高的读操作,需要浪费更多的资源
可通过forks=2来设置最大的并行数
例如:<dubbo:service cluster="failover">Dubbo默认的集群容错机制,失败切换服务器重试,
同一服务的提供在不同的服务器上。
3.负载均衡:默认的负载均衡的策略的random,动态在Dubbo-admin中进行服务名+方法名+负载策略的设置
Random随机,权重默认为1,通过权重自己去定义访问哪台机器。
RoundRobin轮询,存在慢的提供者累积请求的问题,大量请求堆积在一台服务器上。
LeastActive最少并发
一致性哈希策略














  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值