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

黑名单

访问一个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上线后流量涌入的问题。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql自动拉入黑名单_负载均衡与黑名单相关推荐

  1. mysql自动拉入黑名单_利用MySQL实现域名黑名单过滤10W记录1ms匹配

    先说一下这个需求,需要判断某个域名是否在黑名单中.黑名单中的域名一旦设置,其下任何级的域名都认为是在黑名单中. 如黑名单中加入a.com,则a.com.www.a.com.1.2.3.a.com等都算 ...

  2. Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用

    目录 一.Keepalived和LVS简介 1. Keepalived简介 2. LVS简介 二.安装配置 1. 下载安装LVS 2. 下载安装Keepalived 3. Keepalived配置 5 ...

  3. 使用MySQL Router实现高可用、负载均衡、读写分离

    目录 一.MySQL Router简介 1. 功能 2. 架构 3. 使用 二.安装配置 三.自动失败切换 四.负载均衡 五.读写分离 六.多实例 1. 环境 2. 配置文件 3. 功能测试 参考: ...

  4. sqlrelay mysql_php+sqlrelay+mysql实现连接池及读写负载均衡

    php+sqlrelay+mysql实现连接池及读写负载均衡 上一篇 / 下一篇  2008-04-02 18:25:19 / 个人分类:MySQL 作者:ziqiu sqlrelay.jpg(20. ...

  5. 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)

    不可避免的是,使用MySQL时随着时间的增长,用户量以及数据量的逐渐增加,访问量更是剧增,最终将会使MySQL达到某个瓶颈,那么MySQL的性能将会大大降低.怎么办?前面已经讲过十一篇优化方案,接下来 ...

  6. linux mysql 自动加斜杠_【实战演练】Linux操作系统19-Mysql主主复制加Keepalived高可用...

    理论部分,在之前的文章已经说明过了,详见: 繁星亮与鲍包包:[理论研究]业务系统高可用及负载均衡​zhuanlan.zhihu.com 上一篇已经讲述对2台Mysql服务器做主主复制,实现Mysql数 ...

  7. docker_swarm_集群创建_数据共享_负载均衡

    1. 环境准备 192.168.1.135 manager135 manager 192.168.1.136 node136 node 192.168.1.137 node137 node 三个主机均 ...

  8. Spring Cloud概念+案例(eureka注册+拉取、ribbon负载均衡+重试)、netfix各组件介绍【上】

    Spring Cloud概念+案例(断路器)[下] https://blog.csdn.net/LawssssCat/article/details/104632719 [⭐️⭐️⭐️] Spring ...

  9. php+sqlrelay+mysql实现连接池及读写负载均衡

    本文主要介绍sqlrelay的配置安装.通过其性能和一些具体环境的测试来帮助开发者应用在相应的场合中去应付大并发的mysql数据库连接. 什么是sqlrelay? Sqlrelay是一个开源的数据库连 ...

  10. 服务器负载不高 响应慢_负载均衡有哪几大类别?

    我们在将工作分配给所有的实际服务器时,因为每台服务器的承载能力各不相同,也可能因为某台服务器身兼多职,导致某些服务器过载,服务器响应速度越来越慢.那么如何解决这个问题呢?这个时候,负载均衡就应运而生了 ...

最新文章

  1. python自动化办公脚本下载-python自动化脚本
  2. 【python】Python中给List添加元素的4种方法分享
  3. SAP HTML5 Application Repository
  4. 如何在Chrome开发者工具里找出SAP Fiori frontend server的systen ID
  5. 广东东软学院计算机系主任罗,广东东软学院副校长朱爱红一行来访我校
  6. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(2月6日-2月12日)
  7. 《Thinking in java》 读了个开头
  8. 案例上手 Python 数据可视化
  9. 服务器虚拟化基础hcna,华为云计算全新大纲课程 乾颐堂HCNA-Cloud服务器虚拟化云计算实战课程 HCNA认证课程...
  10. 无人车系统(四):轨迹跟踪PID控制
  11. win7找回快速启动栏
  12. 万语千言,不敌一纸情书
  13. iOS 名字按字母排序
  14. Latex 多图片排版--排版代码生成器
  15. turtle画彩虹蟒蛇
  16. python人工智能应用锁_自兴人工智能——Python 第一课
  17. 阿里云服务器ECS开放8080端口
  18. 论文解读:跨域推荐模型MiNet
  19. 手淘首页和猜你喜欢流量和提高店铺权重的方法技巧
  20. 英文信件中,招呼与落款的呼应:

热门文章

  1. Android 加载高清巨图,无需剪裁压缩
  2. 一套正版SOLIDWORKS大概多少钱?
  3. H5页面直接扫码二维码插件
  4. 重磅!AQF量化金融分析师考纲更新
  5. 【直播回顾】网络通信是如何保障数据安全传输的?
  6. linux管理工具_用于改善时间管理的Linux工具
  7. 阿里云服务器创建与应用
  8. 春节恐归族:有多少人不敢回家过年 (l转)
  9. day 13 生成器,推导式
  10. cx oracle 提示32位,Windows 32位安装cx_Oracle解决方案