ວິທີການຕັ້ງ Cluster ແບບ Redis ໃນ CentOS 8 - Part 3


ກຸ່ມ Redis Cluster ແມ່ນຄຸນລັກສະນະທີ່ສ້າງຂື້ນໂດຍ Redis ເຊິ່ງສະ ໜັບ ສະ ໜູນ ການຮິບອັດ, ການ ຈຳ ລອງແບບອັດຕະໂນມັດແລະຄວາມພ້ອມສູງເຊິ່ງໄດ້ຖືກຈັດຕັ້ງປະຕິບັດຜ່ານມາໂດຍໃຊ້ Sentinels. ມັນຖືກອອກແບບມາເພື່ອຈຸດປະສົງໃຫຍ່ສອງຢ່າງ: ໜຶ່ງ ແມ່ນການແບ່ງປັນຊຸດຂໍ້ມູນຂອງທ່ານໂດຍອັດຕະໂນມັດໃນຫຼາຍໆເຫດການແລະອັນທີສອງແມ່ນໃຫ້ລະດັບຄວາມພ້ອມໃນລະຫວ່າງການແບ່ງປັນ, ເພື່ອ ດຳ ເນີນການຕໍ່ເມື່ອບາງກໍລະນີ (ໂດຍສະເພາະແມ່ບົດ) ລົ້ມເຫລວຫລືບໍ່ສາມາດສື່ສານກັບສ່ວນໃຫຍ່ຂອງ ຂໍ້ໃນກຸ່ມ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ກຸ່ມຢຸດເຊົາປະຕິບັດງານໃນກໍລະນີທີ່ມີຄວາມລົ້ມເຫຼວທີ່ໃຫຍ່ກວ່າ (ຕົວຢ່າງ: ເມື່ອເຫດການສ່ວນໃຫຍ່ບໍ່ສາມາດໃຊ້ໄດ້). ອີກຢ່າງ ໜຶ່ງ, ຖ້າແມ່ບົດແລະຂ້າໃຊ້ລົ້ມເຫລວໃນເວລາດຽວກັນ, ກຸ່ມບໍ່ສາມາດສືບຕໍ່ການ ດຳ ເນີນງານປົກກະຕິ (ເຖິງແມ່ນວ່າການເຮັດວຽກແມ່ນເພື່ອເພີ່ມຂໍ້ຫຼາຍຫລືສ້າງບ່ອນບໍ່ສະດວກໃນກຸ່ມ, ເພື່ອປ່ຽນຮູບແບບຂອງກຸ່ມໂດຍອັດຕະໂນມັດ).

ອີງຕາມເອກະສານກ່ຽວກັບກຸ່ມບ້ານແດງ, "ກຸ່ມນ້ອຍທີ່ສຸດ" ທີ່ເຮັດວຽກຕາມທີ່ຄາດວ່າຈະຕ້ອງມີຢ່າງ ໜ້ອຍ 3 ຂໍ້ແມ່ບົດ. ແຕ່ການຕິດຕັ້ງທີ່ ເໝາະ ສົມທີ່ສຸດ ສຳ ລັບການມີຄວາມສູງສູງຄວນມີຢ່າງ ໜ້ອຍ 6 ຂໍ້ທີ່ມີແມ່ບົດສາມຄົນແລະຂ້າໃຊ້ສາມຄົນ, ແຕ່ລະແມ່ບົດມີຂ້າທາດ.

ສິ່ງ ສຳ ຄັນ: Redis Cluster ຍັງມີຂໍ້ ຈຳ ກັດບາງຢ່າງທີ່ຂາດການສະ ໜັບ ສະ ໜູນ ສະພາບແວດລ້ອມຂອງ NATted ເຊັ່ນດຽວກັນກັບທີ່ IP address ຫຼືພອດ TCP ຖືກແກ້ໄຂຍົກຕົວຢ່າງຢູ່ພາຍໃຕ້ Docker. ນອກຈາກນັ້ນ, ບໍ່ແມ່ນທຸກໆຫ້ອງສະ ໝຸດ ລູກຄ້າສະ ໜັບ ສະ ໜູນ ມັນ.

ບົດຂຽນນີ້ສະແດງໃຫ້ເຫັນວິທີການຕັ້ງ Redis Cluster (ດ້ວຍ Cluster-Mode Disabled) ໃນ CentOS 8. ມັນລວມມີວິທີການຕິດຕັ້ງ Redis, ກຳ ນົດຂໍ້ມູນຂອງ cluster, ສ້າງ cluster ແລະທົດສອບຄວາມລົ້ມເຫຼວຂອງ cluster.

ໝາຍ ເຫດ: ສຳ ລັບ ຄຳ ແນະ ນຳ ນີ້, ພວກເຮົາຈະ ນຳ ໃຊ້ຕົວຢ່າງ Redis ທີ່ ໃໝ່/ຫວ່າງເພື່ອ ດຳ ເນີນການແບບ cluster. ຮູບແບບການແບ່ງກຸ່ມຈະບໍ່ເຮັດວຽກກັບການຕັ້ງຄ່າບາງຢ່າງທີ່ເຮັດໃນສອງ ຄຳ ແນະ ນຳ ທຳ ອິດຂອງ Redis Series ຂອງພວກເຮົາ, ໂດຍສະເພາະມັນຈະບໍ່ເຮັດວຽກໃນເວລາທີ່ການ ນຳ ໃຊ້ຕົວ ກຳ ນົດການ ກຳ ລັງຖືກ ນຳ ໃຊ້.

<

  • ເຊີເວີທີ່ມີການຕິດຕັ້ງ CentOS 8
  • Redis Master1: 10.42.0.247
    Redis Master2: 10.42.0.197
    Redis Master3: 10.42.0.132
    
    Redis Slave1: 10.42.0.200
    Redis Slave2: 10.42.0.21
    Redis Slave3: 10.42.0.34
    

    ການຕິດຕັ້ງຂອງພວກເຮົາມີ 3 ຫົວຂໍ້ການອ່ານ/ຂຽນແລະ 3 ຂໍ້ທີ່ເຮັດແບບທົດແທນທີ່ອ່ານເທົ່ານັ້ນ, ແຕ່ລະແມ່ບົດມີ ໜຶ່ງ ຕົວແທນ, ສະນັ້ນສາມ shards ມີຂໍ້ມູນທັງ ໝົດ ຂອງກຸ່ມໃນແຕ່ລະ node. ໂປແກຼມ ນຳ ໃຊ້ API ຫຼືລູກຄ້າ CLI ສາມາດຂຽນພຽງແຕ່ລະຫັດຂໍ້ມູນເທົ່ານັ້ນແຕ່ສາມາດອ່ານໄດ້ຈາກ node ໃນກຸ່ມ.

    ຂັ້ນຕອນທີ 1: ການຕິດຕັ້ງ Redis ໃສ່ທຸກໆ Nodes

    1. ເຂົ້າສູ່ລະບົບທຸກໆກໍລະນີຜ່ານ SSH, ຫຼັງຈາກນັ້ນ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອຕິດຕັ້ງໂມດູນ Redis ໂດຍໃຊ້ຕົວຈັດການຊຸດ DNF ດັ່ງທີ່ສະແດງ.

    # dnf module install redis
    

    2. ຕໍ່ໄປ, ເລີ່ມການບໍລິການ Redis, ຊ່ວຍໃຫ້ມັນເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໃນລະບົບບູດລະບົບແລະກວດເບິ່ງສະຖານະຂອງມັນເພື່ອກວດສອບວ່າມັນ ກຳ ລັງເຮັດວຽກຢູ່ (ກວດສອບບໍລິການທັງ ໝົດ 6 ຢ່າງ):

    # systemctl start redis
    # systemctl enable redis
    # systemctl status redis
    

    ຂັ້ນຕອນທີ 2: ການຕັ້ງຄ່າ Redis Instances ໃນທຸກໆ Nodes

    3. ພາກນີ້ອະທິບາຍວິທີການ ກຳ ນົດຂໍ້ມູນຂອງກຸ່ມ Redis cluster. ຈືຂໍ້ມູນການປະຕິບັດການຕັ້ງຄ່າຢູ່ທີ່ນີ້ທຸກໆຂໍ້.

    ໃຊ້ເອກະສານການຕັ້ງຄ່າ /etc/redis.conf ເພື່ອ ກຳ ຫນົດຄ່າເຊີຟເວີ Redis. ເປັນການປະຕິບັດທີ່ແນະ ນຳ, ສ້າງ ສຳ ຮອງຂອງເອກະສານຕົ້ນສະບັບກ່ອນທີ່ຈະດັດແກ້ມັນໂດຍໃຊ້ບັນນາທິການຕົວ ໜັງ ສື ຄຳ ສັ່ງທີ່ທ່ານເລືອກ.

    # cp /etc/redis.conf /etc/redis.conf.orig
    # vi /etc/redis.conf
    

    4. ຕໍ່ໄປ, ຊອກຫາຕົວ ກຳ ນົດການຕັ້ງຄ່າຕໍ່ໄປນີ້ແລະດັດແກ້ຄ່າຕ່າງໆຕາມທີ່ສະແດງໄວ້. ຕົວ ກຳ ນົດການຜູກມັດ ກຳ ນົດການໂຕ້ຕອບຂອງເຊີຟເວີ Redis ຈະຟັງ, ຕັ້ງຄ່າຂອງມັນໃຫ້ເປັນຕົວຢ່າງ LAN IP. ລົບອອກ 127.0.0.1 ເພາະວ່າພວກເຮົາຮູ້ວ່າປ່ອຍໃຫ້ມັນຢູ່ທີ່ນັ້ນເຮັດໃຫ້ຂັ້ນຕອນການສ້າງກະປາງຊ້າລົງ, ໂດຍສະເພາະແມ່ນຂັ້ນຕອນຂອງການເຂົ້າຮ່ວມກຸ່ມ.

    bind  10.42.0.247
    

    ຫຼັງຈາກນັ້ນ, ຕັ້ງຄ່າໂຫມດທີ່ຖືກປົກປ້ອງເປັນ ບໍ່ ເພື່ອອະນຸຍາດໃຫ້ເຊື່ອມຕໍ່ຈາກຕົວຢ່າງອື່ນໆທີ່ຢູ່ເທິງກຸ່ມ.

    protected-mode no
    

    ພາລາມິເຕີຂອງ port ກຳ ນົດ port ຂອງ server Redis ຈະຟັງ ສຳ ລັບການເຊື່ອມຕໍ່, ຄ່າເລີ່ມຕົ້ນແມ່ນ 6379. ນີ້ແມ່ນພອດຂໍ້ມູນ ສຳ ລັບການສື່ສານກັບລູກຄ້າ.

    port 6379
    

    5. ຕົວກໍານົດການຕໍ່ໄປຈະຊ່ວຍໃຫ້ຮູບແບບການແບ່ງກຸ່ມແລະຕັ້ງບາງຄຸນລັກສະນະທີ່ເປັນປະໂຫຍດ. ພາລາມິເຕີທີ່ເປີດໃຊ້ໂດຍກຸ່ມ, ເມື່ອຕັ້ງເປັນ ແມ່ນແລ້ວ , ຈະເປີດໃຊ້ໂຫມດ cluster.

    cluster-enabled yes
    

    ຕໍ່ໄປ, ພາລາມິເຕີ cluster-config-file ກຳ ນົດຊື່ຂອງເອກະສານການຕັ້ງຄ່າ cluster ຂອງ node (ເຊັ່ນ: ຂໍ້ ກຳ ນົດ-6379.conf). ໄຟລ໌ໄດ້ຖືກສ້າງຂື້ນໃນໄດເລກະທໍລີທີ່ເຮັດວຽກ (ຄ່າເລີ່ມຕົ້ນແມ່ນ/var/lib/redis ທີ່ຖືກ ກຳ ນົດໂດຍໃຊ້ພາລາມິເຕີ dir) ແລະບໍ່ສາມາດແກ້ໄຂໄດ້ໂດຍຜູ້ໃຊ້.

    cluster-config-file nodes-6379.conf
    

    ຕົວເລືອກ cluster ທີ່ມີປະໂຫຍດຕໍ່ໄປແມ່ນ cluster-node-timeout, ມັນຖືກໃຊ້ເພື່ອ ກຳ ນົດ ຈຳ ນວນເວລາສູງສຸດໃນ milliseconds ຕົວຢ່າງສາມາດໃຊ້ໄດ້ ສຳ ລັບມັນທີ່ຈະຖືກພິຈາລະນາໃນສະຖານະການລົ້ມເຫຼວ. ມູນຄ່າ 15000 ເທົ່າກັບ 15 ວິນາທີ.

    cluster-node-timeout 15000
    

    6. ພວກເຮົາຍັງຕ້ອງການເປີດໃຊ້ Redis ທົນນານຢູ່ໃນແຜ່ນ. ພວກເຮົາສາມາດ ນຳ ໃຊ້ ໜຶ່ງ ຮູບແບບການຄົງຕົວ, ນັ້ນແມ່ນເອກະສານຊ້ອນທ້າຍ (AOF): ມັນບັນທຶກ (ໃນເອກະສານເອກະສານຊ້ອນທ້າຍ. ສ້າງຢູ່ພາຍໃຕ້ລະບົບເຮັດວຽກ) ທຸກໆການປະຕິບັດການຂຽນທີ່ໄດ້ຮັບຢ່າງ ສຳ ເລັດຜົນໂດຍເຄື່ອງແມ່ຂ່າຍ. ຂໍ້ມູນຈະຖືກຫຼີ້ນໃນລະຫວ່າງການເລີ່ມຕົ້ນຂອງ server ເພື່ອສ້າງຖານຂໍ້ມູນ ໃໝ່.

    ເພື່ອເປີດໃຊ້ມັນ, ໃຫ້ ກຳ ນົດພາລາມິເຕີທີ່ເພີ່ມໃສ່ ແມ່ນແລ້ວ .

    appendonly yes
    

    7. ຫລັງຈາກເຮັດການປ່ຽນແປງທັງ ໝົດ, ໃຫ້ບໍລິການ Redis ຢູ່ທຸກໆຂໍ້ເພື່ອໃຊ້ການປ່ຽນແປງທີ່ຜ່ານມາ.

    # systemctl restart redis
    

    8. ໃນຈຸດນີ້, ທຸກໆຂໍ້ມູນຂອງກຸ່ມບ້ານຄວນມີບັດປະ ຈຳ ຕົວ. ທ່ານສາມາດກວດເບິ່ງສິ່ງນີ້ຢູ່ logfile ທີ່ຕັ້ງຢູ່ /var/log/redis/redis.log.

    # cat /var/log/redis/redis.log
    

    9. ຕໍ່ໄປ, ເປີດທີ່ Port 6397 ແລະ 16379 ໃນທຸກກໍລະນີ. ພອດຕໍ່ມາແມ່ນໃຊ້ ສຳ ລັບລົດເມກະປາງ (ຊ່ອງທາງການສື່ສານແບບ node-to-node ໂດຍໃຊ້ໂປໂຕຄອນ binary). ນີ້ແມ່ນຂໍ້ ກຳ ນົດພື້ນຖານ ສຳ ລັບການເຊື່ອມຕໍ່ TCP cluster TCP ຂອງກຸ່ມ Redis.

    # firewall-cmd --zone=public --permanent --add-port=6379/tcp 
    # firewall-cmd --zone=public --permanent --add-port=16379/tcp 
    # firewall-cmd --reload
    

    ຂັ້ນຕອນທີ 3: ການສ້າງກຸ່ມ Redis Cluster

    10. ເພື່ອສ້າງກຸ່ມບ້ານ, ໃຫ້ໃຊ້ລູກຄ້າ line--cli command-line ດັ່ງຕໍ່ໄປນີ້. ການສ້າງລະຫັດແບບ - ແບບສະບັບ ຊ່ວຍໃຫ້ມີການສ້າງກຸ່ມແລະ --cluster-replicas 1 ໝາຍ ຄວາມວ່າສ້າງແບບ ຈຳ ລອງ ໜຶ່ງ ຕໍ່ຕົ້ນ.

    ສຳ ລັບການຕິດຕັ້ງຂອງພວກເຮົາເຊິ່ງມີ 6 ຂໍ້, ພວກເຮົາຈະມີແມ່ບົດ 3 ຄົນແລະຂ້າໃຊ້ 3 ຄົນ.

    ໃຫ້ສັງເກດວ່າ 6 ຂໍ້ ທຳ ອິດຈະຖືກຖືວ່າເປັນແມ່ບົດ (M) ແລະສາມອັນຕໍ່ໄປຈະຖືກຖືວ່າເປັນທາດ (S) . ຂ້າໃຊ້ ທຳ ອິດ i.e 10.42.0.200:6379 ເຮັດຊ້ ຳ ກັບນາຍຕົ້ນສະບັບ i.e 10.42.0.247:6379, ຂ້າໃຊ້ຜູ້ທີສອງກໍ່ເຮັດຊ້ ຳ ກັບນາຍທີສອງ, ຕາມ ລຳ ດັບນັ້ນ.

    ຄຳ ສັ່ງຕໍ່ໄປນີ້ຖືກຈັດເຂົ້າໃນແບບທີ່ຜົນໄດ້ຮັບຈະເປັນຕົວແທນໃຫ້ມີການຕັ້ງຄ່າຢ່າງມີເຫດຜົນຂອງພວກເຮົາຂ້າງເທິງ.

    # redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1
    

    11. ເມື່ອການສ້າງ cluster ປະສົບຜົນ ສຳ ເລັດ, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ຕໍ່ກັບໂຮດໃດກໍ່ຕາມ (ລະບຸທີ່ຢູ່ IP ຂອງມັນໂດຍໃຊ້ -h ທຸງ) ເພື່ອລາຍຊື່ທຸກໆ cluster.

    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes
    

    ທ່ານຄວນຈະສາມາດເຫັນຂໍ້ຄຶດທັງ ໝົດ, ກັບພວກຂ້າທາດທີ່ຊີ້ບອກແມ່ບົດຂອງພວກເຂົາ, ດັ່ງທີ່ສະແດງຢູ່ໃນພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້.

    ທົ່ງນາທີ່ແຕກຕ່າງກັນແມ່ນຢູ່ໃນ ຄຳ ສັ່ງນີ້: ID ຂອງ node, ທີ່ຢູ່ IP: ພອດ, ທຸງ, ping ສຸດທ້າຍທີ່ຖືກສົ່ງ, ປອງສຸດທ້າຍທີ່ໄດ້ຮັບ, epoch ການຕັ້ງຄ່າ, link-state, slots (ສຳ ລັບແມ່ບົດ).

    ຂັ້ນຕອນທີ 4: ທົດສອບຄວາມລົ້ມເຫຼວຂອງ Redis Cluster

    12. ໃນພາກນີ້, ພວກເຮົາຈະສະແດງວິທີການທົດສອບຄວາມລົ້ມເຫຼວຂອງກຸ່ມ. ກ່ອນອື່ນ ໝົດ, ຈົ່ງຂຽນບັນທຶກກ່ຽວກັບອາຈານ.

    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master
    

    ນອກຈາກນີ້, ຈົ່ງສັງເກດບັນດາຂ້າທາດ Redis.

    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave
    

    13. ຕໍ່ໄປ, ໃຫ້ຢຸດບໍລິການ Redis ໃນ ໜຶ່ງ ຂອງຂໍ້ແມ່ບົດເຊັ່ນ: 10.42.0.197 ແລະກວດເບິ່ງແມ່ບົດທັງ ໝົດ ໃນກຸ່ມ.

    # systemctl stop redis
    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master
    

    ຈາກພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້, ທ່ານສາມາດເຫັນໄດ້ວ່າ node 10.42.0.197:6367 ແມ່ນຢູ່ໃນສະພາບລົ້ມເຫຼວແລະທາດຂອງມັນ 10.42.0.21:6379 ໄດ້ຖືກສົ່ງເສີມໃຫ້ເປັນສະຖານະພາບຕົ້ນສະບັບ.

    14. ຕອນນີ້ໃຫ້ເລີ່ມຕົ້ນບໍລິການ Redis ອີກເທື່ອ ໜຶ່ງ ໃນຂໍ້ທີ່ລົ້ມເຫລວແລະກວດເບິ່ງທຸກອາຈານທີ່ຢູ່ໃນກຸ່ມ.

    # systemctl start redis
    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master
    

    ພ້ອມກັນນີ້, ໃຫ້ກວດເບິ່ງບັນດາຂ້າທາດກຸ່ມບ້ານເພື່ອຢັ້ງຢືນວ່າດຽວນີ້ນາຍທີ່ລົ້ມເຫລວແມ່ນທາດ.

    # redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave
    

    ຂັ້ນຕອນທີ 5: ການທົດສອບການ ຈຳ ລອງຂໍ້ມູນໃນທົ່ວກຸ່ມ Redis Cluster

    15. ພາກສຸດທ້າຍນີ້ອະທິບາຍວິທີການກວດສອບການ ຈຳ ລອງຂໍ້ມູນກຸ່ມ. ພວກເຮົາຈະສ້າງກຸນແຈແລະຄຸນຄ່າໃຫ້ກັບ ໜຶ່ງ ໃນບັນດາແມ່ບົດ, ຫຼັງຈາກນັ້ນພະຍາຍາມທີ່ຈະອ່ານມັນຈາກທຸກໆກຸ່ມຂໍ້ມູນດັ່ງຕໍ່ໄປນີ້. ໃຊ້ປຸ່ມ -c ເພື່ອເປີດການສະ ໜັບ ສະ ໜູນ cluster ພາຍໃຕ້ຂໍ້ມູນຜົນປະໂຫຍດແລະການເຂົ້າເຖິງຂໍ້ມູນໃນຮູບແບບ cluster.

    # redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
    # redis-cli -c -h 10.42.0.247 -p 6379 get name
    # redis-cli -c -h 10.42.0.21 -p 6379 get name
    # redis-cli -c -h 10.42.0.132 -p 6379 get name
    # redis-cli -c -h 10.42.0.200 -p 6379 get name
    # redis-cli -c -h 10.42.0.197 -p 6379 get name
    # redis-cli -c -h 10.42.0.34 -p 6379 get name
    

    ເສັ້ນທາງລຸ່ມແມ່ນ Redis Cluster ແມ່ນວິທີທີ່ຕ້ອງການທີ່ຈະໄດ້ຮັບການແກະສະຫຼັກ, ການ ຈຳ ລອງແບບອັດຕະໂນມັດແລະການມີຄວາມພ້ອມສູງ. ມີຫລາຍຕົວ ກຳ ນົດການຕັ້ງຄ່າທີ່ຖືກບັນທຶກໄວ້ເປັນຢ່າງດີໃນສ່ວນທີ່ເຫຼືອຂອງເອກະສານ /etc/redis.conf, ທ່ານສາມາດຊອກຫາຂໍ້ມູນເພີ່ມເຕີມໃນເອກະສານທີ່ເປັນທາງການຄື: ການແນະ ນຳ ກ່ຽວກັບການສົນທະນາຂອງກຸ່ມ Redis ແລະການ ກຳ ນົດ cluster Redis.

    ນີ້ເຮັດໃຫ້ພວກເຮົາສິ້ນສຸດຂອງຊຸດ tutorial Redis ສາມສ່ວນ. ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ສາມາດໃຊ້ເພື່ອຕອບ ຄຳ ຖາມຫລື ຄຳ ເຫັນ.