为什么要使用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. 建设一个能承受500万PV/每天的网站如果计算?

    PV是什么: PV是page view的简写.PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv. 计算模型: 每台服务器每秒处理请求的数量=((80%*总PV量)/(24小时*60分*60 ...

  2. ansys中的.full文件中如何看刚度矩阵和质量矩阵(转)

    http://fffff-2001.blog.163.com/blog/static/15507529200722492917460 Q:请问ansys中的.full文件中如何看刚度矩阵和质量矩阵? ...

  3. android手机web网站拨打电话几种方式

    1. <input name="phone" format="*m" value="13"/> <do type=&quo ...

  4. fedora配置ip

    fedora20配置静态ip 原创 2015年08月08日 14:36:01 标签: fedora / linux / 网络配置 / ip配置 / 网络设置 2403 在linux的世界里,给主机设置 ...

  5. sehlle脚本获取linux服务器基本信息

    将以下代码全选复制在linux机器上新建x.sh文件编辑复制进去执行即可. #获取linux服务器基本信息脚本 #!/bin/bash # #Name:system_info #Ver:1.0 #Au ...

  6. JavaSE-07 类

    习要点 面向过程 面向对象 抽象 类 类的构造方法 类中常见的关键字 类的成员方法 类的成员变量 面向过程 程序 程序的概念 程序一词来自生活,通常指完成某些事情的一种既定方式和过程. 可以将程序看成 ...

  7. UTF-8,UTF-16

    UTF是 Unicode Translation Format,即把Unicode转做某种格式的意思. 在Unicode基本多文种平面定义的字符(无论是拉丁字母.汉字或其他文字或符号),一律使用2字节 ...

  8. 合并多个MP4文件

    把多个MP4文件连接起来的方法与音频文件不太一样,比较有效的方法是: $ cat mylist.txt file '/path/to/file1' file '/path/to/file2' file ...

  9. Wireshark does not show SSL/TLS

    why it doesn't show as "TLS/SSL"? Because it's not on the standard port for SSL/TLS. You c ...

  10. (十四)Python3 字符串格式化

    Python3 字符串格式化 字符串的格式化方法分为两种,分别为占位符(%)和format方式.占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用 ...