麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
753
2023-05-08
如何为双活Redis Enterprise搭建基于Docker的开发环境?
1. 为读写操作提供本地延迟
2. 为简单和复杂的数据类型提供内置的冲突解决方案
3. 跨区域故障切换
4. 简化实施了诸多用例,比如积分榜、分布式缓存、共享会话和多用户计费等。
最近我们发布了一篇关于如何使用双活Redis Enterprise来开发应用程序的教程。为了模拟生产环境,开发人员或测试人员需要一种小型化的开发环境,很容易用Docker来搭建。
Redis Enterprise在Docker hub上以redislabs/redis的形式存在,我们已经在Redis Enterprise说明文档页面和docker hub本身上介绍了如何在Docker上搭建Redis Enterprise的详细逐步说明。
我们在本文中介绍创建基于Docker的Redis Enterprise集群的步骤,这一切通过命令行来完成。下面大体介绍了整个过程(更多详细信息如下):
1. 安装数据库
1)创建一个3个节点的Redis Enterprise集群,每个节点在单独的子网上
2)创建基于CRDT的Redis Enterprise数据库
3)连接到三个不同的实例
2. 验证安装的环境
3. 拆分网络
4. 恢复连接
5. 停止Redis Enterprise
在开始之前,确保你已有一个bash shell,并为docker进程分配了足够的内存。你可以进入到Docker -> Preferences -> Advanced来检查内存。
图1:Docker内存***项高级选项卡
1. 安装数据库
下列脚本在3节点集群上创建基于CRDT的Redis Enterprise数据库。将其保存在文件中并为其命名,比如“create_3_node_cluster.sh”。然后将模式改成可执行(chmod + x create_3_node_cluster.sh),并运行脚本([path] /create_3_node_cluster.sh)。
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双活数据库环境。若有任何问题,欢迎留言交流。
原文标题:How to Set Up a Docker-based Development Environment for Active-Active Redis Enterprise,作者:Roshan Kumar
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。