IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【手把手】教你搭建Redis代理分片机制Predixy -> 正文阅读

[系统运维]【手把手】教你搭建Redis代理分片机制Predixy

0、安装前环境准备

① 本篇是基于Linux操作系统中的安装,故先准备一个干净的Linux操作系统,本文中所有的操作基于CentOS8进行安装演示;

② 接下来的演示文本中,红色字体为操作步骤,黑色字体为解释说明。

③ Predixy和Twemproxy不一样的是,Predixy不建议自己去编译。根据Github README.md上面的介绍,其实编译的过程并不复杂,但是里面有提到一项说明:

?

需要C++11版本的编译器,如果CentOS的版本不够高的话,比如说CentOS6/7(7的话不是很确定,盲猜),系统自带的编辑器是不达标的。如果想把这个编译器版本补全的话,得费老大劲儿了。所以,还是建议直接下载已经编译好的(当然如果你懂,并且你愿意去折腾的话,玩一玩也行。只是对于一般人来说,我建议你直接下载已经编译完了就可以了)。

1、进入到本地Predixy目录,从Github下载Predixy

cd /usr/local/source/

mkdir predixy

cd predixy/

?

?进入Predixy在Github上的地址(Releases · joyieldInc/predixy · GitHub),复制下载地址

?

使用wget从Github上下载Predixy至本地

2、将Predixy进行解压缩?

tar -zxvf predixy-1.0.5-bin-amd64-linux.tar.gz

?bin 目录下是 predixy 的可执行程序,conf 目录下是 predixy 的配置文件

3、仔细阅读Github上面README.md说明

predixy对于中国人还是比较友好的,连中文文档都已经帮你准备好了,翻译都省了

predixy不仅支持Sentinel,还有Group的概念:如果predixy代理层后面只有一台主机和几台备机,其实从严格意义上来说,只能算是单实例的,也就是说所有的数据都压在这一台主机身上。但是Sentinel是可以监控两套主从的,可以监控两台主机,这两台主机就是相当于Group里面的两台机器。使用Group以后,经过代理层来的数据,代理层可以通过指定的算法将数据打散到两套集群里,和Sentinel可以监控两套主机一样,Group也可以对两套主机进行数据分发。而且predixy还支持Sentinel,前一篇中介绍的twemproxy不支持Sentinel。

4、修改predixy.conf配置文件?

cd /usr/local/source/predixy/predixy-1.0.5/conf/

vim predixy.conf

predixy配置文件完美地继承了Redis配置文件的写法,自描述式的写法,每一个选项都给你解释的清清楚楚。

① 解除 Bind 127.0.0.1:7617 前的注释

② 导入Sentinel配置文件

?虽然predixy支持Sentinel和Cluster来使用Redis,但一个配置里这两种形式只能出现一种。

5、修改sentinel.conf配置文件

vim sentinel.conf

在配置文件中我们准备三台Sentinel,这三台Sentinel是一个集群,可以监控一套主从复制,也可以同时监控多套主从复制。在Group里面,分组的名字就是Sentinel配置文件当中监控的主从的master的逻辑名称。

6、修改Sentinel配置文件,并启动Sentinel服务

cd test/

vim 26379.conf

端口号为26379的哨兵,它需要监控36379的master和46379的master。36379的master对应的从机是36380,46379的master对应的从机是46380。

vim 26380.conf

vim 26381.conf

redis-server 26379.conf --sentinel

redis-server 26380.conf --sentinel

?redis-server 26381.conf --sentinel

7、启动两套Redis主从复制集群

此次演示两台master主机和两台从机都是为了显示效果临时启动,所以我会在当前目录下建4个文件夹,分别用来存放两台主机和两台从机的数据(因为当Redis启动的时候,如果没有指定配置文件,Redis会默认将数据序列化到当前的目录下)。

mkdir 36379(第1套集群中主机的端口)

mkdir 36380(第1套集群中从机的端口)

mkdir 46379(第2套集群中主机的端口)

mkdir 46380(第2套集群中从机的端口)

启动第1套集群中的主机服务:

cd test/36379/

redis-server --port 36379

启动第1套集群中的从机服务:

cd test/36380/

redis-server --port 36380 --replicaof 127.0.0.1 36379

启动第2套集群中的主机服务:

cd test/46379/

redis-server --port 46379

启动第2套集群中的从机服务:

cd test/46380/

redis-server --port 46380 --replicaof 127.0.0.1 46379

8、启动predixy代理服务

cd /usr/local/source/predixy/predixy-1.0.5/bin/

./predixy ../conf/predixy.conf

9、客户端连接predixy代理

redis-cli -p 7617

一些基本的操作都没有问题,很正常

?分别连接36379和46379看一看数据的存储情况

这次的数据分配的倒是比较平均,36379里有3条数据,46379里面也有3条数据。

除此之外还可以用特定的占位符来设置数据

这两台数据都会发送到46379,通过特殊的符号添加在key中,就可以人为的将数据发送到指定的机器中。我们现在再来分析一波predixy代理所存在的问题:

和twemproxy代理一样,不支持watch,不支持multi事务

现在在这个代理后面是两套主从集群,是分置的,所以predixy默认直接就不支持,这个做的没有Redis自带的集群好用,在Redis自带的集群当中,是可以实现这些操作。

10、配置predixy支持事务

cd ../conf/

vim sentinel.conf

修改predixy的sentinel.conf配置文件,删除xxoo这个Group,?那么之后所有客户端操作的数据都只会往ooxx这一个集群里面去怼。

cd ../bin/

./predixy ../conf/predixy.conf

再开启predixy代理服务之后,只会去管ooxx这一套集群,也就是36379这套集群。在只有一套集群的情况下,predixy是允许使用multi的操作。

?并且因为只配了一套集群,所以无论怎么操作数据都最终只会在36379这一套集群中。

同样的36379作为主机宕机之后,在Sentinel的监控下36380年会变成主机接管,不影响predixy的代理分配。

36379已经宕机,但是依然可以从7617代理get出k9

?其实代理就是解耦后端的复杂度,对于客户端来说,无论后端的技术多么复杂也好,都是透明的,不影响客户端的使用,对于纯使用的客户端来说非常的踏实,客户端不需要关心那些复杂的后端技术。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-02 15:13:35  更:2021-10-02 15:14:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:24:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码