0Pricing
C# Academy · บทเรียน

แนวคิดการส่งข้อความ

ทำความเข้าใจคำสั่ง เหตุการณ์ และคิว

แนวคิดการส่งข้อความ เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องใช้การส่งข้อความ

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

MassTransit คืออะไร

MassTransitคือเฟรมเวิร์ก .NET ที่ทำงานอยู่เหนือโบรกเกอร์ข้อความ เช่น RabbitMQ หรือ Azure Service Bus โดยจัดการการทำอนุกรม การกำหนดเส้นทาง การลองใหม่ และงานอื่น ๆ ให้ คุณจึงมุ่งเน้นที่ข้อความและตัวจัดการได้โดยไม่ต้องจัดการรายละเอียดการเชื่อมต่อโบรกเกอร์

dotnet add package MassTransit

คำสั่งเทียบกับเหตุการณ์

จุดประสงค์ของข้อความมีสองแบบที่สำคัญ คำสั่งจะบอกบริการหนึ่งที่ระบุไว้ให้ดำเนินการบางอย่าง ("ChargePayment") ส่วนเหตุการณ์จะแจ้งว่าสิ่งใดสิ่งหนึ่งเกิดขึ้นแล้ว ("OrderPlaced") ให้ผู้ที่สนใจทราบ คำสั่งมีตัวจัดการหนึ่งตัว ส่วนเหตุการณ์มีตัวจัดการได้หลายตัว

การสร้างแบบจำลองคำสั่ง

คำสั่งคือชนิดข้อความธรรมดาที่ตั้งชื่อในลักษณะคำกริยา ส่งคำสั่งนี้ไปยังผู้บริโภคข้อความหนึ่งราย

public record ChargePayment(
    Guid OrderId,
    decimal Amount);

การสร้างแบบจำลองเหตุการณ์

เหตุการณ์จะตั้งชื่อในรูปอดีตกาลและเผยแพร่ไปยังผู้ติดตามที่สนใจทั้งหมด

public record OrderPlaced(
    Guid OrderId,
    string CustomerEmail);

คิว

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

ตัวแลกเปลี่ยนและหัวข้อ

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

MassTransit ใช้สิ่งเหล่านี้อย่างไร

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

การแยกบริการออกจากกันในทางปฏิบัติ

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

การรับประกันการส่ง

โดยทั่วไปโบรกเกอร์จะรับประกันการส่งอย่างน้อยหนึ่งครั้ง ซึ่งหมายความว่าข้อความอาจถูกส่งซ้ำหลังเกิดความล้มเหลว ดังนั้นผู้บริโภคข้อความควรทำงานซ้ำได้อย่างปลอดภัย เพื่อให้การประมวลผลข้อความเดิมสองครั้งไม่ก่อให้เกิดปัญหา

ควรใช้การส่งข้อความเมื่อใด

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

ตรวจสอบอย่างรวดเร็ว

ทดสอบแนวคิดการส่งข้อความ

สรุปทบทวน

การส่งข้อความแบบอะซิงโครนัสช่วยแยกบริการออกจากกันผ่านโบรกเกอร์ MassTransitช่วยซ่อนรายละเอียดของโบรกเกอร์อย่าง RabbitMQ คำสั่ง (เชิงคำกริยา มีตัวจัดการหนึ่งตัว) จะถูกส่งไปยังคิว ส่วนเหตุการณ์ (รูปอดีตกาล มีตัวจัดการหลายตัว) จะถูกเผยแพร่ไปยังตัวแลกเปลี่ยน ซึ่งกระจายต่อไปยังผู้ติดตาม ควรคาดหมายการส่งอย่างน้อยหนึ่งครั้ง ดังนั้นจึงควรทำให้ผู้บริโภคข้อความทำงานซ้ำได้อย่างปลอดภัย

คำถามที่พบบ่อย

บทเรียน “แนวคิดการส่งข้อความ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “แนวคิดการส่งข้อความ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “แนวคิดการส่งข้อความ”

ทำความเข้าใจคำสั่ง เหตุการณ์ และคิว คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “แนวคิดการส่งข้อความ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. แนวคิดการส่งข้อความ
  2. การผลิตและการใช้ข้อความ
  3. ซากาและเวิร์กโฟลว์
  4. การจัดการข้อผิดพลาดและการลองใหม่
← กลับไปที่ C# Academy