栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

redis2.6+twemproxy+zookeeper配置redis节点

redis2.6+twemproxy+zookeeper配置redis节点

redis + zookeeper + twemproxy 安装不在此赘述

第一节 Redis启动

本节参考自:https://www.cnblogs.com/gomysql/p/3617238.html

/usr/local/redis2.6/conf 下配置 文件7100.conf (主),以下是关键配置信息,其他的可以参考redis相关文档,说的很详细。

daemonize yes
pidfile /usr/local/redis2.6/pid/7100.pid
port 7100
logfile /data/redis/7100/logs/7100.log
dbfilename 7100.rdb
dir /data/redis/7100/data

配置文件7101.conf(从),相比较主7100.conf(主)的配置,增加了配置

slaveof 10.4.0.45 7100

redis启动与关闭命令

/usr/local/redis/src/redis-server /usr/local/redis/7100.conf 
/usr/local/redis/src/redis-server /usr/local/redis/7101.conf 
netstat -nltp | grep 7100
netstat -nltp | grep 7101

使用redis-cli 命令分别登录主从,检查在主server set值,从server是否会同步,如果未同步请检查7101的info

10.4.0.45:7101> info

检查列出的信息是不是出现了“master_link_status:down”,正常应该是“master_link_status:up”,我的处理方式是注释配置文件中的“masterauth test”,使用无密码的redis server。问题解决后,在主server中设置值,从server就会同步到主server的信息。配置文件中slaveof标记的server不会一直是从server,主server异常关闭后重启,主从就会交换。

第二节 redis-watchdog 启动

watchdog是 Redis 2.6 版本发布的一个新特性,它用于诊断Redis的延迟问题,这一功能有点类似于慢日志。主要是记录一些太慢的行为,以便排查原因。安装watchdog后,在目录/usr/local/redis-watchdog 下创建7100和7101的文件目录,并配置zk地址,修改logFile,然后在zk上创建节点:/redis/cluster/business , business为业务名称,最后执行watchdog启动命令:

/usr/local/redis-watchdog/redis-zoo-watchdog.elf -f /usr/local/redis-watchdog/7100/zoo-watchdog.conf -dc -t 10.4.0.45:7100 /redis/cluster/business/redis-001

/usr/local/redis-watchdog/redis-zoo-watchdog.elf -f /usr/local/redis-watchdog/7101/zoo-watchdog.conf -dc -t 10.4.0.45:7101 /redis/cluster/business/redis-001

多主从的时候命令中的redis-001 可叠加为002,003等。

第三节 twemproxy启动

本节参考自 https://www.cnblogs.com/gomysql/p/4413922.html

Twemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。该方案很好的解决了单个Redis实例承载能力的问题。当然,Twemproxy本身也是单点,需要用Keepalived做高可用方案。通过Twemproxy可以使用多台服务器来水平扩张redis服务,可以有效的避免单点故障问题。虽然使用Twemproxy需要更多的硬件资源和在redis性能有一定的损失(twitter测试约20%),但是能够提高整个系统的HA也是相当划算的。不熟悉twemproxy的同学,如果玩过nginx反向代理或者mysql proxy,那么你肯定也懂twemproxy了。

上面的架构通常只有一台Twemproxy在工作,另外一台处于备机,当一台挂掉以后,vip自动漂移,备机接替工作。

接下来开始实际操作。创建proxy配置文件redis-proxy-business.yml,并修改配置

alpha:
  listen: 10.4.0.45:22119
  hash: md5
  distribution: modula
  hash_tag: "{}"
  zookeeper_host: zk-cjb-master1.test.mz:2181,zk-cjb-master2.test.mz:2181,zk-cjb-master3.test.mz:2181
  zookeeper_path:  /redis/proxy/business/10.4.0.45:22119
  zookeeper_redis_path: /redis/cluster/business
  auto_eject_hosts: false
  redis: true
  timeout: 1000
  server_retry_timeout: 2000
  server_failure_limit: 2
  servers:
   - 10.4.0.45:7100:0-2047 business-redis-01

配置详解为

alpha: redis集群的逻辑名称
listen:部署了twemproxy的服务器监听本机的端口号
hash:hash散列算法
distribution:分片算法,一致性hash,取模,等等
timeout:跟redis连接的超时时长
redis:是否是redis,false的话是memcached
zookeeper_redis_path:存储的是redis节点信息,ls之后显示redis主从server列表,靠前的是主server
zookeeper_path:存储的是proxy信息,ls之后是显示listen配置的ip和端口
servers:redis实例列表,server的地址:端口:权重 别名,权重越大节点保存的数据就越多,一定要加别名(示例中的business-redis-01),否则默认使用ip:port:weight来计算分片,如果宕机后更换机器,那么分片就不一样了,因此加了别名后,可以确保分片一定是准确的。

然后执行命令

/usr/local/redis-proxy/bin/nutcracker -dc /usr/local/redis-proxy/conf/redis-proxy-business.yml -o /usr/local/redis-proxy/logs/redis-proxy-business.log -p /usr/local/redis-proxy/pid/22119.log

ps -ef |grep redis

如果发现proxy未启动,请检查配置文件以及zk节点是否正常。/redis/cluster/business/redis-001 下。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745552.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号