dubbo原理与配置:
0.容器启动加载运行服务提供者
1.服务提供者向注册中心注册服务
2.消费者启动并向注册中心订阅服务
3.注册中心notify通知消费者所订阅服务的地址列表,如果有变动,注册中心会基于长连接向消费者推送变更数据
4.消费者从远程接口列表中调用远程接口,dubbo会根据负载均衡算法选择一台进行调用,如果失败选择另一台
5.消费者和服务者在内存中累积调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
配置:
1.启动时检查:
check=false关闭启动时检查,发布的时解耦 check=true 启动检查,尽快暴露问题
2.集群容错:
cluster=failover 默认值 失败自动切换到其他服务器重试,会造成响应延迟时间更长 可以设置重试次数retries=2
cluster=failfast 快速失败,一次失败立即报错
cluster=failsafe 失败安全,出现异常忽略
cluster=failback 失败自动恢复,后台记录失败记录,定时重发 用于消息
cluster=forKing 并行调用多台服务器、一个成功即返回 资源浪费 设置并行数 forks=2
cluster=broadcast 广播所有提供者,逐个调用 任何一个报错都报错
3.负载均衡:
loadbalance=random 默认值 随机 按权重随机 调用量越大越均匀
loadbalance=roundrobin 轮询 存在慢的提供者累积请求的问题,慢的机器会卡在那 请求越积越多
loadbalance=leastactive 最少活跃调用数 慢的提供者收到更少的请求
loadbalance=consistenthash 一致性哈希 相同请求参数的请求会发到同一台提供者机器上,当其中一台挂掉时 基于虚拟节点,请求平摊到其他提供者,不会引起剧烈变动
0.容器启动加载运行服务提供者
1.服务提供者向注册中心注册服务
2.消费者启动并向注册中心订阅服务
3.注册中心notify通知消费者所订阅服务的地址列表,如果有变动,注册中心会基于长连接向消费者推送变更数据
4.消费者从远程接口列表中调用远程接口,dubbo会根据负载均衡算法选择一台进行调用,如果失败选择另一台
5.消费者和服务者在内存中累积调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
配置:
1.启动时检查:
check=false关闭启动时检查,发布的时解耦 check=true 启动检查,尽快暴露问题
2.集群容错:
cluster=failover 默认值 失败自动切换到其他服务器重试,会造成响应延迟时间更长 可以设置重试次数retries=2
cluster=failfast 快速失败,一次失败立即报错
cluster=failsafe 失败安全,出现异常忽略
cluster=failback 失败自动恢复,后台记录失败记录,定时重发 用于消息
cluster=forKing 并行调用多台服务器、一个成功即返回 资源浪费 设置并行数 forks=2
cluster=broadcast 广播所有提供者,逐个调用 任何一个报错都报错
3.负载均衡:
loadbalance=random 默认值 随机 按权重随机 调用量越大越均匀
loadbalance=roundrobin 轮询 存在慢的提供者累积请求的问题,慢的机器会卡在那 请求越积越多
loadbalance=leastactive 最少活跃调用数 慢的提供者收到更少的请求
loadbalance=consistenthash 一致性哈希 相同请求参数的请求会发到同一台提供者机器上,当其中一台挂掉时 基于虚拟节点,请求平摊到其他提供者,不会引起剧烈变动