还是一样,先参考https://www.cnblogs.com/gabin/p/13652357.html创建一个docker下的ubuntu16实例
在这个实例下进行试验,
twemproxy参考:http://redis.cn/topics/partitioning.html
一、进入github源码,https://github.com/twitter/twemproxy
二、根据描述进行build
三、开始上述步骤
1、git clone源码下来(git要先安装),由于这边要求git协议的登录验证,所以我用的是https
git clone https://github.com/twitter/twemproxy.git
2、进入源码目录
cd twemproxy
3、进行配置,发现没有autoreconf命令,使用apt search autoreconf,进行安装,这个自己学着搞
autoreconf -fvi
./configure --enable-debug=full
4、执行完发现有了Makefile,执行编译
make
四、安装service服务
0、生成一些对应目录
mkdir /opt/nutcracker mkdir /opt/nutcracker/log mkdir /opt/nutcracker/etc mkdir /opt/nutcracker/sbin
1、拷贝可执行文件到/usr/bin (如果没有执行权限自行添加chmod +x )
cp src/nutcracker /usr/bin
2、从源码拷贝init文件,这边是debian系列,所以拷的这个 (如果没有执行权限自行添加chmod +x )
cp scripts/nutcracker.init.debian /etc/init.d/nutcracker
3、拷贝配置文件
mkdir /opt/nutcracker/etc
cp conf/* /opt/nutcracker/etc
4、拷贝可执行文件到对应的配置目录
cp /src/nutcracker /opt/nutcracker/sbin
五、修改配置文件
vim /opt/nutcracker/etc/nutcracker.yml
listen:监听的端口,通过这个端口来进行redis客户端连接
hash:哈希函数
distribution:分区模式,ketama表示的是一致性哈希算法
redis:总是true
servers:实际的redis节点
六、在实际启动配置文件中的redis服务之后,启动twemproxy
- 发现报错,原因是docker中不能进行ulimit扩大的操作,
注释掉对应文件中的命令
- chown报错:把$USER:$USER都改成$USER,参考vim命令
:s/$USER:$USER/$USER/g
- log目录没有权限报错:给/opt/nutcracker/log赋予权限:这边我比较不严谨直接
chmod 777 /opt/nutcracker/log
七、重新启动
service nutcracker start
成功
八、用redis-cli登录代理端口
redis-cli -p 22121
九、测试指令(有些指令能用,有些不能,和集群有一定关系,因为无法确认位置)
最后吐槽下ubuntu debian系的真的烦,看到别人centos安装起来很简单,无奈之前公司都是用ubuntu比较多,下次尝试下centos