มาพูดถึงข้อดีและข้อเสียของวิธีไมโครเซอร์วิส
เชิงลบแรก เมื่อคุณสร้าง microservices คุณจะเพิ่มความซับซ้อนโดยธรรมชาติในโค้ดของคุณ คุณกำลังเพิ่มค่าใช้จ่าย คุณทำให้ยากต่อการจำลองสภาพแวดล้อม (เช่นสำหรับนักพัฒนา) คุณกำลังทำการดีบักปัญหาที่เกิดขึ้นเป็นระยะ ๆ ให้หนักขึ้น
ผมขออธิบายข้อเสียที่แท้จริง พิจารณากรณีที่คุณมีไมโครไซต์บริการ 100 รายการที่เรียกว่าขณะสร้างหน้าเว็บแต่ละแห่งทำสิ่งที่ถูกต้อง 99.9% ของเวลา แต่ 0.05% ของเวลาที่พวกเขาให้ผลลัพธ์ที่ผิด และ 0.05% ของเวลาที่มีการร้องขอการเชื่อมต่อที่ช้าซึ่งจำเป็นต้องใช้การหมดเวลา TCP / IP เพื่อเชื่อมต่อและใช้เวลา 5 วินาที ประมาณ 90.5% ของเวลาที่คำขอของคุณทำงานได้อย่างสมบูรณ์ แต่ประมาณ 5% ของเวลาที่คุณมีผลลัพธ์ที่ไม่ถูกต้องและประมาณ 5% ของเวลาที่เพจของคุณช้า และทุกความล้มเหลวที่ไม่สามารถทำซ้ำได้มีสาเหตุที่แตกต่าง
นอกจากว่าคุณจะใช้ความคิดอย่างมากในการติดตามตรวจสอบทำซ้ำและอื่น ๆ สิ่งนี้จะกลายเป็นความยุ่งเหยิง โดยเฉพาะอย่างยิ่งเมื่อ microservice หนึ่งเรียกอีกอันหนึ่งที่เรียกอีกชั้นหนึ่งลึก และเมื่อคุณมีปัญหามันจะแย่ลงเมื่อเวลาผ่านไป
ตกลงฟังดูเหมือนฝันร้าย (และมากกว่าหนึ่ง บริษัท สร้างปัญหาใหญ่ให้กับตัวเองด้วยการลงเส้นทางนี้) ความสำเร็จเป็นไปได้เพียงคุณเท่านั้นที่ตระหนักถึงข้อเสียที่อาจเกิดขึ้นและทำงานอย่างสม่ำเสมอเพื่อจัดการกับมัน
แล้ววิธีเสาหินนั่นล่ะ?
ปรากฎว่าแอพพลิเคชั่นแบบเสาหินนั้นง่ายต่อการทำให้เป็นโมดูลเป็นไมโครเซส และการเรียกใช้ฟังก์ชั่นนั้นทั้งถูกกว่าและเชื่อถือได้ในทางปฏิบัติมากกว่าการเรียก RPC ดังนั้นคุณสามารถพัฒนาสิ่งเดียวกันยกเว้นว่ามีความน่าเชื่อถือมากขึ้นทำงานได้เร็วขึ้นและเกี่ยวข้องกับรหัสน้อย
ตกลงแล้วทำไม บริษัท ถึงต้องใช้วิธีไมโครเซอร์วิส
คำตอบคือเนื่องจากเมื่อคุณขยายขนาดมีข้อ จำกัด เกี่ยวกับสิ่งที่คุณสามารถทำได้ด้วยแอปพลิเคชันแบบเสาหิน หลังจากผู้ใช้จำนวนมากคำขอจำนวนมากและอื่น ๆ คุณไปถึงจุดที่ฐานข้อมูลไม่ได้ปรับขนาดเว็บเซิร์ฟเวอร์ไม่สามารถเก็บรหัสของคุณในหน่วยความจำและอื่น ๆ นอกจากนี้ยังมีวิธี microservice ช่วยให้การอัปเกรดแอปพลิเคชันของคุณเป็นอิสระและเพิ่มขึ้น ดังนั้นสถาปัตยกรรม microservice จึงเป็นโซลูชันในการปรับขนาดแอปพลิเคชันของคุณ
กฎส่วนบุคคลของฉันคือการเปลี่ยนจากรหัสในภาษาสคริปต์ (เช่น Python) ไปเป็น C ++ ที่ปรับให้เหมาะสมที่สุดโดยทั่วไปสามารถปรับปรุงขนาดของคำสั่ง 1-2 รายการสำหรับทั้งประสิทธิภาพและการใช้หน่วยความจำ การไปยังอีกทางหนึ่งเพื่อสถาปัตยกรรมแบบกระจายเพิ่มขนาดความต้องการทรัพยากร แต่ให้คุณปรับขนาดได้อย่างไม่มีกำหนด คุณสามารถสร้างสถาปัตยกรรมแบบกระจายได้ แต่การทำเช่นนั้นยากขึ้น
ดังนั้นฉันจะบอกว่าถ้าคุณกำลังเริ่มต้นโครงการส่วนบุคคลไปเสาหิน เรียนรู้วิธีการทำสิ่งนั้นให้ดี ไม่ต้องเผยแพร่เพราะ (Google | eBay | Amazon | etc) นั้น หากคุณลงจอดใน บริษัท ขนาดใหญ่ที่มีการแจกจ่ายให้ใส่ใจกับวิธีที่พวกเขาทำให้มันใช้งานได้และอย่าทำให้พลาด และถ้าคุณเลิกทำต้องระวังตัวให้ดีเพราะคุณกำลังทำอะไรที่ยากที่จะได้รับมากผิดมาก
การเปิดเผยข้อมูลฉันมีประสบการณ์เกือบ 20 ปีใน บริษัท ทุกขนาด และใช่ฉันเห็นทั้งสถาปัตยกรรมแบบเสาหินและแบบกระจายอย่างใกล้ชิดและเป็นส่วนตัว มันขึ้นอยู่กับประสบการณ์ที่ฉันบอกคุณว่าสถาปัตยกรรมไมโครสโคปแบบกระจายเป็นสิ่งที่คุณทำเพราะคุณต้องการและไม่ใช่เพราะมันสะอาดและดีกว่า