为什么要使用HA,原因是可以聚合出一个VIP,也就是可以使用单一IP来访问下面多个Redis的实例。

首先说明一下,如果基于3.0以后搭建的官方原始Redis Cluster方案,使用HAProxy是没什么效果的,打个比方,如果使用HA聚合出一个VIP,然后通过这个VIP访问时,会根据Key返回MOVED的命令,然后客户端通过协议识别MOVED命令去连接另一台Redis取数据,那么此时就会访问原始IP,而不是HA的VIP,也就是绕过去了,造成HA是多余的一个点。所以HA对于这种模式是无效的。

参考:https://stackoverflow.com/questions/31785184/redis-cluster-via-haproxy

再次说明,原来Redis还可以通过HA实现负载均衡。

但是这种模式配置可能有点难以理解,比如:

1、如果是基于Redis的原生主从复制时,从节点写的数据不会同步到主节点,那么用HA也是没什么效果的。

2、如果不用主从复制,单纯的部署多个Redis时,通过HA确实能负载多台,但是会有这个现象,比如我写的时候是A,而读的时候到了B,也就造成数据不同步,写时也会有这个现象。

那么通过以上问题,看下下面的解决分析:

先说下以下两篇文章提到的HA+Redis的实现:

http://blog.csdn.net/citi007/article/details/39636567

http://blog.csdn.net/ownfire/article/details/39373399

是不能用的,就单纯的两个Redis,期间没有配置主从和哨兵或者Twemproxy的模式,是完全不能实现,所以以上是反面教材。

下面说下要实现HA来做负载均衡所要具备的条件和解决上述问题的分析:

1、一般HA是结合Twemproxy和哨兵模式一起使用。

2、如果使用Twemproxy时,本身T是一个代理层,用于分片算法,而T支持平行节点部署来达到T的集群,然后可以通过HA来做IP的聚合实现负载均衡指向T的集群。

3、如果基于哨兵模式的Redis集群时,那么HA需要在负载均衡规则上做过滤条件,哨兵本身不能写数据,就需要把所有的发送流量指向master,也就是主节点。

4、当然,再高可用就是HA+哨兵+T的组合。

下面这篇文章是Redis集群方案最全的一篇:

http://blog.csdn.net/shmilychan/article/details/73433804

下面这些文章是HA做负载均衡找到的突破口(留意规则的过滤):

https://karlstoney.com/2015/07/23/redis-sentinel-behind-haproxy/

https://discuss.pivotal.io/hc/en-us/articles/205309388-How-to-setup-HAProxy-and-Redis-Sentinel-for-automatic-failover-between-Redis-Master-and-Slave-servers

https://www.haproxy.com/blog/haproxy-advanced-redis-health-check/

https://serverfault.com/questions/772064/redis-haproxy-updated-configuration-settings

http://www.cnblogs.com/xiazh/archive/2012/11/13/2630846.html

http://blog.csdn.net/houzhe_adore/article/details/48262873

http://blog.csdn.net/houzhe_adore/article/details/48245435

http://www.cnblogs.com/tzm7614/p/5691912.html

http://blog.csdn.net/ownfire/article/details/39373399

HAProxy+Redis实现负载负载均衡(待实践)的更多相关文章

  1. Keepalived+HAproxy实现高可用负载均衡

    总概:       Keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态, ...

  2. Nginx反向代理与负载均衡应用实践(一)

    Nginx反向代理与负载均衡应用实践(一) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...

  3. Keepalived+HAProxy 搭建高可用负载均衡

    转载自:https://mp.weixin.qq.com/s/VebiWftaRa26x1aA21Jqww 1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技 ...

  4. Mysql的Haproxy反向代理和负载均衡

    HaProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.应用到Haproxy主要是因为他免费,并且基于TCP和HTTP的应用代理. ...

  5. 【架构】RPC 使用 Haproxy、keepalive作为负载均衡

    参考资料: Haproxy+keepalived 高可用负载:  http://www.tuicool.com/articles/qY7Rz23 keepalived原理(主从配置+haproxy)及 ...

  6. lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析

    目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障.那么他们为什么这么搭配,而又有什么 ...

  7. 案例一(haproxy+keepalived高可用负载均衡系统)【转】

    1.搭建环境描述: 操作系统: [root@HA-1 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) 地址规划: 主机名 IP地址 集群角 ...

  8. 005.HAProxy+Keepalived高可用负载均衡

    一 基础准备 1.1 部署环境及说明 系统OS:CentOS 6.8 64位 HAProxy软件:HA-Proxy version 1.5.18 Keepalived软件:keepalived-1.3 ...

  9. 基于HAProxy+Keepalived高可用负载均衡web服务的搭建

    一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web ...

  10. (转载)Nginx/LVS/HAProxy三种主流负载均衡软件的对比

    原地址:http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些 ...

随机推荐

  1. vultr服务器L2TP搭建

    前期准备,购买外服,选择vultr服务商,可选择洛杉矶的,系统为Ubuntu 14.04 x64 一.安装L2TP/IPSec wget --no-check-certificate https:// ...

  2. 企业面试之LeetCode刷题心得

    谈起刷LeetCode的心得,想要先扯点别的,说实话我是比较自虐的人,大学时候本专业从来不好好上,一直觊觎着别人的专业,因为自己文科生,总觉得没有项技术在身出门找工作都没有底气,然后看什么炫学什么,简 ...

  3. 说说windows10自带浏览器Edge的好与不好

    用了10几个月了,正式版也升级了,今天来说说微软自带浏览器microsoft Edge的好与不好       先说好的吧     一,浏览器速度非常快,无论是打开还是关闭,或者是语音助手小娜需要调动浏 ...

  4. MySQL(MMM架构使用)

    本案例要求基于普通版的MySQL服务器改造MMM架构,完成以下任务操作:启动MMM集群架构设置集群中服务器为online状态MySQL-MMM架构部署完成后需要启动,数据库端启动mmm-agent进程 ...

  5. 【Linux】 CentOS免密登录

    #sudo ssh-keygen -t rsa #sudo ssh-copy-id ${ipAddress}

  6. c++ 模板template

    1.函数模板的声明 声明形式 template<typename 数据类型参数标识符> <返回类型><函数名>(参数表) {     函数体 } 注: templa ...

  7. console.log()与console.dir()

    console.log()可以取代alert()或document.write(),在网页脚本中使用console.log()时,会在浏览器控制台打印出信息. console.dir()可以显示一个对 ...

  8. IIS+php服务器无法上传图片解决办法

    查找网上资料,发现php.ini下面有2个地方关于上传的配置: file_uploads = On  这里设置是否允许HTTP上传,默认应该为ON的 ;upload_tmp_dir=  这里设置上传文 ...

  9. Python机器学习——DBSCAN聚类

    密度聚类(Density-based Clustering)假设聚类结构能够通过样本分布的紧密程度来确定.DBSCAN是常用的密度聚类算法,它通过一组邻域参数(ϵϵ,MinPtsMinPts)来描述样 ...

  10. ionic3 ion-slides遇坑

    不想吐槽  ionic-slides  的组件,是个巨坑...切换页面以后再返回当前页面, 不能自动播放,网上的解决方案都是没用的(亲测,后台获取的数据) ...  不信邪的宝宝们可以去试试..建议换 ...