คำถามติดแท็ก service-bus

2
คำสั่งที่ควรละเอียดในรูปแบบของ CQ [R] S เป็นอย่างไร
ฉันกำลังพิจารณาโครงการเพื่อเป็นส่วนหนึ่งของ SOA โยกย้ายตาม WCF ของเรามากกว่าที่จะเป็นรูปแบบรถบัสบริการ (อาจ nServiceBus) และการใช้บางขั้นพื้นฐานผับย่อยเพื่อให้บรรลุการแยกคำสั่ง Query ฉันไม่ใช่คนใหม่สำหรับ SOA หรือแม้แต่กับโมเดลบัสเซอร์วิส แต่ฉันยอมรับว่าจนกระทั่งเมื่อเร็ว ๆ นี้แนวคิดเรื่อง "การแยก" ของฉันนั้น จำกัด อยู่ที่การสะท้อนและการจำลองฐานข้อมูล แต่ถึงกระนั้นฉันก็ยังดึงดูดความคิดเพราะมันดูเหมือนจะให้ประโยชน์ทั้งหมดของระบบที่สอดคล้องกันในที่สุดในขณะที่หลีกเลี่ยงข้อเสียที่เห็นได้ชัดหลายประการ (โดยเฉพาะอย่างยิ่งการขาดการสนับสนุนการทำธุรกรรมที่เหมาะสม) ฉันได้อ่านเรื่องราวมากมายจากอุดีดาฮันซึ่งโดยทั่วไปเป็นปรมาจารย์ในสถาปัตยกรรม ESB (อย่างน้อยในโลก Microsoft) แต่สิ่งหนึ่งที่เขาบอกว่าทำให้ฉันปริศนา: เมื่อเรามีเอนทิตีที่ใหญ่ขึ้นและมีฟิลด์มากขึ้นเราก็มีนักแสดงมากขึ้นที่ทำงานกับเอนทิตี้เดียวกันเหล่านั้นและยิ่งมีโอกาสมากขึ้นที่บางสิ่งจะสัมผัสคุณลักษณะบางอย่างของพวกเขาในเวลาใดก็ตาม [ ... ] องค์ประกอบหลักของ CQRS กำลังคิดทบทวนการออกแบบส่วนต่อประสานกับผู้ใช้เพื่อให้เราสามารถจับภาพความตั้งใจของผู้ใช้ของเราได้ว่าการทำให้ลูกค้าเป็นที่ต้องการนั้นเป็นหน่วยงานที่แตกต่างกันสำหรับผู้ใช้มากกว่าการบ่งชี้ว่าลูกค้าย้ายไปแล้ว แต่งงาน การใช้ UI ที่มีลักษณะคล้าย Excel สำหรับการเปลี่ยนแปลงข้อมูลไม่ได้หมายถึงเจตนาตามที่เราเห็นด้านบน - Udi Dahan ชี้แจง CQRS จากมุมมองที่อธิบายไว้ในใบเสนอราคาเป็นการยากที่จะโต้แย้งกับตรรกะนั้น แต่ดูเหมือนว่าจะขัดแย้งกับธัญพืชด้วยความเคารพต่อ SOA SOA (และการบริการทั่วไปโดยทั่วไป) ควรจัดการกับข้อความหยาบๆ …

1
ฉันควรใช้คำสั่งหรือเหตุการณ์หรือไม่?
ความแตกต่างระหว่างคำสั่งและเหตุการณ์ในการสื่อสารรถบัสนั้นค่อนข้างคลุมเครือสำหรับฉัน ฉันรู้ว่าควรดำเนินการคำสั่งเพียงครั้งเดียวในขณะที่เหตุการณ์สามารถจัดการได้หลายครั้ง แต่ฉันก็ยังไม่แน่ใจว่าจะใช้คำสั่งหรือเหตุการณ์เมื่อใด ลองดูตัวอย่าง: เมื่อผู้ใช้ใหม่ลงทะเบียนกับเว็บแอปพลิเคชันเราควรสร้างบัญชีให้เขาและส่งอีเมลยืนยัน การสร้างบัญชี - นี่เป็นจุดที่เหมาะสมในการส่งCreateUserCommandรถบัสและให้ส่วนประกอบเฉพาะจัดการ หรือบางทีสิ่งนี้ไม่ควรนำมาใช้กับการสื่อสารบัสแบบอะซิงโครนัส? เราต้องการให้ผู้ใช้ ba สามารถล็อกอินเข้าสู่แอปพลิเคชันได้ทันที ด้วยรถบัสเราไม่รับประกันว่าคำสั่งจะถูกดำเนินการเมื่อใด การส่งอีเมล - หลังจากส่วนประกอบสร้างบัญชีฉันสามารถเห็นความเป็นไปได้ 2 อย่าง ส่งคำสั่งอื่นไปที่รถบัส SendConfirmationEmailCommand เผยแพร่กิจกรรม UserAccountCreatedEvent และปล่อยให้องค์ประกอบของผู้ส่งอีเมลคว้ามันและมันเป็นงาน ในอีกด้านหนึ่งฉันต้องการอีเมลยืนยันที่จะส่งเพียงครั้งเดียวเท่านั้น (ใช้คำสั่ง) ในทางกลับกันฉันเชื่อว่าอาจมีหลายองค์ประกอบที่สนใจในผู้ใช้ที่ลงทะเบียนใหม่ คนตัดไม้หรือผู้ส่ง SMS คุณจะใช้มันอย่างไร?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.