EMQ ยังคงข้อความ QoS 1/2 อย่างไร


10

EMQ (Erlang MQTT เกอร์)คือ "การกระจายปรับขนาดขนาดใหญ่ขยายสูงโบรกเกอร์ข้อความ MQTT" ที่มีรายงานว่า "1.3 ล้านเชื่อมต่อ MQTT พร้อมกัน" - ดังนั้นจึงอาจช่วยให้จำนวนมากของลูกค้าในการเผยแพร่และสมัครเป็นสมาชิกกับมัน ดูเหมือนว่าลูกค้าบางรายอาจถูกตัดการเชื่อมต่อในเวลาใดก็ตาม

ตามคำถามนี้จะเกิดอะไรขึ้นถ้า Mosquitto มีหน่วยความจำไม่เพียงพอในการจัดเก็บข้อความ QoS 1/2 ถามเกี่ยวกับ Mosquitto:

ใน MQTT ข้อความที่มี QoS 1 หรือ 2 จะต้องส่งมอบอย่างน้อยหนึ่งครั้ง (ข้อความ QoS 2 จะต้องถูกส่งครั้งเดียวอย่างแน่นอน ) หากลูกค้าไม่ได้เชื่อมต่อนายหน้าจะต้องเก็บข้อความไว้จนกว่าลูกค้าจะพร้อมรับ

ดังนั้นEMQจะรักษาข้อความ QoS 1/2 ไว้ได้อย่างไรจนกระทั่งมีการส่งมอบนั่นคือการรีบูทของนายหน้าหรือเกี่ยวกับการ จำกัด หน่วยความจำ


ที่เกี่ยวข้อง: iot.stackexchange.com/q/809/54
Ghanima

คำตอบ:


6

ดังนั้น EMQ จะรักษาข้อความ QoS 1/2 ไว้ได้อย่างไรจนกระทั่งมีการส่งมอบนั่นคือการรีบูทของนายหน้าหรือเกี่ยวกับการ จำกัด หน่วยความจำ

คำตอบน่าจะเป็น: มันไม่ได้ ปัญหาในตัวติดตามบั๊กของพวกเขากล่าวว่า:

ฉันกำลังเผชิญกับปัญหาในการจัดเก็บเซสชันไคลเอนต์ที่มีอยู่หลังจากโบรกเกอร์เริ่มต้นใหม่ ปัจจุบันคุณสมบัตินี้ไม่ได้อยู่ในนายหน้าหรือไม่หรือขาดการกำหนดค่าบางอย่าง?

โบรกเกอร์จะไม่คงอยู่ในเซสชัน

นอกจากนี้หลังจากขุดผ่านปัญหาเพิ่มเติมอีกสองสามรายการฉันพบรายงานนี้ :

ตอนแรกฉันตั้งค่าไคลเอนต์สูงสุดเป็น 1,000K ใน emqttd.config เครื่องของเรามีหน่วยความจำ 8 GB พร้อม 4 คอร์ฉันสามารถเชื่อมต่อการเชื่อมต่อพร้อมกัน 120K ได้อย่างง่ายดาย แต่เมื่อหน่วยความจำเกิน 8 GB emqttd ยุติการทำงาน สิ่งที่ฉันคิดว่าตั้งไคลเอนต์สูงสุดต่อเครื่องจะดีกว่า

เป็นหลัก ณ v2.0.5:

  • ข้อความดูเหมือนจะยังคงอยู่กับไฟล์
  • เมื่อนายหน้าหมดหน่วยความจำมันก็จะพัง

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


1
ดูเหมือนว่าจะแปลก (พูดอย่างน้อย) สำหรับโบรกเกอร์ mqtt ที่ปรับขนาดได้อย่างหนาแน่น
Ghanima

หากคุณกำลังมองหานายหน้า MQTT แบบกระจายที่ยังคงมีข้อความ QoS1 / 2 ไปยังดิสก์ (โดยใช้ LevelDB) จากนั้นดูที่ VerneMQ ( vernemq.com )
Lars Hesel Christensen

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