Redis Pub/Sub ใช้ระบบการส่งข้อความแบบเรียลไทม์ซึ่งผู้เผยแพร่เผยแพร่ไปยังช่อง/หัวข้อและลูกค้าหลายรายสามารถสมัครสมาชิกช่อง/หัวข้อนั้นได้
ในบทช่วยสอนครั้งสุดท้ายของเรา“ คู่มือผู้เริ่มต้นสำหรับฐานข้อมูลในหน่วยความจำ Redis ” เราได้เรียนรู้เกี่ยวกับ Redis เป็นฐานข้อมูลในหน่วยความจำ และวิธีการแข่งขันกับฐานข้อมูล NOSQL นอกจากนี้เรายังได้เรียนรู้ว่าจะใช้ Redis ที่ไหนและการใช้งานนั้นไม่เหมาะสม ตอนนี้การสร้างบนฐานความรู้นั้นในบทช่วยสอนนี้เราจะได้เรียนรู้เกี่ยวกับ Redis Pub/Sub มันทำงานอย่างไรและการใช้งานที่ดีที่สุดของระบบ Redis Publish/สมัครสมาชิก มาเริ่มกันเลย.
- รูปแบบการเผยแพร่/สมัครสมาชิกคืออะไร
- ผับ/ย่อยทำงานอย่างไร
- คุณควรใช้ Pub/Sub? เมื่อใด
- วิธีใช้ Redis Pub/Sub?
- บทสรุป
รูปแบบการเผยแพร่/สมัครสมาชิกคืออะไร?
เผยแพร่/สมัครสมาชิกหรือใน Pub/Sub สั้น ๆ เป็นรูปแบบการส่งข้อความที่ผู้ส่งและผู้รับข้อความไม่แลกเปลี่ยนข้อความเหล่านั้นโดยตรง ค่อนข้างผู้ส่งข้อความเผยแพร่ไปยังช่อง/หัวข้อ และทุกคนที่ต้องการรับข้อความเหล่านั้นจะสมัครสมาชิกช่อง/หัวข้อ นั่นเป็นคำอธิบายทางเทคนิคมากกว่า ในชีวิตประจำวันของเราเราใช้โมเดล Publish-Subscribe บ่อยครั้งในขณะที่ใช้แพลตฟอร์มโซเชียลมีเดียเช่น YouTube, Twitter, Facebook หรือ Instagram ในกรณีที่ผู้ผลิตเนื้อหาผลิตเนื้อหาและผู้ที่สนใจจะติดตาม / สมัครรับเนื้อหา ดังนั้นนี่คือสิ่งที่ผับ/รูปแบบย่อยทำในสถาปัตยกรรมซอฟต์แวร์เช่นกัน
ผับ/ย่อยทำงานอย่างไร?
ในการพัฒนาซอฟต์แวร์เน้นการใช้ซ้ำได้สูงมาก และรูปแบบการออกแบบทั้งหมดจะขึ้นอยู่กับการสร้างส่วนประกอบหรือโมดูลที่นำกลับมาใช้ใหม่ได้ ดังนั้นเพื่อให้เข้าใจผับ/ย่อยคุณต้องดูว่าแนวคิดนี้มาจากไหนและนักพัฒนาพบว่ามันเป็นรูปแบบได้อย่างไร ในขณะที่สถาปัตยกรรมซอฟต์แวร์พัฒนาขึ้นและใช้โมดูลมากขึ้นพวกเขาก็กลายเป็นการสื่อสาร / การส่งข้อความมากขึ้นเพิ่มขึ้นระหว่างโมดูลและส่วนประกอบ เช่นคิดว่าโมดูลเป็นหน่วยประมวลผลที่ใช้อินพุตและให้เอาต์พุตบางอย่าง และแต่ละอินพุตเป็นข้อความที่หน่วยประมวลผลกระบวนการและสร้างข้อความอื่นเป็นเอาต์พุต ซึ่งจะเป็นอินพุตไปยังโมดูลอื่น ๆ ดังนั้นการเพิ่มขึ้นของการส่งข้อความจึงต้องให้ความสนใจเป็นพิเศษเพื่อให้มีแอปพลิเคชันที่ปรับขนาดได้มีข้อกำหนดที่โมดูลและส่วนประกอบสามารถทำงานได้อย่างอิสระโดยไม่ต้องพึ่งพา ดังนั้นรูปแบบการเผยแพร่/สมัครสมาชิกมา ในหลายระบบผับ/ย่อยผู้เผยแพร่โพสต์ข้อความไปยังนายหน้าข้อความตัวกลางหรือบัสอีเวนต์และสมาชิกลงทะเบียนการสมัครสมาชิกกับนายหน้ารายนั้นปล่อยให้นายหน้าทำการกรอง โดยปกติแล้วนายหน้าจะทำหน้าที่จัดเก็บและไปข้างหน้าเพื่อกำหนดเส้นทางข้อความจากผู้เผยแพร่ไปยังสมาชิก นอกจากนี้นายหน้าอาจจัดลำดับความสำคัญของข้อความในคิวก่อนกำหนดเส้นทาง
คุณควรใช้ Pub/Sub เมื่อใด
แอปพลิเคชันแชทเป็นกรณีการใช้งานแบบคลาสสิกของรูปแบบผับ/ย่อย ในแอปพลิเคชันแชทผู้เข้าร่วมสามารถสมัครสมาชิกห้องสนทนาที่มีหัวข้อผับ/ย่อยที่กำหนด เมื่อผู้ใช้ส่งข้อความไปยังห้องแชทอินสแตนซ์แอพแชทของเธอจะเผยแพร่ข้อความในหัวข้อของห้องสนทนานั้น สมาชิกของหัวข้อรับข้อความ บริการคิวข้อความ / การเข้าคิวข้อความหรือแอปพลิเคชันการประมวลผลแบบแบตช์สามารถใช้รูปแบบผับ / ย่อยได้ ในกรณีที่ทุกคนที่ต้องการงานเฉพาะที่ทำจะเผยแพร่ข้อความไปยังคิวและหน่วยประมวลผลที่สมัครเข้าคิวนั้นจะได้รับข้อความเพื่อประมวลผลงาน ให้หารือเกี่ยวกับข้อดีบางอย่างของรูปแบบผับ/ย่อย
- การมีเพศสัมพันธ์แบบหลวมระหว่างส่วนประกอบของระบบ
- มุมมองที่ดีขึ้นของเวิร์กโฟลว์ทั่วทั้งระบบ
- ช่วยให้การรวมที่ดีขึ้นและเร็วขึ้น
- ทำให้มั่นใจได้ถึงความยืดหยุ่นที่ราบรื่นขึ้น
- รับประกันความน่าเชื่อถือที่สอดคล้องกัน
- สร้างความยืดหยุ่น
- ซอฟต์แวร์แบบแยกส่วน
- การพัฒนาซอฟต์แวร์ Agnostic Language
- ความชัดเจนในตรรกะทางธุรกิจ
- ปรับปรุงการตอบสนอง
วิธีใช้ Redis Pub/Sub
สำหรับการติดตั้ง Redis คุณสามารถอ้างถึง [การสอนสุดท้าย] ของฉัน 1 ตัวอย่างนี้อธิบายว่าแนวคิดของผู้เผยแพร่และสมาชิกทำงานอย่างไร ในตัวอย่างต่อไปนี้ไคลเอนต์หนึ่งสมัครสมาชิกช่องชื่อ ‘Redischat’
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
ตอนนี้ลูกค้าสองรายกำลังเผยแพร่ข้อความในช่องสัญญาณเดียวกันชื่อ ‘Redischat’ และไคลเอนต์ที่สมัครไว้ข้างต้นกำลังรับข้อความ
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great"
1) "message"
2) "redisChat"
3) "Learn redis"
บทสรุป
ในบทช่วยสอนนี้เราได้เรียนรู้เกี่ยวกับรูปแบบการออกแบบการเผยแพร่/สมัครสมาชิก และสำรวจว่า Redis Pub/Sub ทำงานอย่างไร นอกจากนี้เรายังสำรวจว่ากรณีที่ดีที่สุดของ Redis Pub/Sub, การส่งข้อความแบบเรียลไทม์คืออะไร ในบทช่วยสอนที่กำลังจะมาถึงเราจะสำรวจ Redis เพิ่มเติมและอธิบายว่าเราสามารถใช้ Redis Pub/Sub กับ Node.js เพื่อสร้างแอปพลิเคชันแชทแบบเรียลไทม์ได้อย่างไร