哈尔滨服务好的建站方案,昆明短视频制作公司,深圳建设交易工程信息网,西湖区商城网站建设文章目录 一、概述二、Twemproxy 分布模式三、测试规划四、Redis 服务实例准备4.1 配置Redis实例4.2 创建关资源4.3 启动Redis服务实例 五、Twemproxy 安装准备六、Twemproxy 安装及集群配置6.1 安装 Twemproxy6.2 配置 Twemproxy6.3 启动 twemproxy6.4 测试 twemproxy 集群 如… 文章目录 一、概述二、Twemproxy 分布模式三、测试规划四、Redis 服务实例准备4.1 配置Redis实例4.2 创建关资源4.3 启动Redis服务实例 五、Twemproxy 安装准备六、Twemproxy 安装及集群配置6.1 安装 Twemproxy6.2 配置 Twemproxy6.3 启动 twemproxy6.4 测试 twemproxy 集群 如果您对Redis的了解不够深入请关注本栏目本栏目包括Redis安装Redis配置文件说明Redis命令和数据类型说明Redis持久化配置Redis主从复制和哨兵机制Redis Cluster集群配置Redis Predixy 集群。 一、概述 Twemproxy也称为nutcracker是一个开源的代理软件用于提供 Redis 或 Memcached 数据存储的负载均衡和高可用性。它是一种代理层允许客户端将请求发送到多个 Redis 或 Memcached 后端服务器并在多个节点之间进行负载均衡。它也是 Twitter 公司开发的并且已经成为 Redis 和 Memcached 社区中常见的工具之一。 我在前面讲过Redis Cluster 集群配置那么即然官方自带了 Redis Cluster 为什么还要使用 Twemproxy 呢因为 Twemproxy 还有 Redis Cluster 没有的功能如下 多种部署Redis Cluster 只支持一种特定的哈希分片架构而 Twemproxy 可以适用于多种部署拓扑。而且增加Redis群集后应用程序代码无需修改就连配置都不修改。动态的负载均衡根据实时的节点状态和负载情况Twemproxy 智能地将请求路由到最佳的 Redis 节点以实现负载均衡。读写分离Twemproxy 支持读写分离的配置。它可以将读操作路由到从节点以分担主节点的负载并提高读取性能。同时写操作仍然会路由到主节点以确保数据的一致性。 Twemproxy 与 Predixy 相比优点是更轻量级效率更高。但是社区活跃底较低文档相对较少。 开源地址https://github.com/twitter/twemproxy
二、Twemproxy 分布模式 Twemproxy 将请求路由到哪个后端服务器支持的分布模式有以下3种 ketama一致性哈希 这是默认和推荐的分布模式。它是一种基于一致性哈希算法的分布方式确保当增加或删除后端服务器时大部分请求仍能映射到正确的后端服务器。这有助于保持负载均衡并最小化数据的迁移。 modula模哈希 这是另一种分布模式它使用哈希运算中的模取余运算来选择后端服务器。它通常需要事先知道服务器的数量并根据此数量来计算哈希值。这种模式可能会导致负载分布不均匀特别是在添加或删除服务器时。 random随机选择 这个分布模式是基于随机选择后端服务器的方式。对于每个请求的每个键它将随机选择一个后端服务器。这可能导致负载分布不均匀不适合需要一定程度的负载均衡的情况。 一致性哈希ketama是最常用的分布模式因为它在添加或删除服务器时能够提供相对稳定的分布从而维持系统的可用性和负载均衡。其他模式可能适用于特定的使用案例但需要更仔细的配置和监控以确保负载均衡和性能。选择哪种分布模式通常会根据特定的应用程序需求和环境来决定。
三、测试规划
我这里在同一主机上开启2个Redis服务实例然后使用 Twemproxy 集群来测试示意图如下
四、Redis 服务实例准备
4.1 配置Redis实例 新建2个Redis配置文件用于配置2个Redis服务实例节点。分别为redis_6381.conf、redis_6382.conf。 redis_6381.conf
include redis.confport 6381
dir /var/lib/redis/6381
pidfile /var/run/redis_6381.pidsupervised no
daemonize no
logfile
appendonly noredis_6382.conf
include redis.confport 6382
dir /var/lib/redis/6382
pidfile /var/run/redis_6382.pidsupervised no
daemonize no
logfile
appendonly no4.2 创建关资源
mkdir -p /var/lib/redis/6381
mkdir -p /var/lib/redis/63824.3 启动Redis服务实例
启动2个Redis服务实例
redis-server redis_6381.conf
redis-server redis_6382.conf五、Twemproxy 安装准备 安装Epel软件仓库 官方地址https://developer.aliyun.com/mirror/ wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum clean all准备编译工具 yum install automake libtool -y升级autoreconf yum search autoconf
yum install autoconf268六、Twemproxy 安装及集群配置
6.1 安装 Twemproxy
在CentOS7及以上系统按顺序执行以下命令安装。安装过程如果使用 git 无法下载你可以先手动下载后拷贝到目标机器上。安装完成后生成的目标程序叫“nutcracker”后面配置都是使用“nutcracker”而不是“twemproxy”。
git clone https://github.com/twitter/twemproxy.git
cd twemproxy/
autoreconf -fvi # 如果使用autoreconf -fvi 报错则使用下面这个命令
#autoreconf268 -fvi ./configure --enable-debugfull
makemkdir /etc/nutcracker
cp conf/* /etc/nutcracker/
cp /etc/nutcracker/nutcracker.yml /etc/nutcracker/nutcracker.yml.bkcp src/nutcracker /usr/bin/# cp scripts/nutcracker.init /etc/init.d/nutcracker
# chmod ax /etc/init.d/nutcracker6.2 配置 Twemproxy
修改配置文件 nutcracker.yml
vi /etc/nutcracker/nutcracker.yml 内容如下
alpha:listen: 127.0.0.1:22121hash: fnv1a_64distribution: ketamaauto_eject_hosts: trueredis: trueserver_retry_timeout: 2000server_failure_limit: 1servers:- 127.0.0.1:6381:1- 127.0.0.1:6382:16.3 启动 twemproxy
nutcracker -d -c /etc/nutcracker/nutcracker.yml6.4 测试 twemproxy 集群
redis-cli -p 22121[rootyiqifu-centos conf]# redis-cli -p 22121 127.0.0.1:22121 set aaa 111 OK 127.0.0.1:22121 set bbb 222 OK 127.0.0.1:22121