快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程安卓软件教程 → 基于Docker环境搭建双活Redis Enterprise

基于Docker环境搭建双活Redis Enterprise

时间:2020-02-27 11:54:30人气:作者:快盘下载我要评论

本文中介绍创建基于dockerredis Enterprise集群的步骤,这一切通过命令行来完成。下面大体介绍了整个过程。


安装数据库

1)创建一个3个节点的Redis Enterprise集群,每个节点在单独的子网上

2)创建基于CRDT的Redis Enterprise数据库

3)连接到三个不同的实例

验证安装的环境

拆分网络

恢复连接

停止Redis Enterprise

在开始之前,确保你已有一个bash shell,并为docker进程分配了足够的内存。你可以进入到Docker -> Preferences -> Advanced来检查内存。

基于Docker环境搭建双活Redis Enterprise

1. 安装数据库

下列脚本在3节点集群上创建基于CRDT的Redis Enterprise数据库。将其保存在文件中并为其命名,比如“create_3_node_cluster.sh”。然后将模式改成可执行(chmod + x create_3_node_cluster.sh),并运行脚本([path] /create_3_node_cluster.sh)。

#!/bin/bash  
# Delete the bridge networks if they already exist  
docker network rm network1 2>/dev/null  
docker network rm network2 2>/dev/null  
docker network rm network3 2>/dev/null  
# Create new bridge networks  
echo “Creating new subnets…”  
docker network create network1 –subnet=172.18.0.0/16 –gateway=172.18.0.1  
docker network create network2 –subnet=172.19.0.0/16 –gateway=172.19.0.1  
docker network create network3 –subnet=172.20.0.0/16 –gateway=172.20.0.1  
# Start 3 docker containers. Each container is a node in a separate network  
# These commands pull redislabs/redis from the docker hub. Because of the  
# port mapping rules, Redis Enterprise instances are available on ports  
# 12000, 12002, 12004  
echo “”  
echo “Starting Redis Enterprise as Docker containers…”  
docker run -d –cap-add sys_resource -h rp1 –name rp1 -p 8443:8443 -p 9443:9443 -p 12000:12000 –network=network1 –ip=172.18.0.2 redislabs/redis  
docker run -d –cap-add sys_resource -h rp2 –name rp2 -p 8445:8443 -p 9445:9443 -p 12002:12000 –network=network2 –ip=172.19.0.2 redislabs/redis  
docker run -d –cap-add sys_resource -h rp3 –name rp3 -p 8447:8443 -p 9447:9443 -p 12004:12000 –network=network3 –ip=172.20.0.2 redislabs/redis  
# Connect the networks  
docker network connect network2 rp1  
docker network connect network3 rp1  
docker network connect network1 rp2  
docker network connect network3 rp2  
docker network connect network1 rp3  
docker network connect network2 rp3  
# Sleep while the nodes start. Increase the sleep time if your nodes take  
# longer than 60 seconds to start  
echo “”  
echo “Waiting for the servers to start…”  
sleep 60  
# Create 3 Redis Enterprise clusters – one for each network. You can login to  
# a cluster as https://localhost:8443/ (or 8445, 8447). The user name is  
# r@r.com, password is password. Change the user  
echo “”  
echo “Creating clusters”  
docker exec -it rp1 /opt/redislabs/bin/rladmin cluster create name cluster1.local username r@r.com password test  
docker exec -it rp2 /opt/redislabs/bin/rladmin cluster create name cluster2.local username r@r.com password test  
docker exec -it rp3 /opt/redislabs/bin/rladmin cluster create name cluster3.local username r@r.com password test  
# Create the CRDB  
echo “”  
echo “Creating a CRDB”  
docker exec -it rp1 /opt/redislabs/bin/crdb-cli crdb create –name mycrdb –memory-size 512mb –port 12000 –replication false –shards-count 1 –instance fqdn=cluster1.local,username=r@r.com,password=test –instance fqdn=cluster2.local,username=r@r.com,password=test –instance fqdn=cluster3.local,username=r@r.com,password=test

2. 验证安装的环境

在端口12000、12002和12004上运行redis-cli,验证你可以连接到所有三个Redis Enterprise端口。如果你将应用程序连接到Redis Enterprise,需要应用程序的三个实例连接到三个不同的端口。比如:

$ redis-cli -p 12000  
127.0.0.1:12000> incr counter  
(integer) 1  
127.0.0.1:12000> get counter  
“1”

3. 拆分网络

拆分网络可帮助你在Redis Enterprise副本之间引入“网络分区”。你在设计应用程序时,必须设计成副本断开连接后可以顺畅运行。该脚本帮助你隔离三个副本。将该脚本保存在文件“split_networks.sh”中,并在运行之前更改模式,让它成为可执行(chmod +x split_networks.sh)。

#!/bin/bash  
docker network disconnect network2 rp1  
docker network disconnect network3 rp1  
docker network disconnect network1 rp2  
docker network disconnect network3 rp2  
docker network disconnect network1 rp3  
docker network disconnect network2 rp3

4. 恢复连接

你运行脚本“split_netorks.sh”后,本地副本会停止与其他副本共享数据库更新。恢复连接将让它们能够交换所有更新,并获得同样的最终状态,这归功于Redis Enterprise提供了很强的最终一致性。下列脚本恢复副本之间的网络连接。将这保存在文件“restore_networks.sh”中,并更改模式让它成为可执行(chmod +x restore_networks.sh)。

#!/bin/bash  
docker network connect network2 rp1  
docker network connect network3 rp1  
docker network connect network1 rp2  
docker network connect network3 rp2  
docker network connect network1 rp3  
docker network connect network2 rp3

5. 停止Redis Enterprise

完成开发和测试后,只要运行下列脚本,就可以终止Redis Enterprise的所有三个节点。将该文件保存在文件中,并将文件命名为“stop.sh”,更改模式,让它成为可执行(chmod +x stop.sh)。

#!/bin/bash  
docker stop rp1 rp2 rp3  
docker rm rp1 rp2 rp3  
docker network rm network1  
docker network rm network2  
docker network rm network3

就是这样。完成了上述步骤后,现在你有了自己的基于Docker的Redis Enterprise双活数据库环境。

相关文章

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。