Dubbo工作流程、特点、负载均衡及容错机制总结

Dubbo框架图

在这里插入图片描述

工作流程

1.启动服务所在容器,异步将服务列表注册到注册中心
2.消费者启动,从注册中心订阅所需的服务列表,当服务列表有变化时,注册中心会将服务列表推送到消费者
3.消费者可以通过服务列表选择一个服务者进行同步调用
4.消费者与服务者会统计服务调用时间与调用次数,每分钟向监控中心发送一次数据

Dubbo具有如下特点

1.连通性
消费者通过服务列表远程调用服务,调用过程不必经过注册中心,注册中心压力较小
当注册中心宕机时,消费者仍可通过本地缓存调用服务
注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心立即将事件通知到消费者
2.健壮性
负载均衡
容错机制
服务提供者全部宕掉后,服务消费者将无法使用,并无限次重连等待服务提供者恢复
3.伸缩性
注册中心对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心
服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者

负载均衡方式 loadbalance

1.随机访问:默认的负载均衡机制,对集群中服务节点进行随机访问
2.轮询访问:按照顺序轮询访问,可能带来访问积压的情景
3.一致性hash:相同参数访问同一个服务节点
4.最少活跃调用数,响应慢的服务节点最少访问:(调用时计数,调用成功返回时计数减一,下一个服务调用时选择计数少的,因为计数少说明返回多,响应快)

容错机制 cluster

1.failover:发生错误时切换重试,默认两次 默认的容错机制 适合读的场景
2.failfast:发生错误时报异常,适用于非幂等的写请求
3.failsafe:发生错误时忽略,适用于记录审计日志等操作
4.failback:发生错误时记录异常,并相隔一定时间再次重试,适用于消息通知
5.forking:并行调用多个服务器(可设置,默认2),一个响应成功即返回,适用于要求实时性比较高的场景,缺点是会带来额外开销
6.broadcast:访问所有节点,如果有失败则报错,用于通知服务方更新缓存或日志等本地资源

发布了27 篇原创文章 · 获赞 27 · 访问量 4268

猜你喜欢

转载自blog.csdn.net/qq_41788977/article/details/103778065