ວິທີການຕັ້ງຄ່າ Redis ເພື່ອໃຫ້ມີຄວາມພ້ອມສູງກັບ Sentinel ໃນ CentOS 8 - ພາກ 2


Redis ໃຫ້ຄວາມພ້ອມສູງຜ່ານລະບົບແຈກຢາຍ Redis Sentinel. Sentinel ຊ່ວຍໃນການກວດສອບ Redis instances, ກວດພົບຄວາມລົ້ມເຫລວແລະຈະເຮັດ ໜ້າ ທີ່ສະຫຼັບສັບຊ້ອນໂດຍອັດຕະໂນມັດດັ່ງນັ້ນຈຶ່ງເຮັດໃຫ້ການປະຕິບັດການ Redis ສາມາດຕ້ານທານກັບຄວາມລົ້ມເຫລວໃດໆ.

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

ບົດຂຽນນີ້ສະແດງໃຫ້ເຫັນວິທີການຕັ້ງ Redis ເພື່ອໃຫ້ມີຄວາມພ້ອມສູງກັບ Redis Sentinel ໃນ CentOS 8, ລວມທັງການຕັ້ງຄ່າສົ່ງ, ກວດເບິ່ງສະຖານະການຕັ້ງຄ່າແລະທົດສອບຄວາມລົ້ມເຫລວຂອງ Sentinel.

<

  • ວິທີການຕັ້ງຄ່າການ ຈຳ ໜ່າຍ ແບບທົດແທນ (ກັບແບບພິເສດແບບ Cluster-mode) ໃນ CentOS 8 - ພາກທີ 1
  • Master Server and Sentinel1: 10.42.0.247
    Redis Replica1 and Sentinel2: 10.42.0.21
    Redis Replica2 and Sentinel3: 10.42.0.34
    

    ອີງຕາມເອກະສານ Redis Sentinel, ຫນຶ່ງຕ້ອງການຢ່າງຫນ້ອຍສາມຕົວຢ່າງຂອງ Sentinel ເພື່ອການປະຕິບັດງານທີ່ເຂັ້ມແຂງ. ພິຈາລະນາການຕັ້ງຄ່າຂອງພວກເຮົາຂ້າງເທິງ, ຖ້າຫາກວ່າແມ່ບົດລົ້ມເຫລວ, Sentinels2 ແລະ Sentinel3 ຈະຕົກລົງເຫັນດີກ່ຽວກັບຄວາມລົ້ມເຫລວແລະຈະສາມາດອະນຸຍາດການລົ້ມເຫລວ, ເຮັດໃຫ້ການ ດຳ ເນີນງານຂອງລູກຄ້າສາມາດ ດຳ ເນີນຕໍ່ໄປ.

    ຂັ້ນຕອນທີ 1: ເລີ່ມຕົ້ນແລະເປີດໃຊ້ບໍລິການ Redis Sentinel

    1. ໃນ CentOS 8, ບໍລິການ Redis Sentinel ຖືກຕິດຕັ້ງຢູ່ຄຽງຄູ່ກັບເຊີຟເວີ Redis (ເຊິ່ງພວກເຮົາໄດ້ເຮັດແລ້ວໃນ Redis Replication Setup).

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

    # systemctl start redis-sentinel
    # systemctl enable redis-sentinel
    # systemctl status redis-sentinel
    

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

    2. ໃນພາກນີ້, ພວກເຮົາອະທິບາຍວິທີການຕັ້ງຄ່າ Sentinel ໃນທຸກໆຂໍ້ຂອງພວກເຮົາ. ບໍລິການ Sentinel ມີຮູບແບບການຕັ້ງຄ່າຄ້າຍຄືກັບເຊີຟເວີ Redis. ເພື່ອ ກຳ ຫນົດຄ່າມັນ, ໃຫ້ໃຊ້ເອກະສານການຕັ້ງຄ່າເອກະສານ /etc/redis-sentinel.conf.

    ກ່ອນອື່ນ ໝົດ, ສ້າງ ສຳ ຮອງຂອງເອກະສານຕົ້ນສະບັບແລະເປີດມັນເພື່ອດັດແກ້.

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

    3. ໂດຍຄ່າເລີ່ມຕົ້ນ, Sentinel ຟັງລາຍການທີ່ Port 26379, ກວດສອບນີ້ໃນທຸກໆກໍລະນີ. ໃຫ້ສັງເກດວ່າທ່ານຕ້ອງອອກຈາກພາລາມິເຕີຜູກມັດທີ່ອອກ ຄຳ ເຫັນອອກ (ຫລືຕັ້ງເປັນ 0.0.0.0).

    port 26379
    

    4. ຕໍ່ໄປ, ບອກ Sentinel ໃຫ້ຕິດຕາມນາຍຂອງພວກເຮົາ, ແລະພິຈາລະນາມັນຢູ່ໃນ "ຈຸດປະສົງລົງ" ຂອງລັດເທົ່ານັ້ນຖ້າວ່າຢ່າງ ໜ້ອຍ 2 ຄົນທີ່ຖືກສົ່ງໄປໃນກຸ່ມໂຄສະນາຕົກລົງ. ທ່ານສາມາດປ່ຽນແທນ“ ຜູ້ຄຸ້ມຄອງລະບົບ” ດ້ວຍຊື່ທີ່ ກຳ ນົດເອງ.

    #On Master Server and Sentinel1
    sentinel monitor mymaster 127.0.0.1 6379 2
    
    #On Replica1 and Sentinel2
    sentinel monitor mymaster 10.42.0.247 6379 2
    
    #On Replica1 and Sentinel3
    sentinel monitor mymaster 10.42.0.247 6379 2
    

    ສິ່ງທີ່ ສຳ ຄັນ: ຖະແຫຼງການຕິດຕາມກວດກາຜູ້ສົ່ງຕໍ່ຕ້ອງຖືກວາງໄວ້ກ່ອນ ຄຳ ຖະແຫຼງທີ່ຖືກສົ່ງຜ່ານເພື່ອໃຫ້ຫຼີກລ່ຽງຄວາມຜິດພາດທີ່ວ່າ "ບໍ່ມີນາຍຕົ້ນທີ່ມີຊື່ທີ່ລະບຸ." ເມື່ອເລີ່ມຕົ້ນບໍລິການ sentinel.

    5. ຖ້າ Redis master ເພື່ອຕິດຕາມກວດກາມີການຕັ້ງລະຫັດຜ່ານ (ໃນກໍລະນີຂອງພວກເຮົາທີ່ນາຍຈ້າງມີ), ໃຫ້ລະຫັດລັບເພື່ອໃຫ້ຕົວຢ່າງ Sentinel ສາມາດກວດສອບກັບຕົວຢ່າງທີ່ຖືກປົກປ້ອງ.

     
    sentinel auth-pass mymaster [email 
    

    6. ຫຼັງຈາກນັ້ນ, ກຳ ນົດ ຈຳ ນວນ milliseconds ຕົ້ນສະບັບ (ຫຼື ສຳ ເນົາໃດ ໜຶ່ງ ທີ່ຖືກຄັດຕິດຫຼືສົ່ງຂຶ້ນມາ) ຄວນຈະບໍ່ສາມາດເຂົ້າເຖິງໄດ້ເພື່ອພິຈາລະນາມັນຢູ່ໃນສະຖານະ "ຫົວຂໍ້ລົງ".

    ການຕັ້ງຄ່າຕໍ່ໄປນີ້ ໝາຍ ຄວາມວ່າແມ່ບົດຈະຖືກພິຈາລະນາວ່າຈະລົ້ມເຫລວໃນທັນທີທີ່ພວກເຮົາບໍ່ໄດ້ຮັບການຕອບຮັບຈາກ pings ຂອງພວກເຮົາພາຍໃນ 5 ວິນາທີ (1 ວິນາທີເທົ່າກັບ 1000 milliseconds).

    sentinel down-after-milliseconds mymaster 5000
    

    7. ຕໍ່ໄປ, ກຳ ນົດເວລາ ໝົດ ເວລາເປັນລ້ານວິນາທີເຊິ່ງ ກຳ ນົດຫລາຍສິ່ງ (ອ່ານເອກະສານຂອງພາລາມິເຕີໃນເອກະສານການຕັ້ງຄ່າ).

    sentinel failover-timeout mymaster 180000
    

    8. ຫຼັງຈາກນັ້ນ, ກຳ ນົດ ຈຳ ນວນຮູບແບບ ຈຳ ລອງທີ່ສາມາດ ກຳ ນົດຄືນ ໃໝ່ ເພື່ອ ນຳ ໃຊ້ແມ່ບົດ ໃໝ່ ຫຼັງຈາກທີ່ປະສົບຜົນ ສຳ ເລັດໃນເວລາດຽວກັນ. ເນື່ອງຈາກວ່າພວກເຮົາມີສອງແບບ ຈຳ ລອງ, ພວກເຮົາຈະຕັ້ງແບບ ຈຳ ລອງແບບ ໜຶ່ງ ເຊັ່ນວ່າອີກຊຸດ ໜຶ່ງ ຈະຖືກສົ່ງເສີມໃຫ້ເປັນນາຍຊ່າງ ໃໝ່.

    sentinel parallel-syncs mymaster 1
    

    ໃຫ້ສັງເກດວ່າເອກະສານການຕັ້ງຄ່າໃນ Redis Replica1 ແລະ Sentinel2, ແລະ Reddis Replica1 ແລະ Sentinel2 ຄວນຈະຄືກັນ.

    9. ຕໍ່ໄປ, ໃຫ້ເລີ່ມການບໍລິການ Sentinel ໃນທຸກໆຂໍ້ເພື່ອໃຊ້ການປ່ຽນແປງທີ່ຜ່ານມາ.

    # systemctl restart redis-sentinel
    

    10. ຕໍ່ໄປ, ເປີດທີ່ Port 26379 ໃນ firewall ໃນທຸກໆ nodes ເພື່ອໃຫ້ຕົວຢ່າງ Sentinel ເລີ່ມເວົ້າ, ໄດ້ຮັບການເຊື່ອມຕໍ່ຈາກກໍລະນີ Sentinel ອື່ນໆ, ໂດຍໃຊ້ firewall-cmd.

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

    11. ຮູບ ຈຳ ລອງທັງ ໝົດ ຈະຖືກຄົ້ນພົບໂດຍອັດຕະໂນມັດ. ສິ່ງ ສຳ ຄັນ, Sentinel ຈະປັບປຸງການຕັ້ງຄ່າໂດຍອັດຕະໂນມັດໂດຍມີຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການເຮັດຊ້ ຳ. ທ່ານສາມາດຢືນຢັນສິ່ງນີ້ໄດ້ໂດຍການເປີດເອກະສານການຕັ້ງຄ່າຂອງ Sentinel ສຳ ລັບແຕ່ລະຕົວຢ່າງແລະເບິ່ງຜ່ານມັນ.

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

    ມັນຄວນຈະເປັນກໍລະນີດຽວກັນໃນ replica1 ແລະ replica2.

    ໃຫ້ສັງເກດວ່າການຕັ້ງຄ່າ Sentinel ຍັງຖືກຂຽນຄືນ/ປັບປຸງທຸກໆຄັ້ງທີ່ມີການສົ່ງເສີມການເຮັດແບບທົດແທນໃຫ້ເປັນສະຖານະພາບໃນຊ່ວງທີ່ລົ້ມເຫລວແລະທຸກໆຄັ້ງທີ່ພົບເຫັນ Sentinel ໃໝ່ ໃນການຕັ້ງຄ່າ.

    ຂັ້ນຕອນທີ 3: ກວດສອບສະຖານະການຕັ້ງຄ່າ Redis Sentinel

    12. ຕອນນີ້ກວດເບິ່ງສະຖານະພາບ/ຂໍ້ມູນກ່ຽວກັບ Sentinel ກ່ຽວກັບແມ່ບົດ, ໂດຍໃຊ້ ຄຳ ສັ່ງຂໍ້ມູນ sentinel ດັ່ງຕໍ່ໄປນີ້.

    # redis-cli -p 26379 info sentinel
    

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

    13. ເພື່ອສະແດງຂໍ້ມູນລະອຽດກ່ຽວກັບແມ່ບົດ (ທີ່ເອີ້ນວ່າ mymaster), ໃຫ້ໃຊ້ ຄຳ ສັ່ງທີ່ຖືກຕ້ອງ.

    # redis-cli -p 26379 sentinel master mymaster
    

    14. ເພື່ອສະແດງຂໍ້ມູນລະອຽດກ່ຽວກັບຂ້າທາດແລະຜູ້ທີ່ຖືກສົ່ງໄປໃຊ້, ໃຊ້ ຄຳ ສັ່ງຂ້າທາດທີ່ຖືກສົ່ງໄປແລະ ຄຳ ສັ່ງທີ່ສົ່ງຕໍ່ໄປຕາມ ລຳ ດັບ.

    # redis-cli -p 26379 sentinel slaves mymaster
    # redis-cli -p 26379 sentinel sentinels mymaster
    

    15. ຕໍ່ໄປ, ຖາມທີ່ຢູ່ຂອງແມ່ບົດໂດຍຊື່ຈາກຕົວຢ່າງຂອງທາດໂດຍໃຊ້ ຄຳ ສັ່ງ sentinel get-master-addr-by-name ດັ່ງຕໍ່ໄປນີ້.

    ຜົນຜະລິດຄວນແມ່ນທີ່ຢູ່ IP ແລະພອດຂອງຕົວຢ່າງຕົ້ນສະບັບປັດຈຸບັນ:

    # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
    

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

    16. ສຸດທ້າຍ, ໃຫ້ທົດສອບຄວາມລົ້ມເຫລວໂດຍອັດຕະໂນມັດໃນການຕັ້ງຄ່າ Sentinel ຂອງພວກເຮົາ. ເທິງແມ່ບົດ Redis/Sentinel, ເຮັດໃຫ້ແມ່ບົດ Redis (ແລ່ນຢູ່ທີ່ Port 6379) ນອນ 60 ວິນາທີ. ຫຼັງຈາກນັ້ນ, ສອບຖາມທີ່ຢູ່ຂອງແມ່ບົດໃນປະຈຸບັນກ່ຽວກັບເຄື່ອງ ຈຳ ລອງ/ສຳ ລອງດັ່ງຕໍ່ໄປນີ້.

    # redis-cli -p 6379
    127.0.0.1:6379> AUTH [email 
    127.0.0.1:6379>  debug sleep 60
    # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
    # redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
    

    ຈາກຜົນໄດ້ຮັບ ສຳ ລັບການສອບຖາມ, ແມ່ບົດ ໃໝ່ ປະຈຸບັນແມ່ນ replica/slave2 ກັບທີ່ຢູ່ IP 10.42.0.34 ດັ່ງທີ່ເຫັນໃນພາບ ໜ້າ ຈໍຕໍ່ໄປນີ້.

    ທ່ານສາມາດໄດ້ຮັບຂໍ້ມູນເພີ່ມເຕີມຈາກເອກະສານ Redis Sentinel. ແຕ່ຖ້າທ່ານມີຄວາມຄິດທີ່ຈະແບ່ງປັນຫລືສອບຖາມ, ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້ແມ່ນປະຕູຂອງທ່ານໃຫ້ພວກເຮົາ.

    ໃນພາກຕໍ່ໄປແລະສຸດທ້າຍຂອງຊຸດນີ້, ພວກເຮົາຈະມາເບິ່ງວິທີການຕັ້ງ Redis Cluster ໃນ CentOS 8. ມັນຈະເປັນບົດຄວາມທີ່ເປັນເອກະລາດຈາກສອງບົດ ທຳ ອິດ.