本文为原创文章,转载请注明出处,谢谢

负载均衡

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应用 - 负载均衡的更多相关文章

  1. Zookeeper实现负载均衡原理

    先玩个正常的,好玩的socket编程: 服务端: 首先公共的这个Handler: package com.toov5.zkDubbo; import java.io.BufferedReader; i ...

  2. 使用Zookeeper实现负载均衡原理

    思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 创建项目工程 M ...

  3. ActiveMQ集群简单测试+eclipse Zookeeper 插件 + 负载均衡

    ActiveMQ集群搭建好之后,接下来就该测试一下了. 一.先安装Zookeeper 的eclipse插件吧. 1. 打开 eclipse, Help -> Install New Softwa ...

  4. Zookeeper实现负载均衡

    原理解析         架构图                  每台WorkServer启动的时候都会到Server创建临时节点.         每台ClientServer启动的时候,都会到S ...

  5. 【Zookeeper】实现负载均衡原理

    一.思路 使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点.客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器. 服务端启动的 ...

  6. ribbon负载均衡循环策略源码

    (原) 在用ribbon负载均衡取eureka注册中心中的地址时,默认采用循环策略,例如商品服务有3个,分别为URL1,URL2,URL3,那么在客户端第一次取时,会取到URL1,第二次取时取到URL ...

  7. Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  8. zookeeper在集群负载均衡中的应用

    zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...

  9. 使用ZooKeeper实现软负载均衡(原理)

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供的功能包括配置维护.名字服务.分布式同步.组服务等. ZooKeeper会维护一个树形的数据结构,类似于Windows资源管理器 ...

随机推荐

  1. java线程 公平锁 ReentrantLock(boolean fair)

    一.公平锁 1.为什么有公平锁 CPU在调度线程的时候是在等待队列里随机挑选一个线程,由于这种随机性所以是无法保证线程先到先得的(synchronized控制的锁就是这种非公平锁).但这样就会产生饥饿 ...

  2. AngularJs入门之表单开发

    本文和大家分享的主要是前端开发中必备的AngularJs框架表单开发相关基础知识,希望对大家使用和学习AngularJs有所帮助. 1.简单的表单提交: 2.更多的表单元素: 3.初始化表单: 代码 ...

  3. C# 如何提取SaveFileDialog的保存路径

    直接上代码 public TestOne() { InitializeComponent(); SaveFileDialog();//调用打开SaveFileDialog 保存对话框 } #regio ...

  4. Neutron 默认安全组规则 - 每天5分钟玩转 OpenStack(115)

    Neutron 为 instance 提供了两种管理网络安全的方法: 安全组(Security Group)和虚拟防火墙. 安全组的原理是通过 iptables 对 instance 所在计算节点的网 ...

  5. 应用程序框架实战十七:DDD分层架构之值对象(层超类型篇)

    上一篇介绍了值对象的基本概念,得到了一些朋友的支持,另外也有一些朋友提出了不同意见.这其实是很自然的事情,设计本来就充满了各种可能性,没有绝对正确的做法,只有更好的实践.但是设计与实践的好与坏,对于不 ...

  6. MySQL参数

    1. sql_safe_updates 官方解释如下: , MySQL aborts . 默认为0,如果设置为1,则delete操作和update操作必须带有where子句,且where子句中的列必须 ...

  7. MVC, MVP, MVVM比较以及区别(上)

    MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式.以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解.现在一边查资料,并结合自己的理解,来谈一下 ...

  8. IE 11 如何设置“用户代理字符串”

    "用户代理字符串"这个术语在IE11 之前被叫作“浏览器模式”(Browser Mode),在IE11下面这个特殊的选项被放在F12的“仿真”选项下面了. Figure 1通过按下 ...

  9. java多线程--定时器Timer的使用

    定时的功能我们在手机上见得比较多,比如定时清理垃圾,闹钟,等等.定时功能在java中主要使用的就是Timer对象,他在内部使用的就是多线程的技术. Time类主要负责完成定时计划任务的功能,就是在指定 ...

  10. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...