dubbo高可用以及原理

高可用

1.zooKeeper宕机与dubbo直连

zooKeeper相当于记录提供者地址,而dubbo连接过一次后生成本地缓冲

2.负载均衡(修改配置文件)

a.随机权重(默认)
b.基于权重轮训请求
c.最少活跃数(来访问请求时间段的服务器)
d.一致性hash(按照hash算法分布)

3.服务降级(在消费者层面)

当服务器压力剧增,根据业务服务,一些页面不处理,从而释放服务器资源。

a.强制返回null,不发起远程调用
b.超时返回null,网络超时,不可达

4.集群容错

当一个服务调用另一个服务失败后,做一些策略操作。

原理

1.BIO

非阻塞IO

2.NIO

selector选择器监听多个channel通道,某一个通道准备好就可以开线程执行,多路复用模型。

3.Netty基于多路复用–RPC框架原理

选择器生成任务队列,任务准备好就启动

4.dubbo原理

a.框架设计

b.启动解析、加载配置信息

--调用流程
1.服务容器负责启动,加载,运行服务提供者。
2.服务提供者在启动时,向注册中心注册自己提供的服务。
3.服务消费者在启动时,向注册中心订阅自己所需的服务。
4.注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
6.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
--标签解析
1.容器启动,标签解析器(RootBeanDefintion)解析标签保存到指定的xxxConfig.class中
service--ServiceBean.class,reference---ReferenceBean.class
--服务暴露流程
afterPropertiesSet():
	getMonitor()==null  /Protocol
		setMonitor(monitorConfig)
onApplicationEvent():事件回调
	export() 服务暴露
		doExportUrls()
			loadRegistries(true)加载注册中心
			doExportUrlsForProtocal()暴露dubbo端口
				openServer():开启服务器
					ProviderConsumerRegTable:set储存url和对应服务

c.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值