负载均衡与黑名单

原创 2013年12月04日 12:22:12

黑名单

访问一个Server经常出错就可以断定:该Server“有问题”,下次访问还是极可能出错。为了减少试错成本,可以把它放到黑名单中,下次请求Server的时候避开这个有问题的Server。实现黑名单,需要注意以下方面:

1. 错误分类:一个Server出错可能有很多种原因,一个Tablet出问题,整个Server出问题,网络出问题,一个大查询超时等等。这些问题需要予以适当分类,不同情况要用不同黑法。

2. 黑名单洗白:在一定条件下黑名单需要被洗白。例如:黑名单超时;Server列表更新;没有可服务的Server了,强制洗白。


负载均衡

在分布式系统中为了让平均响应时间最低、系统吞吐量最大,需要把外部请求均衡的发送到各个服务器。最简单的均衡算法是Round-Robin(轮转算法),该算法的特点简单来说就是:谁都别急,都有份,一个个来。该算法虽然简单,但十分实用。绝大多数情况都可以采用Round-Robin算法,实现简单,性能还稳定。但该算法有一个缺点:它假设了每个请求消耗的资源是相等的,而实际应用中不同请求对资源的需求是不同的。例如:同样是范围扫描(Scan)请求,有些请求只需要扫描几条数据,有些请求需要扫描上万条数据。OceanBase中的Scan请求就符合这样的特征,因此不能简单的使用Round-Robin,需要一种对load-aware的算法。

如果事先知道每个Scan要扫描多少条数据,显然可以采用一种带权值的Round-Robin算法。但在OceanBase中Scan多少条数据是不能预先知道的,所以采用了一种更直接的方式:记录下每一个Server处理请求消耗的时间。 Scan的记录条数多,消耗时间也多,记录数少,消耗的时间就少。每次选择目标Server的时候就看谁过去消耗的时间最少。该算法可以保证每个Server的负载基本相同。该算法也有一个缺陷:它依赖于历史数据。假设这期间有一个Server下线或者被加入了黑名单,那么它会欠下很多时间债,下次上线的时候请求都会涌入到该Server,直到时间债务清偿。一种解决方案是:每次Server上线时都把自己的流量设置成系统的平均值。但在工程实现上可能会遇到不少麻烦:(1)如何定义Server上线动作?比如,Server被加入到了一个分布式的黑名单中 (2) 如果流量记录是分布式的呢?比如,为了性能考虑,各个线程都各自维护了自己的历史记录。 以上都是OceanBase遇到的现实问题。

】Ramdon随机算法:从统计的角度看,该算法本质也是Round-Robin算法。



以上是OceanBase中目前遇到的一个小困境,考虑下,看看有没有一个折中方案解决CS上线后流量涌入的问题。


版权声明:本文为博主原创文章,未经博主允许不得转载。微信hustos联系博主。

负载均衡与黑名单

负载均衡 在分布式系统中为了让平均响应时间最低、系统吞吐量最大,需要把外部请求均衡的发送到各个服务器。最简单的均衡算法是Round-Robin(轮转算法),该算法的特点简单来说就是:谁都别急,都有份,...
  • maray
  • maray
  • 2013年12月04日 12:22
  • 1338

开源负载均衡器DPVS

介绍 DPVS是基于DPDK的高性能第4层负载均衡器。基于阿里巴巴/ LVS修改而来,出于蓝而胜于蓝。 DPDK全称为 “DPDK-LVS”. 为了达到高性能,使用了多种...
  • oqqSSH
  • oqqSSH
  • 2017年10月31日 19:12
  • 510

Nginx配之负载均衡、缓存、黑名单和灰度发布

一、Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y (若不能安装,执行命令yum install epel-release) 2. 启...
  • qq_19261905
  • qq_19261905
  • 2017年10月26日 10:09
  • 225

OpenSIPS+FreeSWITCH负载均衡+NAT+黑名单

About After much searching and experimentation, I've found an opensips.cfg that distributes calls to...
  • qq_29621351
  • qq_29621351
  • 2017年07月05日 08:58
  • 582

高性能Web应用开发之OpenResty案例

几乎所有互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Ngi...
  • xiaofei0859
  • xiaofei0859
  • 2016年04月06日 17:48
  • 2941

使用OpenResty(Nginx+Lua)开发高性能Web应用

在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开...
  • English0523
  • English0523
  • 2017年11月13日 13:36
  • 440

白名单和黑名单概念

要理解白名单,最好先理解黑名单,黑名单好理解,一般的意思就是你拒绝的名单,或者你不喜欢的名单,例如大家都用的QQ,你把好友拉入QQ黑名单,这样他就不能跟你联系了。就是说你拒绝了他,或者你不喜欢他,这个...
  • ios_xumin
  • ios_xumin
  • 2017年09月07日 16:38
  • 689

四、负载均衡和反向代理

四、负载均衡和反向代理 1.   Web服务器/http服务器 Web服务器的基本功能就是提供Web信息浏览服务。它只需支持HTTP协议、HTML文档格式及URL,与客户端的网络浏览器配合。 W...
  • princesas
  • princesas
  • 2016年05月31日 16:13
  • 441

计算机应用精华系统性整理

让驱动程...
  • shuimu880
  • shuimu880
  • 2008年05月15日 13:30
  • 3080

关于PGPool

pgpool-II 是一个位于 PostgreSQL 服务器和 PostgreSQL 数据库客户端之间的中间件,它提供以下功能: 连接池 复制 负载均衡 并行查询 HA 查询缓存 ...
  • permike
  • permike
  • 2017年01月24日 15:33
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:负载均衡与黑名单
举报原因:
原因补充:

(最多只允许输入30个字)