(原)3.3 Zookeeper应用 - 负载均衡
本文为原创文章,转载请注明出处,谢谢
负载均衡
1、原理
- 服务端启动创建临时节点(下图中servers下节点),临时节点数据包含负载信息
- 客户端启动获取服务器列表,并根据负载去连接一个负载较轻的服务器
- 服务端每次接收到客户端的连接,添加自己的负载,客户端断开与自己的连接则减少自己的负载
2、架构图

- Servers:服务器列表父节点
- work Server n :服务器节点
- Client n:客户端节点
3、客户端流程图

4、服务端流程图

5、客户端核心类

- clientRunner:客户端调用入口
- Client:客户端执行接口
- ClientImpl:客户端执行实现
- ClientHandler:连接服务器进行调用处理
- BalanceProvider:负载均衡计算接口
- AabstractBalanceProvider:负载均衡计算抽象类
- DefaultBalanceProvider:默认负载均衡算法实现
- ServerData:服务端数据信息
6、服务端核心类

- ServerRunner:服务端调用入口
- Server:服务端执行接口
- ServerImpl:服务端执行实现
- ServerHandler:服务端负载处理类
- BalanceUpdateProvider:服务端负载更新接口
- DefaultBalanceUpdateProvider:默认服务端更新实现
- RegistProvider:注册服务端节点接口
- DefaultRegistProvider:默认注册服务端节点实现
- ZookeeperRegistContext:zookeeper节点注册实现类
(原)3.3 Zookeeper应用 - 负载均衡的更多相关文章
- Zookeeper实现负载均衡原理
先玩个正常的,好玩的socket编程: 服务端: 首先公共的这个Handler: package com.toov5.zkDubbo; import java.io.BufferedReader; i ...
- 使用Zookeeper实现负载均衡原理
思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 创建项目工程 M ...
- ActiveMQ集群简单测试+eclipse Zookeeper 插件 + 负载均衡
ActiveMQ集群搭建好之后,接下来就该测试一下了. 一.先安装Zookeeper 的eclipse插件吧. 1. 打开 eclipse, Help -> Install New Softwa ...
- Zookeeper实现负载均衡
原理解析 架构图 每台WorkServer启动的时候都会到Server创建临时节点. 每台ClientServer启动的时候,都会到S ...
- 【Zookeeper】实现负载均衡原理
一.思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 服务端启动的 ...
- ribbon负载均衡循环策略源码
(原) 在用ribbon负载均衡取eureka注册中心中的地址时,默认采用循环策略,例如商品服务有3个,分别为URL1,URL2,URL3,那么在客户端第一次取时,会取到URL1,第二次取时取到URL ...
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- zookeeper在集群负载均衡中的应用
zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...
- 使用ZooKeeper实现软负载均衡(原理)
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供的功能包括配置维护.名字服务.分布式同步.组服务等. ZooKeeper会维护一个树形的数据结构,类似于Windows资源管理器 ...
随机推荐
- 冒烟测试 smoking test
冒烟测试的概念: 版权声明:本文为博主原创文章,未经博主允许不得转载. 冒烟测试既是对软件基本的功能进行测试,测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本的功能正常,保证软件系 ...
- Spring学习记录(十)---使用FactoryBean配置Bean
之前学了,配置bean可以用普通全类名配置.用工厂方法配置,FactoryBean又是什么呢 有时候配置bean要用到,IOC其他Bean,这时,用FactoryBean配置最合适. FactoryB ...
- 【非愚人】重要通知:04-01 贴吧继PHP资源之后又。。。
贴吧继PHP资源之后又取消了JAVA,IOS等资源的贴,现在专注于Net,C++,Linux,平面设计.主要是为了让广大Net程序员具备全栈全平台牛人的潜力,故而取消那些干扰因素.Net的潜力和活力大 ...
- Dnsmasq安装与配置
默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...
- exe4j的使用
下载:http://download.cnet.com/exe4j/3000-2070_4-144405.html 参考:http://blog.chinaunix.net/uid-25749806- ...
- Hibernate的数据查找,添加!
1.首先看一下测试数据库的物理模型 2.测试所需要的Hibernate的jar包 3.数据库的sql /*=============================================== ...
- MySQL学习笔记一:常用显示命令
1.开启和关闭MySQL服务 WIN平台:NET START MYSQL55 :NET STOP MYSQL55 Linux平台:service mysql start : service mysql ...
- 图片每天换及纯css3手风琴特效
<a target="_blank" id="a"><img id="img" /></a> <s ...
- 第三方侧滑菜单SlidingMenu在android studio中的使用
南尘:每天进步一点点! 前面讲了官方的侧滑菜单DrawerLayout的使用,其实早在官方没有推出这个之前,就有很多第三方的jar包如SlidingMenu等,感谢开源的力量. SlidingMenu ...
- Extjs4.0以上版本智能提示的方法
最近,公司的BS项目要用Extjs,本屌学过JavaScript..和Jquery Easy UI ,Jquery..可这个Extjs完全没接触过..可公司项目进度不能掉..只有苦心学习,终于写了点 ...