Redis สามารถใช้เป็นผับย่อยแบบเรียลไทม์ได้เช่นเดียวกับ Kafka
ฉันสับสนว่าจะใช้อันไหนดีเมื่อไหร่
กรณีการใช้งานใด ๆ จะช่วยได้มาก
Redis สามารถใช้เป็นผับย่อยแบบเรียลไทม์ได้เช่นเดียวกับ Kafka
ฉันสับสนว่าจะใช้อันไหนดีเมื่อไหร่
กรณีการใช้งานใด ๆ จะช่วยได้มาก
คำตอบ:
Redis pub-sub ส่วนใหญ่เป็นเหมือนระบบไฟและลืมซึ่งข้อความทั้งหมดที่คุณผลิตจะถูกส่งไปยังผู้บริโภคทั้งหมดในคราวเดียวและข้อมูลจะถูกเก็บไว้ที่ใด คุณมีข้อ จำกัด ด้านความจำเกี่ยวกับ Redis นอกจากนี้จำนวนผู้ผลิตและผู้บริโภคอาจส่งผลต่อประสิทธิภาพใน Redis
ในทางกลับกัน Kafka เป็นบันทึกแบบกระจายที่มีปริมาณงานสูงซึ่งสามารถใช้เป็นคิวได้ ที่นี่มีผู้ใช้จำนวนเท่าใดก็ได้และผู้บริโภคสามารถบริโภคได้ตลอดเวลาที่ต้องการ นอกจากนี้ยังให้ความคงอยู่สำหรับข้อความที่ส่งผ่านคิว
รอบชิงชนะเลิศ:
ใช้ Redis:
ใช้คาฟคา:
redis
เพื่อให้แน่ใจว่าข้อความที่ที่ได้รับการส่งแต่ไม่ได้รับการประมวลผลredis
จะยังไม่หายไปหลังจากที่เริ่มต้นของ แม้ว่าจะเป็นไปได้ที่จะทำเช่นนั้น แต่redis
ก็ไม่อนุญาตให้ถือ (หรือเก็บเพื่อนำคำของ @Karthikeyan กลับมาใช้ใหม่) นอกกรอบ
Redis เวอร์ชัน5.0+มีโครงสร้างข้อมูลสตรีม ถือได้ว่าเป็นโครงสร้างข้อมูลบันทึกที่มีการรับประกันการจัดส่ง มีชุดการดำเนินการบล็อกที่ช่วยให้ผู้บริโภครอข้อมูลใหม่ที่ผู้ผลิตเพิ่มเข้ามาในสตรีมและนอกเหนือจากแนวคิดที่เรียกว่ากลุ่มผู้บริโภค
โดยทั่วไปโครงสร้างสตรีมให้ capabilites เดียวกับ Kafka
นี่คือเอกสารhttps://redis.io/topics/streams-intro
มีไคลเอนต์ Java ที่ได้รับความนิยมสูงสุดสองตัวที่รองรับคุณสมบัตินี้: Redissonและ Jedis