Servicebus คืออะไรและฉันต้องใช้เมื่อใด


101

ฉันเคยได้ยินพูดคุยเกี่ยวกับNServiceBusแต่ฉันไม่เข้าใจจริงๆว่ามันคืออะไร พวกเขาอ้างว่าเป็น "บัสบริการโอเพ่นซอร์สที่ได้รับความนิยมสูงสุดสำหรับ. net"

ดังนั้น; "รถบัสบริการ" คืออะไรและต้องใช้เมื่อใด


ฉันสายไปงานปาร์ตี้จริงๆฉันจะไม่โพสต์คำตอบนี้เพราะมันไม่ได้เป็นเช่นนั้น แต่ในระยะสั้นถ้าคุณไม่รู้ว่าทำไมคุณถึงต้องการหนึ่งโอกาสที่คุณจะไม่ ... มันจะแก้ปัญหาเฉพาะ ปัญหาที่คุณอาจไม่มีเกี่ยวกับการเชื่อมต่อแอปพลิเคชันและการให้ API รวมศูนย์แก่ธุรกิจของคุณ
สงคราม

9
@ วาร์ดี้ฉันไม่เห็นด้วยกับคำพูดของคุณ การที่คุณไม่เข้าใจอะไรบางอย่างหรือไม่รู้ว่ามันคืออะไรไม่ได้หมายความว่ามันจะไม่ช่วยให้คุณรู้เรื่องนี้
Cristian Toma

นั่นไม่ใช่ข้อแก้ตัวสำหรับความไม่รู้ แต่ชี้ให้เห็นว่ารถบัสบริการเป็นคำที่เกิดขึ้นมากมายเมื่อคุณประสบปัญหาในการแก้ปัญหาดังนั้นคุณจะต้องการหรือไม่และไม่ต้องกังวล มัน.
สงคราม

ฉันต้องการเพิ่มนี้เป็นแก้ไข แต่พื้นฐานจะเปลี่ยนคำถาม ... NServiceBus เป็นที่รู้จักกันในขณะนี้เป็น "แพลตฟอร์มเฉพาะบริการ" และสามารถพบได้ที่particular.net (ซึ่งเป็นที่ที่ NServiceBus.com เปลี่ยนเส้นทางตอนต่อไป)
Dan Atkinson

หากคุณไม่ทราบชื่อหรือแนวคิดของสิ่งที่มีอยู่แล้วก็น่าจะเขียนขึ้นเอง ดังนั้นจึงควรรู้เกี่ยวกับสิ่งเหล่านี้เพื่อให้คุณสามารถใช้งานได้ (หากจำเป็น)
noelicus

คำตอบ:


80

คุณสามารถคิดว่าบัสบริการเป็นอีเธอร์เน็ตของ SOA

ก่อนอื่นมันแนะนำภาษาในการระบุสิ่งต่างๆเช่นที่อยู่ IP ในอีเธอร์เน็ต ชื่อนี้ไม่ใช่สิ่งที่มีอยู่จริง

ถัดไปคุณมีบางสิ่งที่เกี่ยวข้องทางกายภาพในแต่ละโหนดเช่นคิวในกรณีของบัสสำหรับรองรับการสื่อสารแบบกึ่งเชื่อมต่อหรือการ์ดอีเทอร์เน็ตในอุปมา

นอกเหนือจากทางกายภาพแล้วยังมีส่วน "โปรโตคอล" ของการสื่อสารเช่นสแต็ก OSI สำหรับอีเธอร์เน็ต ด้วยบัสนี่คือไลบรารีไคลเอ็นต์ที่ใช้โดยรหัสแอปพลิเคชัน

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

โดยเฉพาะอย่างยิ่งคุณจะพบว่า NServiceBus มีน้ำหนักเบาและใช้งานง่ายเมื่อคุณสร้างความสงบสุขด้วยการใช้เทคโนโลยีการจัดคิว - RabbitMQ, MSMQ, ตาราง SQL ปกติ, Amazon SQS, Azure Storage Queues และ Azure Service Bus


ขอบคุณ! คิดว่าฉันได้ภาพใหญ่แล้ว! จริงๆแล้วถามคำถามนี้เพื่อเตรียมความพร้อมสำหรับเซสชั่นที่คุณจัดขึ้นในคืนนี้ แต่ดูเหมือนว่าฉันจะทำไม่ได้ ..
stiank81

12

ตรวจสอบบทความวิกิพีเดียEnterprise Service Bus

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

หากคุณไม่แน่ใจว่าทำไมคุณถึงต้องการอะไรเช่นนั้นฉันขอแนะนำให้อ่านสิ่งที่ทำให้สถาปัตยกรรมเชิงบริการที่ดี หนังสือที่เปิดโลกทัศน์ของฉันและพิสูจน์ความแตกต่างระหว่างการมีบริการบนเว็บและการมีสถาปัตยกรรมเชิงบริการที่แท้จริงคือสถาปัตยกรรมเชิงบริการของโทมัสเออร์ล: แนวคิดเทคโนโลยีและการออกแบบ


ดังนั้นฉันสามารถใช้เพื่อทำการสื่อสารระหว่างแอปพลิเคชันไคลเอนต์เดสก์ท็อปและเซิร์ฟเวอร์ได้หรือไม่ ที่เซิร์ฟเวอร์อยู่ภายในนั่นคือ
stiank81

คุณทำได้ คุณยังสามารถใช้เพื่อสื่อสารระหว่างบริการต่างๆบริการเวอร์ชันต่างๆ ฯลฯ (รวมถึงสถานการณ์ที่บริการใช้โปรโตคอลที่แตกต่างกัน)
Justin Niessner

11

คำนี้ถูกนำมาใช้กับSOAซึ่งเป็นในทางที่สืบ (ตามคำฉวัดเฉวียน) ของEAI

เมื่อคุณต้องการ? นั่นเป็นคำถามที่ดี มันมาพร้อมกับความซับซ้อนมากมาย

หลักการง่ายๆคือถ้าแก้ปัญหาได้มากกว่าที่เป็นสาเหตุ

ต้องจริงจังถ้าคุณมีสภาพแวดล้อมที่แตกต่างกันและต้องการจัดแนวแอปพลิเคชัน (ที่แตกต่างกัน) (โดยใช้เทคโนโลยีที่แตกต่างกัน) กับกระบวนการทางธุรกิจ จากนั้นการใช้BPELจะเป็นประโยชน์(แต่สิ่งนี้ทำให้เกิดปัญหาโดยการโยกย้าย) ในการเรียบเรียงและออกแบบท่าเต้น

แก้ไข: สิ่งที่ไม่ได้อยู่ในวิกิพีเดียคือการฝึกฝน: ESB สามารถดัดแปลงโดยใช้ตัวเชื่อมต่อพิเศษแอปพลิเคชันเทอร์มินัลเก่าสำหรับใช้กับ Corba หรือ Java Enterprise ซึ่งหมายถึงความสามารถในการทำงานร่วมกัน ข้อเสียเปรียบคือ 'มาตรฐาน' กว่า 100 'รอบ SOAP ซึ่งไม่ร่วมมือโดยไม่ต้องใช้ความพยายามอย่างมาก

คุณต้องการมันแน่นอนหากคุณต้องเชื่อมต่อระบบไอทีภายในหกเดือนหลังจากการควบรวมกิจการของ บริษัท ประกันใหญ่ 2 แห่ง


ดังนั้น - ในแอปพลิเคชันบนเดสก์ท็อปของฉันซึ่งมีการสื่อสารแบบ "ง่าย" กับฝั่งเซิร์ฟเวอร์ไม่จำเป็นต้องใช้ Service Bus มากนัก? สามารถช่วยฉันใช้โมเดลพุชจากเซิร์ฟเวอร์ได้หรือไม่ หรือจะเจ็บปวดมากกว่าที่จะได้รับในสถานการณ์นี้ด้วย?
stiank81

@ stiank81 ขออภัยฉันอ่าน (Enterprise) เซอร์วิสบัสและซินแนปส์ถูกไล่ออก ฉันตรวจสอบลิงก์ของคุณไปยัง NServiceBus ที่พวกเขากำหนดเป้าหมายเหมือนกันคุณไม่ต้องการอะไรแบบนั้นในแอปเซิร์ฟเวอร์ไคลเอนต์ แนวคิดนี้หมายถึงแอปพลิเคชันหลายรายการที่เกี่ยวข้องกับกระบวนการทางธุรกิจ ถ้ามันจะเหมาะกับคุณ? ถ้ามันแก้ปัญหาได้มากกว่าสาเหตุ
รถ stacker

ใช้มัน "ถ้ามันแก้ปัญหาได้มากกว่าสาเหตุ" ... รักเลย
noelicus
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.