Twemproxy 又称nutcracker ,是一个memcache、Redis协议的轻量级代理,简单来说,Twemproxy是Twitter开发的一个redis代理proxy,类似于nginx的反向代理或者mysql的代理工具,如amoeba。 更详细的可以看官方介绍:官方地址链接 我在安装过程中参考的博客有: 第3个帮我从掉的坑的拉出来了,感谢大神们的前车之鉴!!! 安装Twemproxy 之前我已经成功搭建了redis集群,可以参考我昨天写的博客:原文链接 还是老习惯,在win10下载后,传到测试环境的linux系统里,需要下载的包有: automake-1.12.1.tar.gz 包下载地址:https://ftp.gnu.org/gnu/automake/ autoconf-2.69.tar.gz 包下载地址:https://ftp.gnu.org/gnu/autoconf libtool-1.5.26.tar.gz 包下载地址:https://ftp.gnu.org/gnu/libtool/ twemproxy-master.zip 包下载地址:https://codeload.github.com/twitter/twemproxy/zip/master 可以选择4个包都下载最新版本的哦~ 这些安装包下载完之后传到linux中,在linux新建的用户下的创建twemproxy 目录: 解压之后: 我在4个解压后的目录下都建了installs的目录作为安装的目录,而不是安装到/usr/local目录下,因为这个目录需要root权限。 注意: ①安装autoconf 执行情况如下图: 这里需要root用户,登录到root用户之后 在最后一行添加: 保存退出后使配置生效: 其实还可以在/etc/profile里添加配置,也需要root权限,另外我用我前面提到的博客1、twemproxy 简介、安装配置里的配置: 也是可以的,小伙伴可以自己试试,这种配置需要已经安装好keepalived了。 原文件里的配置还是挺多的,我们除了一个alpha留下以外,其他的都删掉就可以 我们可以看到,这里面除了最后的端口号需要修改,其他都不需要修改,所以就直接修改端口6379就可以。 如图: 如果出现: 就说明配置文件是正常,然而我的坑就是在这里,无论怎么尝试,执行测试后始终是: 这里需要做的就是; 我看到的博客里有2种启动命令,我试了一下都是可以拉起的twemproxy的进程的,命令如下: 来查看情况 需要回到redis的安装目录的bin目录下: 我的twemproxy和redis集群在一个主机下,执行: 奇迹发生了,又卡壳了 由 中间加了-c ,表明是访问redis集群,于是再次尝试
事件:开发的用于提供redis服务的程序需要访问redis,搭建redis集群后,需要用Twemproxy来分发对redis数据库的操作,所以经过5个小时的折腾,在测试环境安装Twemproxy的时候,也踩过一些坑,好在最终成功安装了,特此记录!
一、Twemproxy简介
Twemproxy通过引入一个代理层,可以将其后端的多台Redis或Memcached实例进行统一管理与分配,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached存储,有了Twemproxy,客户端不直接访问Redis服务器,而是通过twemproxy 代理中间件间接访问。
1、twemproxy 简介、安装配置
2、twemproxy安装与配置
3、Twemproxy 介绍与使用二、安装和配置
1、下载
2、解压4个安装包
mkdir twemproxy
将下载好的4个安装包传到Twemproxy目录下,然后解压:tar -zxvf autoconf-2.69.tar.gz tar -zxvf automake-1.16.2.tar.gz tar -zxvf libtool-1.5.26.tar.gz unzip twemproxy-master.zip
3、安装
1)这4个安装顺利不要乱,否则就会安装失败
2)安装的时候如果不是在root用户下安装的,建议和我一样新建安装目录,安装到指定的installs的目录下,如果是在非root用户下安装,就会出现如下错误:
cd /home/rdsclsr/twemproxy/autoconf-2.69 ./configure --prefix=/home/rdsclsr/twemproxy/autoconf-2.69/installs make && make install
②安装automakecd /home/rdsclsr/twemproxy/automake-1.16.2 ./configure --prefix=/home/rdsclsr/twemproxy/automake-1.16.2/installs make && make install
③安装libtoolcd /home/rdsclsr/twemproxy/libtool-1.5.26/libtool-1.5.26. ./configure --prefix=/home/rdsclsr/twemproxy/libtool-1.5.26./installs make && make install
④安装twemproxycd /home/rdsclsr/twemproxy/twemproxy-master autoreconf -ivf ./configure --prefix=/home/rdsclsr/twemproxy/twemproxy-master/installs make -j 2 make install
到这里4个就安装完啦~4、修改环境变量
vim ~/.bash_profile
#twemproxy PATH=$PATH:/home/rdsclsr/twemproxy/twemproxy-master/installs/sbin
source ~/.bash_profile
#twemproxy export PATH=$PATH:$HOME/bin:/usr/local/keepalived/sbin:/home/rdsclsr/twemproxy/twemproxy-master/installs/sbin
5、twemproxy的配置
cd /home/rdsclsr/twemproxy/twemproxy-master/installs mkdir run conf
复制配置文件到新建的conf目录cd /home/rdsclsr/twemproxy/twemproxy-master/installs/conf cp -r /home/rdsclsr/twemproxy/twemproxy-master/conf/* .
这里面只需要修改nutcracker.yml就可以,其他的两个不需要修改,所以就先复制一下nutcracker.yml然后修改cp nutcracker.yml nutcracker.yml.bak.fanhf.202004101917 vim nutcracker.yml
这个文件里的格式很重要,只要格式错了,就会报语法错,所以除了需要修改的地方,其他都不要动~
里面的各个字段的意思可自行百度了解,我这里就不做过多的解释了,“alpha”也是可以修改的~
我的redis集群里的端口是7000-7008,我配置了3个redis:alpha: listen: 127.0.0.1:22121 hash: fnv1a_64 distribution: ketama auto_eject_hosts: true redis: true server_retry_timeout: 2000 server_failure_limit: 1 servers: - 127.0.0.1:7000:1 - 127.0.0.1:7001:1 - 127.0.0.1:7002:1
其中22121是twemproxy的默认端口,配置完之后就可以测试配置是否正常,执行:cd /home/rdsclsr/twemproxy/twemproxy-master/installs/sbin nutcracker -t
nutcracker: configuration file ‘conf/nutcracker.yml’ syntax is ok
我踩的坑折腾了将近2个小时,又正好是周五,大家都走了,我还在苦逼的找原因,最终无果,就先回家了,已经饿过头了,回到家吃了饭,吃饭的时候也在想,配置文件各种配置我都试了,都不行,到底是什么原因,不死心接着找找有没有前车之鉴,果然功夫不负有心人,我找到了这篇博客遇到的同样的情况原文链接,也按照这个方法尝试了一下,果然解决了,开森开森~~cd /home/rdsclsr/twemproxy/twemproxy-master/installs cp -r ./conf/ ./sbin cd sbin ./nutcracker -t
这就出现了我期待已久的Ok啦~~
6、启动twemproxy
cd /home/rdsclsr/twemproxy/twemproxy-master/installs/sbin nutcracker -d -c /home/rdsclsr/twemproxy/twemproxy-master/installs/conf/nutcracker.yml -p /home/rdsclsr/twemproxy/twemproxy-master/installs/run/redisproxy.pid -o /home/rdsclsr/twemproxy/twemproxy-master/installs/run/redisproxy.log
或者执行kill 6448 cd /home/rdsclsr/twemproxy/twemproxy-master/installs/sbin nohup /home/rdsclsr/twemproxy/twemproxy-master/installs/sbin/nutcracker -c /home/rdsclsr/twemproxy/twemproxy-master/installs/conf/nutcracker.yml &
查看日志和进程:、
可以用: netstat -nltp | grep nutcracker
7、测试twemproxy
cd /home/rdsclsr/redis/redis-5.0.8/installs/bin
redis-cli -p 22121
于是我就去查了一下,参考了:解决办法 和最后面讲了分析 里面说需要加一个参数:redis-cli -p 22121
改为redis-cli -c -p 22121
里面有个Redirected是重定向到了7001的redis。
多次尝试:
进入到两另外3个redis节点上查看,发现已经有分片了,7001我就不放在这里了~
说明:本文中的后面这2张截图有的是用QQ截图的,有的是用微信截图的,所以箭头不太一样,我还是比较喜欢微信的箭头~~
终于写完了,一不小心又写了2个多小时,如果对你有帮助或者有疑问,记得留下足迹,欢迎评论和后再走~~
与君共勉!!!
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算