`
haoningabc
  • 浏览: 1477738 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

redis+keepalived+haproxy集群的简单搭建

阅读更多


#############################redis集群
参考
http://www.cnblogs.com/wuxl360/p/5920330.html

redis-3.2.9
make PREFIX=/usr/local/redis install

cp redis-3.2.9/src/redis-trib.rb /usr/local/redis/bin/
cp redis-3.2.9/redis.conf 到
一台机器
/opt/redis_cluster/7000/redis.conf
/opt/redis_cluster/7001/redis.conf
/opt/redis_cluster/7002/redis.conf


另一台机器
/opt/redis_cluster/7003/redis.conf
/opt/redis_cluster/7004/redis.conf
/opt/redis_cluster/7005/redis.conf

每台配置如下,端口按照编号改
#############
port  7000                                        //端口7000,7002,7003       
bind 本机ip                                       //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize    yes                               //redis后台运行
pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
cluster-enabled  yes                           //开启集群  把注释#去掉
cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout  15000                //请求超时  默认15秒,可自行设置
appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志 
######################################

每台机器上启动redis
#/bin/sh
/usr/local/redis/bin/redis-server /opt/redis_cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /opt/redis_cluster/7002/redis.conf
/usr/local/redis/bin/redis-server /opt/redis_cluster/7003/redis.conf

ps -ef|grep redis
3个进程
netstat -nltp|grep redis
6个端口

安装ruby
yum -y install ruby ruby-devel rubygems rpm-build -y
gem install redis

关联集群
./redis-trib.rb  create  --replicas  1  192.168.139.161:7000 192.168.139.161:7001  192.168.139.161:7002 192.168.139.193:7003  192.168.139.193:7004  192.168.139.193:7005

任意节点写入任意节点接收
./redis-cli -h 192.168.139.161 -c -p 7000
set hao ning
./redis-cli -h 192.168.139.193 -c -p 7005
get hao


redis cluster在设计的时候,就考虑到了去中心化,去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态。每个节点都和其他所有节点连接,而且这些连接保持活跃,这样就保证了我们只需要连接集群中的任意一个节点,就可以获取到其他节点的数据。
Redis 集群没有并使用传统的一致性哈希来分配数据,而是采用另外一种叫做哈希槽 (hash slot)的方式来分配的。redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key 分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384。所以我们在测试的时候看到set 和 get 的时候,直接跳转到了7000端口的节点。
Redis 集群会把数据存在一个 master 节点,然后在这个 master 和其对应的salve 之间进行数据同步。当读取数据时,也根据一致性哈希算法到对应的 master 节点获取数据。只有当一个master 挂掉之后,才会启动一个对应的 salve 节点,充当 master 。
需要注意的是:必须要3个或以上的主节点,否则在创建集群时会失败,并且当存活的主节点数小于总节点数的一半时,整个集群就无法提供服务了。




######################keepalived########################
通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。
当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。
keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。
在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。
VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。 Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务


wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
./configure --prefix=/usr/local/keepalived
make
make install
设置虚ip 192.168.139.201


cat /usr/local/keepalived/etc/keepalived/keepalived.conf
一台机器上
#################
global_defs {
    router_id NodeA
}

vrrp_instance VI_1 {
    state MASTER  #设置为主服务器 
    interface br-ex #监测网络接口 
    virtual_router_id 51   #主、备必须一样 
    priority 100   #(主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高) 
    advert_int 1   #VRRP Multicast广播周期秒数
    authentication {
        auth_type PASS  #VRRP认证方式,主备必须一致 
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.139.201/20    #VRRP HA虚拟地址 
    }
}
###############

另一台机器上
#################
global_defs {
    router_id NodeB
}

vrrp_instance VI_1 {
    state BACKUP
    interface br-ex
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }  
    virtual_ipaddress {
        192.168.139.201/20
    }  
}
###############
启动
/usr/local/keepalived/sbin/keepalived -D -f /usr/local/keepalived/etc/keepalived/keepalived.conf

ifconfig br-ex
ip a show br-ex
看ip地址
ip link show br-ex
看mac地址

ping 192.168.139.201
arp -a 看201的mac地址

然后kill掉主节点上的keepalived
再arp -a 看201的mac地址 变为backup节点的mac了

在两台机器上都tailf /var/log/message 看log变化


##########################haproxy################
yum install haproxy -y

  haproxy 配置中分成五部分内容,分别如下:
1、global:参数是进程级的,通常是和操作系统相关。这些参数一般只设置一次,如果配置无误,就不需要再次进行修改
2、defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件
3、frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend
4、backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器
5、Listen Fronted和backend的组合体

作为redis的haproxy
需要配置
/etc/haproxy/haproxy.cfg
frontend  和 backend 先注释掉
使用tcp
###################
defaults
    #mode                    http
    mode                    tcp
    log                     global
#    option                  httplog
#    option                  dontlognull
#    option http-server-close
#    option forwardfor       except 127.0.0.0/8
#    option                  redispatch
##############
最后加
##################
listen test1  0.0.0.0:6380
        server s1 192.168.139.161:7000  check inter 2000 rise 2 fall 5
        server s2 192.168.139.161:7001  check inter 2000 rise 2 fall 5
        server s3 192.168.139.161:7002  check inter 2000 rise 2 fall 5
        server s4 192.168.139.193:7003  check inter 2000 rise 2 fall 5
        server s5 192.168.139.193:7004  check inter 2000 rise 2 fall 5
        server s6 192.168.139.193:7005  check inter 2000 rise 2 fall 5
##############

./redis-cli -h 192.168.139.161 -c -p 6380

####################################
综上加了keepalived之后
./redis-cli -h 192.168.139.201 -c -p 6380

挂了任何以一个节点都可以正常访问











分享到:
评论

相关推荐

    采用Keepalived实现Redis双机高可用

    它通常与Nginx、HAProxy等配合使用,但在Redis场景下,Keepalived可以用来实现虚拟IP漂移,当主服务器出现故障时,自动将网络请求切换到备用服务器,从而确保服务的连续性。 首先,我们需要在两台服务器上分别安装...

    keepalived 配置redis高可用

    因此,构建Redis高可用集群是必要的。 **二、Keepalived与Redis结合的架构** 1. **主备模式(Master-Slave)**:在Redis中,可以通过复制机制设置一个或多个从节点(Slaves),主节点负责写操作,从节点进行读操作...

    第四十六章:Redis sentinel哨兵集群1

    以下是一个简单的搭建Sentinel集群的案例,包括配置Master、Slave以及Sentinel节点: 1. **安装Redis**:在所有节点上安装Redis服务,如Centos7.4系统上通过源码编译安装。 2. **配置主从复制**:在Master节点上...

    微服务架构(Kafka、Redis、MySQL)

    Mysql集群的搭建通常涉及到主主复制或主从复制,这里使用了【Mycat】进行读写分离,即【mysql-170】和【mysql-171】互为主主,【mysql-170】和【mysql-172】为主从关系。这样,【mysql-170】主要负责写操作,【mysql...

    论当前一种先进实用的IT系统架构设计(修改版).docx

    - **Keepalived+HAProxy+Squid集群**:LVS+Keepalived双机通过VIP对HAProxy进行负载均衡,HAProxy再对应用服务器集群进行调度,Squid处理静态内容请求。 此架构充分利用了分布式特性,通过消除数据库I/O瓶颈提升...

    论当前一种先进实用的IT系统架构设计

    - **KEEPALIVED+HAProxy+Squid集群**:LVS+Keepalived双机通过VIP对HAProxy进行负载均衡,HAProxy调度应用服务器集群,Squid负责缓存和查询。 此架构利用分布式集群消除了数据库I/O瓶颈,提高了系统性能,支持线性...

    数据库高可用架构(MySQL、Oracle、MongoDB、Redis)

    MySQL小型高可用架构方案:MySQL双主、主从+Keepalived主从自动切换服务器资源:两台PCServer优点:架构简单,节省资源缺点:无法线性扩展,主从失败之后需要手动恢复主从架构方案:MMM+MySQL双主+多从高可用方案...

    《OpenStack高可用集群:原理与架构》读书笔记模板.pptx

    第二个部分是对OpenStack高可用集群的资源管理系统的讲解,包括Pacemaker、Keepalived、HAProxy、RabbitMQ、Memcache和Redis等技术。第三个部分是对OpenStack高可用集群的计算服务和存储服务的讲解,包括Nova、...

    分布式集群技术.pdf

    集群负载均衡和高可靠是分布式集群技术的核心,Haproxy、Keepalived 等内容将为读者提供了集群负载均衡和高可靠的基础知识。 CentOS7 部分新特性介绍和使用是分布式集群技术的基础,CentOS7 部分新特性介绍和使用等...

    linux集群学习资料

    根据提供的文件信息,我们可以深入探讨Linux集群中的关键概念和技术,特别是关于负载均衡集群的基本搭建与配置。本篇文章将重点围绕以下知识点展开: ### 一、负载均衡基础 **1.1 定义与作用** - 负载均衡是指在...

    codis集群安装

    ### Codis集群安装详解 #### 一、概述 本文档主要介绍了如何在CentOS 6.5环境下构建并运行一个完整的Codis集群。Codis是一个分布式Redis管理平台,旨在为Redis提供可扩展性和高可用性支持。Codis的核心组件包括...

    PROJECT.pptx

    - **高可用性**:使用Keepalived等工具监测HAProxy的状态,一旦HAProxy发生故障,可以快速切换到备用HAProxy,防止单点故障。 ### Redis分布式存储方案 #### 一、Redis集群概述 Redis集群通过将数据分布在多个...

    14.2: 项目概述 、 升级网站运行平台 、 部署缓存服务 、 数据迁移 、 部署集群 、 总结和答疑.docx

    部署LB集群通常包括安装负载均衡软件(如HAProxy或Nginx Plus的负载均衡模块),配置负载均衡策略(如轮询、最少连接数等),以及设置健康检查来监控后端服务器的状态。 **5. 部署HA集群** 高可用性(High ...

    数据之大,云动未来——传统企业从IT到DT的互联网创新最佳实践.pdf

    为解决这些问题,文档提出了一种云化的高可用数据平台架构,它结合了数据库代理(DBProxy)、应用数据缓存(如Redis)和负载均衡(HAProxy)等技术,形成了一套集高可用和横向扩展能力于一体的解决方案。这种架构...

    Nginx教程从入门到精通到失业

    - **高可用配置**:通过 Keepalived 配置 Nginx 高可用集群。 - **高速缓存**:利用 Proxy Cache 提升 Nginx 的缓存能力。 #### 十八、Nginx 战斗准备 —— 优化指南 - **基本配置**:介绍基本的 Nginx 配置项。 -...

    互联网金融数据云平台架构.pptx

    为了解决这些问题,各种高可用方案被采用,如【Pacemaker/Keepalived/MHA/MySQL Cluster】等,但它们配置复杂,可能存在脑裂问题,且在关键时刻不敢切换,可能导致数据不完整。此外,冷备策略浪费了资源,不支持自动...

    一篇很好的架构文章

    5. **高可用**:通过KeepAlived、HaProxy、Nginx等工具实现服务的冗余和故障切换,保证系统的持续可用。 6. **负载均衡**:HaProxy和Nginx不仅用于分发网络负载,还常用于反向代理,提升系统的响应速度和并发处理...

    分布式IT架构演进分析.docx

    6. 高可用与容灾:利用ZooKeeper等服务发现和协调工具,以及HAProxy/Keepalived等技术确保服务的连续性。 7. 微服务化:将应用拆分为小的、独立的服务,便于扩展和维护。 分布式架构的演进是一个不断优化和适应业务...

Global site tag (gtag.js) - Google Analytics