- RabbitMQ隊列中可存儲哪些消息?只有字符串?或者我可以選擇我想要存儲的類型:int,binary,string等?
- 一封郵件的最大尺寸是多少?
- 可以創建多少隊列或交換?還是取決於服務器的能力?
回答
理論上任何東西都可以被存儲/作爲消息發送。你實際上不想在隊列中存儲任何東西。如果隊列大部分時間都是空的,系統工作效率最高。您可以發送任何你想要的隊列中有兩個前提條件:
- 您發送可以轉換和從字節串
- 消費者確切地知道事情什麼是獲取和如何將它轉換爲原始對象
字符串是很容易的,他們有一個內置的方法轉換和從字節。如果你知道這是一個字符串,那麼你知道如何將其轉換回來。最好的選擇是使用XML,JSON或YML等標記字符串。這樣你就可以將對象轉換爲字符串,然後再轉換回原始對象;他們在編程語言中工作,所以只要知道如何理解對象,就可以用不同的語言向生產者寫入消費者。我在Java工作。我想發送複雜的消息與字段中的子對象。我使用我自己的消息對象。消息對象有兩個額外的方法
toBytes
和fromBytes
,它們可以轉換爲字節流或從字節流轉換。我使用路由密鑰,毫不懷疑消費者正在接收什麼類型的消息。該消息是可序列化的。這工作正常,但限制,因爲我只能用於其他Java程序。消息的大小受服務器內存的限制,如果它是永久的,那麼也是空閒的硬盤空間。你可能不想發送太大的消息;發送對文件或數據庫的引用可能會更好。
您還可能要對他們的表現措施讀了起來: http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/ http://www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-measurements-part-2/
排隊是重量十分輕巧,你將最有可能被你的連接數的限制。它將最有可能取決於服務器。下面是一個類似問題的一些信息: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2009-February/003042.html
最大郵件大小爲2GB,但對此大小郵件的性能調整無效。 Max Message Size
RabbitMQ服務器軟件並沒有硬性限制隊列的數量,但是服務器運行的硬件可能會影響這個限制。
3a。默認情況下,服務器沒有施加隊列長度限制。但是,您可以通過服務器端策略(配置)或客戶端策略來限制這一點。 Max Queue Length
有一個related post更多的信息和鏈接。
- 1. 什麼是RabbitMQ消息最大大小可以存儲?
- 2. Rabbitmq ready和unack消息
- 3. SQS消息大小
- 4. WCF消息大小
- 5. JMS消息大小
- 6. RabbitMQ消息交換
- 7. RabbitMQ重排消息
- 8. RabbitMQ消息加密
- 9. RabbitMQ消息神祕消失
- 10. System.ServiceModel.CommunicationException - 在大消息大小
- 11. WCF中的消息大小「在線」WCF中的消息大小
- 12. RabbitMQ - 訂閱消息類型,因爲它創建
- 13. NServiceBus RabbitMQ - DirectRoutingTopology與每種消息類型的單獨交換
- 14. MessageQueue名稱和消息隊列大小
- 15. 消息隊列:選擇和大小
- 16. 消息屬性和負載在RabbitMQ
- 17. 修改ProgressDialog消息大小和消息的顏色
- 18. 記錄WCF消息大小
- 19. TextInputLayout錯誤消息大小
- 20. 計算firebase消息大小
- 21. NService總線消息大小
- 22. Nack當前消息和Ack當前消息(rabbitmq,java)之前的所有消息
- 23. RabbitMQ/AMQP中的消息組
- 24. 無法收到消息RabbitMQ
- 25. RabbitMQ等待超時消息
- 26. 同時處理rabbitmq消息
- 27. 獲取rabbitmq消息正文
- 28. RabbitMQ消息中間件
- 29. RabbitMQ正在丟失消息
- 30. rabbitMQ不是我的消息