ຄວາມພ້ອມຂອງແອັບພລິເຄຊັນບໍ່ເຄີຍຖືກປະຕິບັດຢ່າງຈິງຈັງເທົ່າທີ່ເຮົາໃຊ້ໃນທຸກມື້ນີ້ ເມື່ອເຮົາໃຊ້ແອັບຕ່າງໆຫຼາຍກວ່າການຕິດຕໍ່ສື່ສານ, ບໍ່ວ່າຈະເປັນສ່ວນຕົວ ຫຼືເປັນມືອາຊີບ ແລະເມື່ອແອັບຕ່າງໆເປັນທຸລະກິດ.
ແອັບພລິເຄຊັນທີ່ບໍ່ຢູ່ໃນອິນເຕີເນັດຢ່າງຕໍ່ເນື່ອງ, ຫຼືບໍ່ສະຖຽນ, ສູນເສຍຜູ້ໃຊ້ ແລະຄວາມກ່ຽວຂ້ອງຂອງເຂົາເຈົ້າ, ໃນທີ່ສຸດກໍກາຍເປັນລ້າສະໄຫມ. ມັນເກີດຂຶ້ນໃນກະພິບ. ເນື່ອງຈາກວ່າອິນເຕີເນັດບໍ່ເຄີຍນອນແລະເຮັດວຽກ 24 ຊົ່ວໂມງຕໍ່ມື້, 7 ມື້ຕໍ່ອາທິດ, ຄວາມຄິດດຽວກັນຈະຕ້ອງໃຊ້ກັບແອັບຯ.
ຄວາມສາມາດໃນການຂະຫຍາຍແມ່ນສໍາຄັນຕໍ່ກັບການເຮັດສິ່ງນີ້ແລະຮັບປະກັນຄວາມພ້ອມຂອງແອັບພລິເຄຊັນ. ການດຸ່ນດ່ຽງການໂຫຼດແມ່ນຫນຶ່ງໃນອົງປະກອບທີ່ສໍາຄັນທີ່ສຸດໃນການຮັບປະກັນຄວາມພ້ອມ. ປະຊາຊົນຈໍານວນຫຼາຍຍັງເຊື່ອວ່າການດຸ່ນດ່ຽງການໂຫຼດສາມາດສໍາເລັດດ້ວຍສະຄິບງ່າຍໆ.
ຢ່າງໃດກໍຕາມ, ນີ້ບໍ່ແມ່ນກໍລະນີ. ມັນພຽງແຕ່ສະຫນອງການເຂົ້າເຖິງໂຄງການທັງຫມົດໃນທົ່ວໂລກ — ໃນທຸກເວລາແລະຈາກອຸປະກອນໃດຫນຶ່ງ.
ໃນບົດຂຽນນີ້, ພວກເຮົາຈະພິຈາລະນາຢ່າງເລິກເຊິ່ງກ່ຽວກັບການດຸ່ນດ່ຽງການໂຫຼດ, ສູດການຄິດໄລ່ຂອງມັນ, ແລະວິທີການທີ່ກ່ຽວຂ້ອງກັບການບໍລິການຈຸນລະພາກ, ໃນບັນດາສິ່ງອື່ນໆ. ມາເລີ່ມກັນເລີຍ!
ການດຸ່ນດ່ຽງການໂຫຼດແມ່ນຫຍັງ?
ໃນຂະນະທີ່ຄວາມຕ້ອງການສໍາລັບເວັບໄຊທ໌ຫຼືຄໍາຮ້ອງສະຫມັກທຸລະກິດເພີ່ມຂຶ້ນ, ເຄື່ອງແມ່ຂ່າຍດຽວຈະບໍ່ສາມາດຈັດການກັບການໂຫຼດທັງຫມົດໃນໄວໆນີ້. ອົງການຈັດຕັ້ງແຈກຢາຍວຽກງານຜ່ານເຄື່ອງແມ່ຂ່າຍຈໍານວນຫລາຍເພື່ອຕອບສະຫນອງຄວາມຕ້ອງການ. ວິທີການນີ້, ເອີ້ນວ່າ "ການດຸ່ນດ່ຽງການໂຫຼດ," ຮັກສາເຄື່ອງແມ່ຂ່າຍດຽວຈາກການໂຫຼດເກີນ, ເຊິ່ງສາມາດເຮັດໃຫ້ມັນຊ້າລົງ, ຫຼຸດລົງຄໍາຮ້ອງຂໍ, ຫຼືແມ້ກະທັ້ງ crash.
ການດຸ່ນດ່ຽງການໂຫຼດແຈກຢາຍການຈະລາຈອນເຄືອຂ່າຍເທົ່າທຽມກັນເພື່ອຫຼີກເວັ້ນການລົ້ມເຫລວເນື່ອງຈາກການໂຫຼດເກີນຂອງຊັບພະຍາກອນ. ຄໍາຮ້ອງສະຫມັກ, ເວັບໄຊທ໌, ຖານຂໍ້ມູນ, ແລະຊັບພະຍາກອນຄອມພິວເຕີອື່ນໆປະຕິບັດໄດ້ດີກວ່າແລະມີການນໍາໃຊ້ວິທີການນີ້. ມັນຍັງຊ່ວຍໃນການປຸງແຕ່ງຄໍາຮ້ອງຂໍຂອງຜູ້ໃຊ້ທີ່ຖືກຕ້ອງແລະທັນເວລາ.
ຈາກທັດສະນະຂອງຜູ້ໃຊ້, ການດຸ່ນດ່ຽງການໂຫຼດເຮັດຫນ້າທີ່ເປັນຕົວກາງທີ່ບໍ່ເຫັນກັນລະຫວ່າງລູກຄ້າແລະການລວບລວມເຄື່ອງແມ່ຂ່າຍ, ໃຫ້ແນ່ໃຈວ່າການຮ້ອງຂໍການເຊື່ອມຕໍ່ບໍ່ໄດ້ຖືກຫຼຸດລົງ. ແອັບພລິເຄຊັນ, ເວັບໄຊທ໌, ຖານຂໍ້ມູນ, ແລະການບໍລິການອອນໄລນ໌ສ່ວນຫຼາຍອາດຈະລົ້ມລົງຖ້າຄວາມຕ້ອງການກາຍເປັນຫຼາຍເກີນໄປໂດຍບໍ່ມີການດຸ່ນດ່ຽງການໂຫຼດ.
ຫຼາຍຮ້ອຍພັນຄໍາຮ້ອງຂໍຂອງຜູ້ໃຊ້ສາມາດຖືກສົ່ງໄປຫາເວັບໄຊທ໌ດຽວທີ່ມີການຈະລາຈອນສູງໃນເວລາດຽວກັນ. ເຊີບເວີຫຼາຍອັນແມ່ນຕ້ອງການເພື່ອຕື່ມຂໍ້ມູນຫນ້າເວັບໃຫ້ຖືກຕ້ອງກັບເນື້ອຫາທີ່ຮ້ອງຂໍ, ເຊັ່ນ: ຂໍ້ຄວາມ, ຮູບພາບ, ວິດີໂອ, ແລະການຖ່າຍທອດສຽງ. ການດຸ່ນດ່ຽງການໂຫຼດແມ່ນໃຊ້ທົ່ວໄປໃນຟາມເຊີບເວີເວັບໄຊທ໌ທີ່ມີການຈະລາຈອນສູງ, ເຊັ່ນດຽວກັນກັບເຄື່ອງແມ່ຂ່າຍ DNS, ຖານຂໍ້ມູນ, ແລະ File Transfer Protocol (FTP).
ຖ້າເຊີບເວີດຽວຖືກແບນເກີນ, ອັນນີ້ອາດຈະເຮັດວຽກບໍ່ດີຫຼືແມ້ກະທັ້ງການຂັດຂ້ອງ. Load balancers ຫຼຸດຜ່ອນໂອກາດຂອງການ downtime ໂດຍການແຈກຢາຍຄໍາຮ້ອງຂໍຂອງຜູ້ໃຊ້ຢ່າງເທົ່າທຽມກັນລະຫວ່າງການເກັບກໍາຂອງເຄື່ອງແມ່ຂ່າຍ. ຖ້າຫນຶ່ງໃນເຄື່ອງແມ່ຂ່າຍໃນກຸ່ມລົ້ມເຫລວ, ການຈະລາຈອນຈະຖືກປ່ຽນເສັ້ນທາງໄປຫາເຄື່ອງແມ່ຂ່າຍອື່ນໃນກຸ່ມ. ຕົວດຸ່ນດ່ຽງການໂຫຼດຈະເພີ່ມເຊີບເວີໃຫມ່ໂດຍອັດຕະໂນມັດໃນຂະບວນການແຈກຢາຍການຈະລາຈອນເມື່ອພວກມັນຖືກເພີ່ມໃສ່ເຄື່ອງແມ່ຂ່າຍ.
ການດຸ່ນດ່ຽງການໂຫຼດເຮັດວຽກແນວໃດ?
ມັນເຮັດວຽກດັ່ງຕໍ່ໄປນີ້:
- ເມື່ອລູກຄ້າໄດ້ຮັບການຮ້ອງຂໍ, ເຊັ່ນຜ່ານຕົວທ່ອງເວັບຫຼືແອັບພລິເຄຊັນ, ມັນພະຍາຍາມເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍ.
- ເມື່ອຕົວດຸ່ນດ່ຽງການໂຫຼດໄດ້ຮັບການຮ້ອງຂໍ, ມັນຈະສົ່ງມັນໄປຫາຫນຶ່ງໃນເຄື່ອງແມ່ຂ່າຍໃນກຸ່ມເຊີຟເວີໂດຍອີງໃສ່ຮູບແບບທີ່ຖືກສ້າງຕັ້ງຂຶ້ນໂດຍ algorithm (ຫຼືກະສິກໍາ).
- ເຊີບເວີໄດ້ຮັບຄໍາຮ້ອງຂໍການເຊື່ອມຕໍ່ແລະຕອບລູກຄ້າຜ່ານຕົວດຸ່ນດ່ຽງການໂຫຼດ.
- ເມື່ອ load balancer ໄດ້ຮັບການຕອບສະຫນອງ, ມັນກົງກັບທີ່ຢູ່ IP ຂອງລູກຄ້າທີ່ມີທີ່ຢູ່ IP ຂອງເຄື່ອງແມ່ຂ່າຍທີ່ເລືອກ. ຫຼັງຈາກນັ້ນ, ຄໍາຕອບຈະຖືກສົ່ງກັບແພັກເກັດ.
- SSL offload ແມ່ນຂະບວນການຖອດລະຫັດຂໍ້ມູນໂດຍໃຊ້ Security Socket Layer encryption protocol ເພື່ອບໍ່ໃຫ້ເຊີບເວີເຮັດ.
- ຂະບວນການແມ່ນຊ້ໍາອີກຄັ້ງຈົນກ່ວາກອງປະຊຸມສິ້ນສຸດລົງ.
ວິທີການດຸ່ນດ່ຽງການໂຫຼດ
ເພື່ອເລືອກເຊີບເວີໃດໃນຟາມເຊີຟເວີໄດ້ຮັບການຮ້ອງຂໍຕໍ່ໄປ, ແຕ່ລະເຕັກນິກການດຸ່ນດ່ຽງການໂຫຼດໃຊ້ຊຸດຂອງເງື່ອນໄຂ. ມີຫ້າວິທີການປົກກະຕິສໍາລັບການດຸ່ນດ່ຽງການໂຫຼດ:
- ຮອບໂຣນິນ: ນີ້ແມ່ນວິທີການເລີ່ມຕົ້ນ, ແລະມັນເຮັດວຽກຄືກັນກັບສຽງ. ຕົວດຸ່ນດ່ຽງການໂຫຼດແຈກຢາຍການຮ້ອງຂໍໃນຮູບແບບການຫມຸນ, ເລີ່ມຕົ້ນດ້ວຍເຄື່ອງແມ່ຂ່າຍທໍາອິດໃນກຸ່ມແລະດໍາເນີນການລົງລຸ່ມ, ບ່ອນທີ່ມັນລໍຖ້າການໂທຫາອີກເທື່ອຫນຶ່ງ. ວິທີການນີ້ຮັບປະກັນວ່າແຕ່ລະເຄື່ອງແມ່ຂ່າຍກໍາລັງຈັດການກັບຈໍານວນການເຊື່ອມຕໍ່ດຽວກັນ.
- ນ້ໍາຫນັກຮອບ Robin: ວິທີການນີ້ມອບໃຫ້ແຕ່ລະເຄື່ອງແມ່ຂ່າຍຂອງນ້ໍາຫນັກ (ຫຼືຄວາມມັກ) ໂດຍທົ່ວໄປແລ້ວແມ່ນອັດຕາສ່ວນກັບຄວາມສາມາດຂອງມັນ. ການຮ້ອງຂໍຫຼາຍທີ່ເຄື່ອງແມ່ຂ່າຍໄດ້ຮັບ, ນ້ໍາຫນັກສູງຂຶ້ນ. ຕົວຢ່າງ, ເຄື່ອງແມ່ຂ່າຍທີ່ມີມູນຄ່ານ້ໍາຫນັກສອງໄດ້ຮັບການຮ້ອງຂໍສອງເທົ່າເທົ່າກັບເຄື່ອງແມ່ຂ່າຍທີ່ມີມູນຄ່ານ້ໍາຫນັກຫນຶ່ງ.
- ເຊດຊັນຫນຽວ: ວິທີການນີ້, ເຊິ່ງເອີ້ນກັນວ່າ session persistence, ເຊື່ອມຕໍ່ລູກຄ້າແລະເຄື່ອງແມ່ຂ່າຍທີ່ແນ່ນອນສໍາລັບໄລຍະເວລາຂອງກອງປະຊຸມ. ເພື່ອສ້າງການເຊື່ອມຕໍ່, ຕົວດຸ່ນດ່ຽງການໂຫຼດໃຊ້ຄຸກກີຫຼືທີ່ຢູ່ IP ຂອງຜູ້ໃຊ້ເພື່ອກໍານົດຄຸນລັກສະນະຂອງຜູ້ໃຊ້. ເມື່ອການເຊື່ອມຕໍ່ໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນ, ການຮ້ອງຂໍຂອງຜູ້ໃຊ້ຈະຖືກສົ່ງໄປຫາເຄື່ອງແມ່ຂ່າຍດຽວກັນຈົນກ່ວາກອງປະຊຸມສິ້ນສຸດລົງ. ນີ້ເພີ່ມປະສິດທິພາບຊັບພະຍາກອນເຄືອຂ່າຍໃນຂະນະທີ່ຍັງປັບປຸງປະສົບການຂອງຜູ້ໃຊ້.
- ການເຊື່ອມຕໍ່ທີ່ນ້ອຍທີ່ສຸດ: ຍຸດທະສາດນີ້ສົມມຸດວ່າການຮ້ອງຂໍທັງຫມົດສົ່ງຜົນໃຫ້ມີພາລະຂອງເຄື່ອງແມ່ຂ່າຍເທົ່າທຽມກັນ. ດັ່ງນັ້ນ, ເຄື່ອງແມ່ຂ່າຍທີ່ມີຈໍານວນຄໍາຮ້ອງຂໍນ້ອຍທີ່ສຸດໄດ້ຮັບການຮ້ອງຂໍຕໍ່ໄປ.
- IP Hash: ສູດການຄິດໄລ່ນີ້ສ້າງລະຫັດ hash ທີ່ເປັນເອກະລັກໂດຍອີງໃສ່ທີ່ຢູ່ IP ປາຍທາງຂອງລູກຄ້າ ແລະເຄື່ອງແມ່ຂ່າຍ. ປຸ່ມຖືກນໍາໃຊ້ເພື່ອກໍານົດເສັ້ນທາງການຮ້ອງຂໍແລະອະນຸຍາດໃຫ້ການເຊື່ອມຕໍ່ທີ່ສູນເສຍໄປກັບເຄື່ອງແມ່ຂ່າຍດຽວກັນທີ່ຈະດໍາເນີນການຄືນ.
ຮາດແວ Vs. Software Load Balancers
Hardware Load Balancer
ຮາດແວທາງກາຍະພາບ, ເຊັ່ນ: ເຄື່ອງໃຊ້, ສ້າງຕົວດຸ່ນດ່ຽງການໂຫຼດຮາດແວ. ເສັ້ນທາງເຫຼົ່ານີ້ຈະຈາລະຈອນໄປຫາເຄື່ອງແມ່ຂ່າຍໂດຍອີງຕາມປັດໃຈເຊັ່ນ: ຈໍານວນການເຊື່ອມຕໍ່ທີ່ມີຢູ່ແລ້ວ, ການໃຊ້ໂປເຊດເຊີ, ແລະປະສິດທິພາບຂອງເຄື່ອງແມ່ຂ່າຍ. ຕົວດຸ່ນດ່ຽງການໂຫຼດຮາດແວມີເຟີມແວທີ່ເປັນເຈົ້າຂອງທີ່ຕ້ອງໄດ້ຮັບການຮັກສາ ແລະອັບເດດເມື່ອມີເວີຊັນໃໝ່ ແລະການແກ້ໄຂຄວາມປອດໄພ.
ຕົວດຸ່ນດ່ຽງການໂຫຼດຮາດແວມັກຈະໃຫ້ປະສິດທິພາບແລະການຄວບຄຸມທີ່ສູງຂຶ້ນ, ເຊັ່ນດຽວກັນກັບຄວາມສາມາດທີ່ກວ້າງຂວາງເຊັ່ນ: ການຢືນຢັນ Kerberos ແລະການເລັ່ງຮາດແວ SSL, ແຕ່ພວກເຂົາຕ້ອງການຄວາມຊໍານານໃນການຄຸ້ມຄອງແລະການບໍາລຸງຮັກສາໃນລະດັບໃດຫນຶ່ງ. ເນື່ອງຈາກຕົວດຸ່ນດ່ຽງການໂຫຼດຂອງຮາດແວມີຄວາມຍືດຫຍຸ່ນໜ້ອຍກວ່າ ແລະສາມາດປັບຂະໜາດໄດ້ຫຼາຍກວ່າຕົວດຸ່ນດ່ຽງການໂຫຼດຊອບແວ, ມັນມີທ່າອ່ຽງທີ່ຈະສະໜອງຕົວດຸ່ນດ່ຽງການໂຫຼດຮາດແວຫຼາຍເກີນໄປ.
Software Load Balancer
ໂດຍທົ່ວໄປແລ້ວຕົວດຸ່ນດ່ຽງການໂຫຼດຊອບແວແມ່ນງ່າຍຕໍ່ການຕັ້ງຄ່າຫຼາຍກ່ວາຄູ່ຮາດແວຂອງພວກເຂົາ. ພວກມັນຍັງຄຸ້ມຄ່າກວ່າ ແລະສາມາດປັບຕົວໄດ້, ແລະພວກມັນເຮັດວຽກໄດ້ດີກັບສະພາບແວດລ້ອມການພັດທະນາຊອບແວ. ວິທີການຊອບແວຊ່ວຍໃຫ້ທ່ານສາມາດປັບແຕ່ງການດຸ່ນດ່ຽງການໂຫຼດໄດ້ຕາມຄວາມຕ້ອງການທີ່ແນ່ນອນຂອງສະພາບແວດລ້ອມຂອງທ່ານ. ຄວາມຍືດຫຍຸ່ນທີ່ເພີ່ມຂຶ້ນອາດຈະມາໂດຍຄ່າໃຊ້ຈ່າຍຂອງເວລາເພີ່ມເຕີມທີ່ໃຊ້ໃນການຕັ້ງຄ່າຕົວດຸ່ນດ່ຽງການໂຫຼດ.
ຕົວດຸ່ນດ່ຽງຊໍແວໃຫ້ທ່ານມີຄວາມຍືດຫຍຸ່ນຫຼາຍກວ່າເກົ່າເພື່ອເຮັດໃຫ້ການດັດແກ້ແລະການປັບປຸງຫຼາຍກວ່າຮາດແວ, ເຊິ່ງມີວິທີການປິດຫຼາຍ. ເຄື່ອງສະເໝືອນທີ່ບັນຈຸໄວ້ລ່ວງໜ້າສາມາດນຳໃຊ້ເປັນຕົວດຸ່ນດ່ຽງການໂຫຼດຊອບແວ (VMs). ເຄື່ອງ virtual ຈະຊ່ວຍໃຫ້ທ່ານປະຫຍັດເວລາການຕັ້ງຄ່າບາງຢ່າງ, ແຕ່ພວກມັນອາດຈະບໍ່ມີຫນ້າທີ່ທັງຫມົດທີ່ມີຢູ່ໃນຄູ່ຮາດແວຂອງພວກເຂົາ.
ການປະຕິບັດການດຸ່ນດ່ຽງການໂຫຼດແບບງ່າຍດາຍ
ພວກເຮົາຈະໃຊ້ຫ້ອງສະຫມຸດ Spring Cloud ເພື່ອ ສ້າງແອັບ ທີ່ເຊື່ອມຕໍ່ກັບແອັບຯອື່ນໆໃນລັກສະນະທີ່ສົມດຸນການໂຫຼດ. ໃນຂະນະທີ່ປະມວນຜົນການຮ້ອງຂໍການບໍລິການທາງໄກ, ພວກເຮົາສາມາດສ້າງການດຸ່ນດ່ຽງການໂຫຼດໄດ້ຢ່າງງ່າຍດາຍໂດຍໃຊ້ເຕັກນິກໃດກໍ່ຕາມທີ່ພວກເຮົາມັກ. ພິຈາລະນາລະຫັດຕໍ່ໄປນີ້ເປັນຕົວຢ່າງ. ພວກເຮົາຈະເລີ່ມຕົ້ນດ້ວຍຄໍາຮ້ອງສະຫມັກຂອງເຄື່ອງແມ່ຂ່າຍພື້ນຖານ.
ເຊີບເວີຈະມີຈຸດສິ້ນສຸດ HTTP ດຽວເທົ່ານັ້ນ ແລະຈະຖືກດຳເນີນການໃນຫຼາຍໆກໍລະນີ. ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈະສ້າງແອັບຯລູກຄ້າທີ່ໃຊ້ Load Balancer ເພື່ອແຈກຢາຍການຮ້ອງຂໍໃນທົ່ວເຄື່ອງແມ່ຂ່າຍຫຼາຍໆຄັ້ງ.
Server
ພວກເຮົາເລີ່ມຕົ້ນດ້ວຍພື້ນຖານ ເກີບໃສ່ພາກຮຽນ spring ຄໍາຮ້ອງສະຫມັກສໍາລັບເຄື່ອງແມ່ຂ່າຍຕົວຢ່າງຂອງພວກເຮົາ:
ເພື່ອເລີ່ມຕົ້ນ, ພວກເຮົາໃສ່ຕົວແປທີ່ສາມາດປັບແຕ່ງໄດ້ທີ່ເອີ້ນວ່າ instance_ID. ນີ້ຊ່ວຍໃຫ້ພວກເຮົາຈໍາແນກລະຫວ່າງຫຼາຍໆກໍລະນີທີ່ກໍາລັງດໍາເນີນການ. ຫຼັງຈາກນັ້ນ, ພວກເຮົາສ້າງຈຸດສິ້ນສຸດ HTTP GET ດຽວທີ່ສົ່ງຄືນຂໍ້ຄວາມແລະ instance ID.
ຕົວຢ່າງເລີ່ມຕົ້ນທີ່ມີ ID 1 ຈະເຮັດວຽກຢູ່ໃນພອດ 8080. ພວກເຮົາພຽງແຕ່ຕ້ອງການເພີ່ມຕົວກໍານົດການຂອງໂປຣແກຣມຈໍານວນຫນ້ອຍເພື່ອເປີດໃຊ້ຕົວຢ່າງທີສອງ:
ລູກຄ້າ
ຕອນນີ້ໃຫ້ເບິ່ງລະຫັດລູກຄ້າ. ນີ້ແມ່ນບ່ອນທີ່ Load Balancer ເຂົ້າມາ, ສະນັ້ນໃຫ້ເລີ່ມຕົ້ນໂດຍການລວມເອົາມັນເຂົ້າໄປໃນຄໍາຮ້ອງສະຫມັກຂອງພວກເຮົາ:
ຫຼັງຈາກນັ້ນ, ພວກເຮົາພັດທະນາການຈັດຕັ້ງປະຕິບັດ ServiceInstanceListSupplier. ນີ້ແມ່ນຫນຶ່ງໃນການໂຕ້ຕອບທີ່ສໍາຄັນທີ່ສຸດໃນ Load Balancer. ມັນກໍານົດວິທີທີ່ພວກເຮົາຊອກຫາຕົວຢ່າງການບໍລິການທີ່ສາມາດເຂົ້າເຖິງໄດ້.
ພວກເຮົາຈະ hard-code ສອງຕົວຢ່າງແຍກຕ່າງຫາກຂອງເຄື່ອງແມ່ຂ່າຍຕົວຢ່າງຂອງພວກເຮົາໃນຄໍາຮ້ອງສະຫມັກຕົວຢ່າງຂອງພວກເຮົາ. ພວກເຂົາແລ່ນຢູ່ໃນລະບົບດຽວກັນແຕ່ໃຊ້ພອດແຍກຕ່າງຫາກ:
ສ້າງຫ້ອງຮຽນ LoadBalancerConfiguration ດຽວນີ້:
ຫ້ອງຮຽນນີ້ມີຈຸດປະສົງດຽວເທົ່ານັ້ນ: ມັນສ້າງຕົວສ້າງ WebClient ທີ່ສົມດຸນການໂຫຼດສໍາລັບການຮ້ອງຂໍທາງໄກ. ຄໍາບັນຍາຍຂອງພວກເຮົາໃຊ້ຊື່ປອມສໍາລັບການບໍລິການ.
ນີ້ແມ່ນເນື່ອງມາຈາກຄວາມຈິງທີ່ວ່າພວກເຮົາສ່ວນຫຼາຍອາດຈະບໍ່ຮູ້ຊື່ໂຮດແລະພອດທີ່ຊັດເຈນສໍາລັບການແລ່ນຕົວຢ່າງກ່ອນເວລາ. ດັ່ງນັ້ນ, ພວກເຮົາໃຊ້ຊື່ປອມເປັນຕົວຍຶດ, ແລະກອບຈະແທນທີ່ຂໍ້ມູນຕົວຈິງເມື່ອມັນເລືອກຕົວຢ່າງທີ່ເຮັດວຽກ.
ຕໍ່ໄປ, ໃຫ້ພວກເຮົາສ້າງຫ້ອງຮຽນການຕັ້ງຄ່າທີ່ຈະໃຊ້ເພື່ອເລັ່ງການສະຫນອງຕົວຢ່າງການບໍລິການຂອງພວກເຮົາ. ຈົ່ງຈື່ໄວ້ວ່າພວກເຮົາໃຊ້ນາມແຝງດຽວກັນກັບເມື່ອກ່ອນ:
ໃນປັດຈຸບັນພວກເຮົາສາມາດສ້າງຄໍາຮ້ອງສະຫມັກລູກຄ້າທີ່ແທ້ຈິງ. ໃຫ້ສົ່ງ 10 ຄໍາຖາມໄປຫາເຄື່ອງແມ່ຂ່າຍຕົວຢ່າງໂດຍໃຊ້ WebClient bean ຈາກກ່ອນຫນ້ານີ້:
ພວກເຮົາສາມາດເບິ່ງຈາກຜົນຜະລິດທີ່ພວກເຮົາກໍາລັງການດຸ່ນດ່ຽງການໂຫຼດລະຫວ່າງສອງຕົວຢ່າງແຍກຕ່າງຫາກ:
Load Balancing ໃນ Microservices
ສະຖາປັດຕະຍະກໍາ Microservice ຖືກໃຊ້ໂດຍບໍລິສັດຈໍານວນຫນຶ່ງ, ເຊັ່ນ Netflix ແລະ Amazon, ເພື່ອພັດທະນາຄໍາຮ້ອງສະຫມັກທຸລະກິດເປັນຊຸດຂອງການບໍລິການທີ່ເຊື່ອມຕໍ່ວ່າງ. Hyperscale ແລະການຈັດສົ່ງຢ່າງຕໍ່ເນື່ອງສໍາລັບຄໍາຮ້ອງສະຫມັກທີ່ສັບສົນແມ່ນພຽງແຕ່ສອງເຫດຜົນສໍາລັບການເຄື່ອນຍ້າຍໄປສູ່ສະຖາປັດຕະຍະກໍາທີ່ແຈກຢາຍ, ເຊື່ອມຕໍ່ວ່າງ.
ທີມງານຂອງວິສາຫະກິດເຫຼົ່ານີ້ໄດ້ປະຕິບັດຍຸດທະສາດ Agile ແລະ DevOps ເພື່ອຜະລິດແອັບຯໄດ້ໄວຂຶ້ນແລະມີອັດຕາການລົ້ມເຫຼວຕ່ໍາກວ່າວິທີການແບບດັ້ງເດີມ. ຢ່າງໃດກໍ່ຕາມ, ທ່ານຕ້ອງມີຄວາມສົມດູນລະຫວ່າງຄວາມສັບສົນຂອງສະຖາປັດຕະຍະກໍາທີ່ແຈກຢາຍແລະຄວາມຕ້ອງການຂອງແອັບພລິເຄຊັນ, ຄວາມຕ້ອງການຂະຫນາດ, ແລະການຈໍາກັດເວລາຕໍ່ຕະຫຼາດ.
ສໍາລັບເວລາຫຼາຍປີ, ຕົວຄວບຄຸມການຈັດສົ່ງແອັບພລິເຄຊັນ (ADCs) ມີຄວາມສໍາຄັນຕໍ່ການຕອບສະຫນອງຄວາມຕ້ອງການລະດັບການບໍລິການສໍາລັບຄໍາຮ້ອງສະຫມັກຂອງບໍລິສັດທີ່ໂຮດຢູ່ໃນສະຖານທີ່ຫຼືຢູ່ໃນຄລາວ. ລູກຄ້າທີ່ມີສ່ວນຮ່ວມກັບແອັບພລິເຄຊັນທີ່ອີງໃສ່ microservices ບໍ່ຈໍາເປັນຕ້ອງຮູ້ກ່ຽວກັບຕົວຢ່າງທີ່ສະຫນອງມັນເພື່ອຂະຫຍາຍລູກຄ້າແລະ microservices ເປັນເອກະລາດ.
ອັນນີ້ແມ່ນການແຍກຕົວອອກຢ່າງແນ່ນອນທີ່ສະໜອງໃຫ້ໂດຍພຣັອກຊີປີ້ນກັບກັນ ຫຼືຕົວດຸ່ນດ່ຽງການໂຫຼດ. ອີກເທື່ອຫນຶ່ງ, ການດຸ່ນດ່ຽງການໂຫຼດແມ່ນການແກ້ໄຂສໍາລັບການຮັບປະກັນວ່າບໍລິການຈຸລະພາກສາມາດຈັດການກັບຄວາມຕ້ອງການ, ຄວາມປອດໄພ, ແລະຄວາມພ້ອມ.
ເມື່ອທ່ານສົມທົບການດຸ່ນດ່ຽງການໂຫຼດທາງເໜືອ-ໃຕ້ແບບດັ້ງເດີມລະຫວ່າງລູກຄ້າ ແລະ ແອັບທີ່ອີງໃສ່ການບໍລິການຈຸນລະພາກດ້ວຍການນຳໃຊ້ຕາເວັນອອກ-ຕາເວັນຕົກເພື່ອການຂະຫຍາຍອອກຕາມລວງນອນ, ທ່ານຈະໄດ້ຮັບການຊຸກຍູ້ຢ່າງຫຼວງຫຼາຍ. ຈຸດປະສົງແມ່ນເພື່ອຮັກສາສະພາບແວດລ້ອມທີ່ປອດໄພແລະຖືກຄວບຄຸມທີ່ຕ້ອງການໂດຍ IT ໂດຍບໍ່ມີການເສຍສະລະຄວາມວ່ອງໄວຂອງການພັດທະນາຫຼື DevOps ອັດຕະໂນມັດ ຄວາມຕ້ອງການ.
ຜົນປະໂຫຍດ
ການດຸ່ນດ່ຽງການໂຫຼດສະຫນອງຜົນປະໂຫຍດຕ່າງໆໂດຍການປັບປຸງການນໍາໃຊ້ຊັບພະຍາກອນ, ການຈັດສົ່ງຂໍ້ມູນ, ແລະເວລາຕອບສະຫນອງສໍາລັບເວັບໄຊທ໌ແລະແອັບຯທີ່ມີການຈະລາຈອນສູງ, ເຊັ່ນດຽວກັນກັບຖານຂໍ້ມູນທີ່ໄດ້ຮັບຈໍານວນຄໍາຖາມຈໍານວນຫລາຍ. ການດຸ່ນດ່ຽງການໂຫຼດຮັບປະກັນວ່າການຮ້ອງຂໍຂອງຜູ້ໃຊ້ຖືກປະຕິບັດຢ່າງໄວວາແລະຖືກຕ້ອງໃນສະຖານະການທີ່ມີການຈະລາຈອນສູງ.
ພວກເຂົາເຈົ້າຊ່ວຍປະຢັດຜູ້ໃຊ້ເຮັດໃຫ້ຮ້າຍແຮງຂຶ້ນຂອງການຈັດການກັບໂຄງການແລະຊັບພະຍາກອນທີ່ຊ້າລົງ. ການດຸ່ນດ່ຽງການໂຫຼດຍັງຊ່ວຍຫຼີກເວັ້ນການ downtime ແລະງ່າຍດາຍຄວາມປອດໄພ, ຫຼຸດລົງຄວາມສ່ຽງຂອງການສູນເສຍຜົນຜະລິດແລະລາຍຮັບຂອງບໍລິສັດຂອງທ່ານ.
- ການດຸ່ນດ່ຽງການໂຫຼດສະຫນອງຄວາມຍືດຫຍຸ່ນໃນການເພີ່ມແລະເອົາເຄື່ອງແມ່ຂ່າຍອອກຕາມຄວາມຕ້ອງການ, ນອກເຫນືອຈາກການຄຸ້ມຄອງການຈະລາຈອນໃຫ້ມີປະສິດທິພາບສູງສຸດ. ເນື່ອງຈາກວ່າການຈະລາຈອນຖືກໂອນໄປຫາເຄື່ອງແມ່ຂ່າຍອື່ນໃນລະຫວ່າງການບໍາລຸງຮັກສາ, ມັນກໍ່ເປັນໄປໄດ້ທີ່ຈະດໍາເນີນການບໍາລຸງຮັກສາເຄື່ອງແມ່ຂ່າຍໂດຍບໍ່ມີການລົບກວນຜູ້ໃຊ້.
- ການດຸ່ນດ່ຽງການໂຫຼດສະຫນອງການຊ້ໍາຊ້ອນໃນຕົວໂດຍການແບ່ງການຈະລາຈອນລະຫວ່າງເຄື່ອງແມ່ຂ່າຍທີ່ກໍານົດໄວ້. ທ່ານສາມາດໂອນການໂຫຼດໄປຫາເຄື່ອງແມ່ຂ່າຍອື່ນທັນທີຖ້າຫນຶ່ງລົ້ມເຫລວ, ຫຼຸດຜ່ອນຜົນກະທົບຕໍ່ຜູ້ໃຊ້.
- ຖ້າຄໍາຮ້ອງສະຫມັກຫຼືການນໍາໃຊ້ເວັບໄຊທ໌ເຕີບໂຕ, ການຈະລາຈອນທີ່ເພີ່ມຂຶ້ນອາດຈະເຮັດໃຫ້ການປະຕິບັດຂອງມັນຫຼຸດລົງຖ້າບໍ່ໄດ້ຮັບການຈັດການຢ່າງມີປະສິດທິພາບ. ດ້ວຍການດຸ່ນດ່ຽງການໂຫຼດ, ທ່ານສາມາດເພີ່ມເຄື່ອງແມ່ຂ່າຍທີ່ແທ້ຈິງຫຼື virtual ເພື່ອຕອບສະຫນອງຄວາມຕ້ອງການໂດຍບໍ່ມີການລົບກວນການບໍລິການ. ຕົວດຸ່ນດ່ຽງການໂຫຼດກຳນົດເຊີບເວີໃໝ່ເມື່ອພວກມັນມາທາງອິນເຕີເນັດ ແລະລວມເອົາພວກມັນເຂົ້າໃນການດຳເນີນການຢ່າງງ່າຍດາຍ. ວິທີການນີ້ແມ່ນດີກວ່າທີ່ຈະຍ້າຍເວັບໄຊທ໌ຈາກເຄື່ອງແມ່ຂ່າຍທີ່ overburdened ໄປຫາອັນໃຫມ່, ເຊິ່ງມັກຈະມີການຢຸດເຮັດວຽກບາງຢ່າງ.
ສະຫຼຸບ
ການດຸ່ນດ່ຽງການໂຫຼດແມ່ນອົງປະກອບທີ່ສໍາຄັນຂອງລະບົບທີ່ທັນສະໄຫມ, ທົນທານຕໍ່ຄວາມຜິດ. ພວກເຮົາພຽງແຕ່ສາມາດສ້າງກິດທີ່ແຈກຢາຍຄໍາຮ້ອງສະຫມັກການບໍລິການຫຼາຍຕົວຢ່າງໂດຍນໍາໃຊ້ວິທີການດຸ່ນດ່ຽງການໂຫຼດຕ່າງໆ. ທຸລະກິດຕ້ອງສະຫນັບສະຫນູນລະບົບ IT ທີ່ສັບສົນເພື່ອໃຫ້ຄໍາຮ້ອງສະຫມັກທີ່ປອດໄພ.
ການຕັ້ງຄ່າ microservices ຂ້າມໂດເມນ, ການນຳໃຊ້, ແລະການບຳລຸງຮັກສາອາດມີຄວາມຜິດພາດ, ລາຄາແພງ ແລະໃຊ້ເວລາຫຼາຍ. IT ຄວນໃຊ້ອັດຕະໂນມັດ, ການເບິ່ງເຫັນ, ການວິເຄາະ, ແລະການປະຕິບັດທີ່ດີທີ່ສຸດຂອງ orchestration ແລະເຕັກໂນໂລຢີທີ່ເຂົ້າກັນໄດ້ກັບຂະບວນການທີ່ມີຄວາມວ່ອງໄວແລະ DevOps ຂອງພວກເຂົາເພື່ອເຮັດໃຫ້ການຕິດຕັ້ງແລະບໍາລຸງຮັກສາ microservices ເຫຼົ່ານີ້ງ່າຍຂຶ້ນ.
ອອກຈາກ Reply ເປັນ