成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何為雙活Redis Enterprise搭建基于Docker的開發環境?

譯文
數據庫 其他數據庫 開源 Redis
最近我們發布了一篇關于如何使用雙活Redis Enterprise來開發應用程序的教程。為了模擬生產環境,開發人員或測試人員需要一種小型化的開發環境,很容易用Docker來搭建。我們在本文中介紹創建基于Docker的Redis Enterprise集群的步驟,這一切通過命令行來完成。

【51CTO.com快譯】Redis Enterprise這種雙活數據庫是地域分布式應用程序的理想選擇。其架構基于無沖突復制數據類型(CRDT)方面是突破性的學術研究。這種方法與其他雙活數據庫相比具有許多優點,包括如下:

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來檢查內存。

Docker內存***項高級選項卡

圖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)。 

  1. #!/bin/bash  
  2. Delete the bridge networks if they already exist  
  3. docker network rm network1 2>/dev/null  
  4. docker network rm network2 2>/dev/null  
  5. docker network rm network3 2>/dev/null  
  6. Create new bridge networks  
  7. echo “Creating new subnets…”  
  8. docker network create network1 –subnet=172.18.0.0/16 –gateway=172.18.0.1  
  9. docker network create network2 –subnet=172.19.0.0/16 –gateway=172.19.0.1  
  10. docker network create network3 –subnet=172.20.0.0/16 –gateway=172.20.0.1  
  11. # Start 3 docker containers. Each container is a node in a separate network  
  12. # These commands pull redislabs/redis from the docker hub. Because of the  
  13. # port mapping rules, Redis Enterprise instances are available on ports  
  14. # 12000, 12002, 12004  
  15. echo “”  
  16. echo “Starting Redis Enterprise as Docker containers…”  
  17. 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  
  18. 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  
  19. 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  
  20. Connect the networks  
  21. docker network connect network2 rp1  
  22. docker network connect network3 rp1  
  23. docker network connect network1 rp2  
  24. docker network connect network3 rp2  
  25. docker network connect network1 rp3  
  26. docker network connect network2 rp3  
  27. # Sleep while the nodes start. Increase the sleep time if your nodes take  
  28. # longer than 60 seconds to start  
  29. echo “”  
  30. echo “Waiting for the servers to start…”  
  31. sleep 60  
  32. Create 3 Redis Enterprise clusters – one for each network. You can login to  
  33. # a cluster as https://localhost:8443/ (or 8445, 8447). The user name is  
  34. # r@r.com, password is password. Change the user  
  35. echo “”  
  36. echo “Creating clusters”  
  37. docker exec -it rp1 /opt/redislabs/bin/rladmin cluster create name cluster1.local username r@r.com password test  
  38. docker exec -it rp2 /opt/redislabs/bin/rladmin cluster create name cluster2.local username r@r.com password test  
  39. docker exec -it rp3 /opt/redislabs/bin/rladmin cluster create name cluster3.local username r@r.com password test  
  40. Create the CRDB  
  41. echo “”  
  42. echo “Creating a CRDB”  
  43. 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,需要應用程序的三個實例連接到三個不同的端口。比如: 

  1. $ redis-cli -p 12000  
  2. 127.0.0.1:12000> incr counter  
  3. (integer) 1  
  4. 127.0.0.1:12000> get counter  
  5. “1” 

 

3. 拆分網絡

拆分網絡可幫助你在Redis Enterprise副本之間引入“網絡分區”。你在設計應用程序時,必須設計成副本斷開連接后可以順暢運行。該腳本幫助你隔離三個副本。將該腳本保存在文件“split_networks.sh”中,并在運行之前更改模式,讓它成為可執行(chmod +x split_networks.sh)。 

  1. #!/bin/bash  
  2. docker network disconnect network2 rp1  
  3. docker network disconnect network3 rp1  
  4. docker network disconnect network1 rp2  
  5. docker network disconnect network3 rp2  
  6. docker network disconnect network1 rp3  
  7. docker network disconnect network2 rp3 

 

4. 恢復連接

你運行腳本“split_netorks.sh”后,本地副本會停止與其他副本共享數據庫更新。恢復連接將讓它們能夠交換所有更新,并獲得同樣的最終狀態,這歸功于Redis Enterprise提供了很強的最終一致性。下列腳本恢復副本之間的網絡連接。將這保存在文件“restore_networks.sh”中,并更改模式讓它成為可執行(chmod +x restore_networks.sh)。 

  1. #!/bin/bash  
  2. docker network connect network2 rp1  
  3. docker network connect network3 rp1  
  4. docker network connect network1 rp2  
  5. docker network connect network3 rp2  
  6. docker network connect network1 rp3  
  7. docker network connect network2 rp3 

 

5. 停止Redis Enterprise

完成開發和測試后,只要運行下列腳本,就可以終止Redis Enterprise的所有三個節點。將該文件保存在文件中,并將文件命名為“stop.sh”,更改模式,讓它成為可執行(chmod +x stop.sh)。 

  1. #!/bin/bash  
  2. docker stop rp1 rp2 rp3  
  3. docker rm rp1 rp2 rp3  
  4. docker network rm network1  
  5. docker network rm network2  
  6. docker network rm network3 

 

就是這樣。完成了上述步驟后,現在你有了自己的基于Docker的Redis Enterprise雙活數據庫環境。若有任何問題,歡迎留言交流。

原文標題:How to Set Up a Docker-based Development Environment for Active-Active Redis Enterprise,作者:Roshan Kumar 

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2016-03-02 09:50:09

docker測試環境

2015-01-04 09:49:37

PHPDocker開發環境

2016-11-03 09:49:04

2010-02-03 14:37:10

Python 開發環境

2022-06-24 10:11:15

DockerLinux

2010-09-07 17:27:54

Carbide.c++Symbian移動開發

2009-06-10 16:30:05

基于Eclipse的PWindows

2017-07-11 13:30:12

RedisDockerLinux

2016-09-08 16:04:59

JavaDocker前端

2009-07-03 16:56:37

JSP開發環境

2024-10-15 09:10:10

2014-02-14 11:42:32

VDI

2020-02-24 10:23:29

協作環境員工網絡

2023-04-07 08:28:14

2011-03-15 15:51:12

netfilteriptables

2016-08-16 13:44:28

AndroidLinuxADT

2015-01-05 14:16:16

DockerFig自動化容器編排

2020-03-06 09:58:54

IT融資技術

2013-07-23 06:11:44

Android開發學習Android開發環境Java

2015-12-30 13:58:00

DockerGit開發環境
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 小川阿佐美pgd-606在线 | 日韩欧美手机在线 | 国产日韩欧美电影 | 国产黄色在线观看 | 人人种亚洲| 欧美成人精品一区二区男人看 | 99影视 | 日本午夜在线视频 | 久久中文字幕一区 | 国产999精品久久久久久 | 国产亚洲一区精品 | 韩三级在线观看 | 亚洲高清电影 | 亚洲精品视频一区 | 中文字幕日韩欧美一区二区三区 | 91精品国产综合久久久久久丝袜 | 日韩欧美在线观看 | 国产一区91精品张津瑜 | 91色综合 | 久久亚洲一区二区 | 欧美精品在线一区二区三区 | 国产精品成人一区二区 | 日韩av网址在线观看 | 亚洲一区二区在线播放 | 亚洲成人午夜在线 | 欧美日本久久 | 久久在线精品 | 亚洲一区二区三区免费视频 | www.久久99| 亚洲国产精品日本 | 国产在线高清 | 久久在线 | 狠狠草视频| 国产99精品| 亚洲毛片在线 | 亚洲高清视频一区二区 | 亚洲欧美在线免费观看 | 久久精品国产99国产精品 | 中文字幕一二三 | av资源中文在线 | 97久久精品午夜一区二区 |