คำถามติดแท็ก microservices

Microservices เป็นกระบวนการอิสระขนาดเล็กที่สื่อสารกันเพื่อสร้างแอพพลิเคชั่นที่ซับซ้อนซึ่งใช้ภาษาที่ไม่เชื่อเรื่องพระเจ้า บริการเหล่านี้เป็นหน่วยการสร้างขนาดเล็กแยกออกอย่างมากและมุ่งเน้นไปที่การทำงานขนาดเล็กอำนวยความสะดวกวิธีการแบบแยกส่วนเพื่อการสร้างระบบ

4
การจัดการการเปลี่ยนแปลงในสถาปัตยกรรม microservice ที่ขับเคลื่อนด้วยเหตุการณ์
ฉันกำลังทำโครงการวิจัยที่ฉันค้นคว้าตัวเลือกเพื่อจัดการการเปลี่ยนแปลงในสถาปัตยกรรมไมโครบริการที่ขับเคลื่อนด้วยเหตุการณ์ สมมุติว่าเรามีแอปพลิเคชั่นที่ให้บริการต่าง ๆ สี่อย่าง แต่ละบริการเหล่านี้มีฐานข้อมูลของตัวเองเพื่อเก็บข้อมูลในเครื่อง ในการตั้งค่านี้บริการสี่รายการสื่อสารกันโดยใช้ Event Bus ดังนั้นเมื่อมีสิ่งใดเกิดขึ้นในบริการมันจะเผยแพร่กิจกรรม บริการอื่น ๆ ทั้งหมดที่มีความสนใจในเหตุการณ์นั้นจะดำเนินการด้วยวิธีของตนเอง ในกรณีนี้บริการต่าง ๆ ในสถาปัตยกรรมจำเป็นต้องมี "สัญญา" เกี่ยวกับเนื้อหาของเหตุการณ์เหล่านี้ (แอตทริบิวต์ ฯลฯ ) ดังนั้นบริการจึงมี "การพึ่งพาคู่กันอย่างหลวม ๆ " ต่อเหตุการณ์เหล่านี้ คำถามของฉันคือ: เราจะจัดการการเปลี่ยนแปลงในเหตุการณ์เหล่านี้ได้อย่างไร ดังนั้นบริการสมมติว่าลงทะเบียนผู้ใช้ใหม่ในแอปพลิเคชัน ดังนั้นจึงส่งกิจกรรม "" UserRegistered "Service B เลือกกิจกรรมนั้นและประมวลผล แต่นักพัฒนาบางคนในทีมบริการ C ตัดสินใจว่าพวกเขาต้องการเพศของผู้ใช้ที่ลงทะเบียนด้วยดังนั้นเหตุการณ์จึงเปลี่ยนไปและแอตทริบิวต์เพศ ถูกเพิ่มไปยังเหตุการณ์ "UserRegistered" เราจะมั่นใจได้อย่างไรว่า Service B ยังสามารถรับเหตุการณ์เดียวกันด้วยคุณสมบัติพิเศษนั้นโดยไม่ต้องปรับใช้ซ้ำ และมีวิธีอื่นในการแก้ไขปัญหานี้แล้วกำหนดเหตุการณ์เหล่านี้หรือไม่

4
Microservices และ shared library
เรากำลังออกแบบระบบโดยใช้ไมโครไซต์อิสระ (เชื่อมต่อผ่านบัส RabbitMq) รหัสจะ (สำหรับส่วนประกอบแรกอย่างน้อย) เขียนเป็น python (ทั้ง python2 และ python3) เรามีแอปพลิเคชั่นก้อนเดียวที่ใช้ตรรกะทางธุรกิจบางอย่างซึ่งเราต้องการ refactor เป็น microservices และขยาย คำถามหนึ่งที่ทำให้ฉันกังวลก็คือ: เป็นวิธีที่ดีที่สุดในการแบ่งปันรหัสระหว่างไมโครไซต์ต่างๆ เรามีฟังก์ชั่นผู้ช่วยทั่วไป (การประมวลผลข้อมูลการบันทึกการแยกวิเคราะห์การกำหนดค่า ฯลฯ ) ซึ่งจะต้องใช้โดยไมโครไซต์หลายรายการ Microservices จะพัฒนาเป็นโครงการแยกต่างหาก (git repositories) ห้องสมุดทั่วไปสามารถพัฒนาเป็นโครงการที่มีในตัวเองได้เช่นกัน ฉันจะแชร์ไลบรารีเหล่านี้ระหว่างไมโครไซต์ได้อย่างไร ฉันเห็นหลายวิธี: คัดลอกเวอร์ชันของไลบรารีที่จำเป็นสำหรับแต่ละ microservice และอัพเดตตามต้องการ ปล่อยไลบรารีทั่วไปไปยัง PyPi ภายในและแสดงรายการไลบรารีเหล่านั้นเป็นการอ้างอิงในข้อกำหนดของ microservice รวมที่เก็บไลบรารีเป็น submodule git ฉันต้องการอ่านเพิ่มเติมเกี่ยวกับแนวทางที่แนะนำวิธีปฏิบัติที่ดีที่สุดประสบการณ์ที่ผ่านมาก่อนที่จะตัดสินใจเลือกวิธีดำเนินการ คุณมีข้อเสนอแนะหรือลิงค์หรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.