一致性哈希算法、虚拟节点、twemproxy实现hash分片、准备Redis实例、twemproxy安装、使用和总结

一致性哈希算法:是一种分布式算法,常用于负载均衡(twemproxy采用此方法)
解决将key-value均匀分配到众多server上的问题 

虚拟节点:解决一致性hash倾斜的问题


twemproxy实现hash分片
通过引入一个代理层,可以将后端的多台redis或Memcached实例进行同一管理与分配,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached存储
    支持失败节点自动删除
    减少客户端直接与服务器的连接数量
    多种hash算法
    多种分片算法:ketama(一致性hash算法的一种实现)

#准备Redis实例
cd /usr/local/redis/
mkdir twemproxy-redis
cp bin twemproxy-redis/redis01 -R

#清理redis
cd twemproxy-redis/redis01/
rm -rf dump.rdb
rm -rf appendonly.aof
rm -rf redis.conf

#复制配置文件
cp /root/redis-4.0.14/redis.conf ./

#修改配置文件
vi redis.conf

#redis服务器可以跨网络访问
    修改 bind 为 0.0.0.0
#关闭保护模式
    修改 protected-mode 为 no
#设置端口号
    修改 port 为 7601
#redis后台启动
    修改 daemonize 为 yes
#开启aof持久化
    修改 appendonly 为 yes

进入上级目录: cd ..
    cp -R redis01/ redis02   
    cp -R redis01/ redis03
再分别改port为 7602 和 7603
启动
    ./redis-server redis.conf
    cd ../redis02
#查看
    ps -ef | grep redis


twemproxy安装
#环境准备
    yum -y install install autoconf automake libtool
#上传资料中的twemproxy.tar 并安装
#安装包解包
    cd root
    tar -xf twemproxy.tar
#安装twemproxy
    cd twemproxy
    autoreconf -fvi
    ./configure --enable-debug=full --prefix=/usr/local/twemproxy
    make
    make install
#编写配置文件
    cd /usr/local/twemproxy/
    mkdir conf run
    vi conf/nutcracker.yml
#配置文件内容如下(yml配置要求:1.冒号后面要空格  2.fnv1a 第四个 是数字1不是字母l)

alpha:
  listen: 192.168.200.130:22121
  hash: fnv1a_64
  distribution: ketama
  auto_eject_hosts: true
  redis: true
  server_retry_timeout: 2000
  server_failure_limit: 1
  servers:
   - 192.168.200.130:7601:1
   - 192.168.200.130:7602:1
   - 192.168.200.130:7603:1


#测试配置文件
    ./sbin/nutcracker -t
#如下应该提示OK
    nutcracker:configuration file 'conf/nutcracker.yml' syntax is ok
#启动twemproxy(注意这是一行命令)
    ./sbin/nutcracker -d -c /usr/local/twemproxy/conf/nutcracker.yml -p /usr/local/twemproxy/run/redisproxy.pid -o /usr/local/twemproxy/run/redisproxy.log

#查看启动信息
    ps -ef | grep nutcracker
#查看端口使用情况
    netstat -nltp | grep nutcra

tewmproxy使用
命令行使用,有些命令不能用,如info,因为twemproxy只是一个代理
    cd /usr/local/redis/bin/
    ./redis-cli -h 192.168.200.130 -p 22121
可以测试get、set方法

整合Spring和twemproxy

总结
Redis单机版:数据量、QPS不大的情况使用
Redis主从复制:需要读写分离,高可用的时候使用
Sentinel哨兵:需要自动容错容灾的时候使用
内置集群:数据量比较大,QPS有一定要求的时候使用,但集群节点不能过多
twemproxy集群:数据量,QPS要求非常高,可以使用
(使用成本从上往下递增)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值