0
点赞
收藏
分享

微信扫一扫

Twemproxy安装配置与使用

Xin_So 2022-07-12 阅读 97


引言

Twemproxy是一个由twitter开源的一个服务于redis和memcache的代理服务器,其减少了和缓存服务器直接连接的用户数量,其基本思想就是对用户的key进行哈希以后放入不同的redis集群,这样可以在一定程度上增加写的性能,解决了主从复制中写瓶颈的问题,但这也带来了一些问题,比如数据在多个集群之间是互相不可见的,那么如果一个集群挂了,数据虽然没有丢失(取决于redis中AOF的级别),但是只能再重新启动后才能再得到这些数据.而且集群中也没办法换master,因为Twemproxy在启动时以及在配置文件中写了用户的请求要往哪些服务器发,没办法在运行时更改.就算重新启动加一些集群进去,也有丢失key值的危险.所以从容错上来说其实也是有问题的.详细可看这里

安装

automake-1.16.tar.gz 包下载地址:http://ftp.gnu.org/gnu/automake/

autoconf-2.69.tar.gz 包下载地址:http://ftp.gnu.org/gnu/autoconf

libtool-2.4.5.tar.gz 包下载地址:http://ftp.gnu.org/gnu/libtool/

twemproxy-master.zip 包下载地址:https://github.com/twitter/twemproxy/tree/master

因为我们在解压了twemproxy-master.zip包以后其中的configure和makefile并不是直接可以使用的,其带.ac和.am后缀,我们得下载一些工具才可以使用,命令如下:

当然版本看自己了,上面的版本经测试(deepin 15.7),没有问题,automake-1.15我在install的时候出现了编译问题,可能是我机器的问题吧.

tar xf autoconf-2.69.tar.gz
进入解压目录
./configure --prefix=/usr
make && make install

tar xf automake-1.16.tar.gz
进入解压目录
./configure --prefix=/usr
make && make install

tar xf libtool-2.4.5.tar.gz
进入解压目录
./configure --prefix=/usr
make && make install

unzip twemproxy-master.zip
进入解压目录
aclocal //生成aclocal.m4
autoconf //生成configure
mkdir config //会把配置放进去
autoheader
libtoolize
automake -a
./configure
make && make install

这个时候我们就算是安装上了Twemproxy.

配置

我们直接在当前目录,也就是解压的那个目录中创建.yml文件

vim nutcracker.随便一个名字.yml

然后我们就可以在其中写配置了

sxt:                                                                                                                                 
listen: 127.0.0.1:22121 //Twemproxy的IP与端口
hash: fnv1a_64 //hash函数的名字
distribution: ketama //数据分配方式
auto_eject_hosts: true //当连接一个server失败次数超过server_failure_limit时是否放弃连接
redis: true

当然这只是简单的配置,更多的配置参数见这里->传送门

使用

在使用Twemproxy时我们必须要保证所代理的结点已经启动.我们可以启动三个终端分别启动redis.
我们可以执行如下命令

/在三个终端分别执行
redis-server --port 6379
redis-server --port 6380
redis-server --port 6381

此时我们可以使用如下命令看看以上服务是否已经开启

ss -tanl

Twemproxy安装配置与使用_服务器


我们可以看到三个服务器已经启动,我们此时最好在用客户端分别连接这三个服务器一次,简单测试是否是slave节点,有可能前面使用这些端口进行过主从复制.只需要在客户端执行写操作就可以了,因为slave中数据是只读的.

如下

lizhaolong@lizhaolong-PC~/Desktop: redis-cli -p 6379       
127.0.0.1:6379> set key hello
OK
127.0.0.1:6379> exit
lizhaolong@lizhaolong-PC~/Desktop: redis-cli -p 6380
127.0.0.1:6380> set key hello
(error) READONLY You can't write against a read only slave.
127.0.0.1:6380> SLAVEOF NO ONE //将服务器恢复至master
OK
127.0.0.1:6380> exit
lizhaolong@lizhaolong-PC~/Desktop: redis-cli -p 6381
127.0.0.1:6381> set key hello
OK
127.0.0.1:6381> exit

准备工作完毕,这下我们就可以进入到正题,启动Twemproxy了.

cd /usr/local/sbin //就是nutcracker默认安装的路径 在安装Twemproxy的信息中可以找到
sudo su

Twemproxy安装配置与使用_redis_02


我们看到已经启动

再执行​​ss -tanl​​ 看看端口情况,我们指定的Twemproxy的端口22121已经处于监听状态了.

Twemproxy安装配置与使用_redis_03

这个时候我们要做的就是启动一个redis客户端尝试使用

Twemproxy安装配置与使用_服务器_04

大功告成!

这里值得一提的是有一些命令其实是不支持的,会报如下错误

Error: Server closed the connection

同时在执行​​nutcracker​​的终端也会发现报错的日志信息

Twemproxy安装配置与使用_服务器_05

那么哪些命令不支持呢?原来早有先人为我们铺好了路,这里列举的很详细.


举报

相关推荐

0 条评论