ไม่มีสิ่งใดที่ห้ามหรือโต้แย้งการใช้โพรซีเดอร์ที่เก็บไว้ด้วย microservices อย่างชัดเจน
คำเตือน: ฉันไม่ชอบขั้นตอนการจัดเก็บจากมุมมองของนักพัฒนา แต่ไม่เกี่ยวข้องกับไมโครไซต์ในทางใดทางหนึ่ง
ขั้นตอนการจัดเก็บมักจะทำงานบนฐานข้อมูลขนาดใหญ่
ฉันคิดว่าคุณจำนนต่อการเข้าใจผิดอย่างมีเหตุผล
ขั้นตอนการจัดเก็บอยู่ในการลดลงในปัจจุบัน ขั้นตอนการจัดเก็บส่วนใหญ่ที่ยังคงใช้งานอยู่นั้นมาจาก codebase รุ่นเก่าที่ถูกเก็บไว้ เมื่อก่อนฐานข้อมูลเสาหินก็แพร่หลายมากขึ้นเมื่อเทียบกับเมื่อไมโครซอฟท์ได้รับความนิยม
procs ที่จัดเก็บและฐานข้อมูลเสาหินทั้งคู่เกิดขึ้นในฐานรหัสเก่าซึ่งเป็นสาเหตุที่คุณเห็นพวกเขาบ่อยขึ้น แต่นั่นไม่ใช่การเชื่อมโยงเชิงสาเหตุ คุณไม่ได้ใช้ procs ที่เก็บไว้เพราะคุณมีฐานข้อมูลเสาหิน คุณไม่มีฐานข้อมูลเสาหินเนื่องจากคุณใช้ procs ที่จัดเก็บไว้
หนังสือส่วนใหญ่ใน microservices แนะนำหนึ่งฐานข้อมูลต่อ microservice
ไม่มีเหตุผลทางเทคนิคว่าทำไมฐานข้อมูลขนาดเล็กเหล่านี้ไม่สามารถจัดเก็บกระบวนการได้
ดังที่ได้กล่าวไปแล้วฉันไม่ชอบ procs ที่เก็บไว้ ฉันพบว่ามันยุ่งยากและทนต่อการบำรุงรักษาในอนาคต ฉันคิดว่าการกระจาย sprocs ไปยังฐานข้อมูลขนาดเล็กจำนวนมากยิ่งทำให้ปัญหาที่ฉันไม่ชอบนั้นแย่ลงไปอีก แต่นั่นไม่ได้หมายความว่ามันไม่สามารถทำได้
อีกครั้งหนังสือสถาปัตยกรรมไมโครบริการส่วนใหญ่ระบุว่าพวกเขาควรจะเป็นอิสระและควบคู่กันอย่างอิสระ การใช้ขั้นตอนการจัดเก็บที่เขียนไว้บอกเป็นพิเศษใน Oracle จับคู่ microservice กับเทคโนโลยีนั้นอย่างแน่นหนา
ในอีกด้านหนึ่งสามารถใช้อาร์กิวเมนต์เดียวกันสำหรับ ORM ที่ microservice ของคุณใช้ ไม่ใช่ ORM ทุกอันที่จะรองรับฐานข้อมูลทั้งหมด การมีเพศสัมพันธ์ (โดยเฉพาะความหนาแน่นของมัน) เป็นแนวคิดที่เกี่ยวข้อง มันเป็นเรื่องของการเป็นหลวมเท่าที่คุณสามารถจะสมเหตุสมผล
Sprocs เกิดจากการมีเพศสัมพันธ์อย่างแน่นหนาโดยไม่คำนึงถึง microservices ฉันจะแนะนำให้กับ sprocs โดยทั่วไป แต่ไม่ได้โดยเฉพาะอย่างยิ่งเพราะคุณกำลังใช้ microservices มันเป็นข้อโต้แย้งเหมือนเมื่อก่อน: ฉันไม่คิดว่าสโกรคเป็นหนทางที่จะไป (โดยทั่วไป) แต่นั่นอาจเป็นความลำเอียงของฉันและมันไม่เกี่ยวข้องกับไมโครไซต์
หนังสือ msa ส่วนใหญ่ (ที่ฉันได้อ่าน) แนะนำว่า microservices ควรเป็นเชิงธุรกิจ (ออกแบบโดยใช้ ddd) โดยการย้ายตรรกะทางธุรกิจไปยังกระบวนงานที่เก็บไว้ในฐานข้อมูลจะไม่เป็นเช่นนั้นอีกต่อไป
นี่เป็นสิ่งที่ฉันเข้าใจเกี่ยวกับ sprocs: ตรรกะทางธุรกิจในฐานข้อมูล แม้ว่าจะไม่ได้ตั้งใจก็ตาม แต่ก็มีแนวโน้มที่จะจบลงด้วยวิธีนั้นเสมอ
แต่อีกครั้งจับที่มีอยู่โดยไม่คำนึงว่าคุณใช้ microservices หรือไม่ เหตุผลเดียวที่ดูเหมือนว่าปัญหาที่ใหญ่กว่าก็คือเพราะไมโครบริการผลักดันให้คุณปรับปรุงสถาปัตยกรรมทั้งหมดของคุณให้ทันสมัย