2015-11-10 6 views
7

जावा के लिए देशी RabbitMQ ग्राहक इस तरह उदाहरण के लिए, कनेक्शन सेटिंग्स पर सेटअप दिल की धड़कन के लिए अनुमति देता है:कैसे RabbitMQ दिल की धड़कन काम

import com.rabbitmq.client.ConnectionFactory; 

... 

ConnectionFactory connectionFactory = new ConnectionFactory(); 
     connectionFactory.setAutomaticRecoveryEnabled(true); 
     connectionFactory.setHost("some://host"); 
     connectionFactory.setConnectionTimeout(5000); 
     connectionFactory.setRequestedHeartbeat(5); // keeps an idle connection alive 

क्या RabbitMQ ग्राहक दिल की धड़कन सेटिंग्स के साथ कर रहा है? क्या यह विशेष विनिमय/कतार में एक स्टब किए गए संदेश भेज रहा है या यह और क्या करता है?

क्या कोई इसे विवरण में समझा सकता है?

+1

आधिकारिक खरगोश एमक्यू डॉक्स में सुनवाई के लिए अनुभाग है - https://www.rabbitmq.com/heartbeats.html – pinepain

उत्तर

6
RMQ Heartbeat documentation से

:

नेटवर्क कई मायनों में असफल हो सकता है, कभी कभी बहुत सूक्ष्म (जैसे उच्च अनुपात पैकेट हानि)। बाधित टीसीपी कनेक्शन ऑपरेटिंग सिस्टम द्वारा पता लगाए जाने के लिए एक मामूली लंबा समय (उदाहरण के लिए लिनक्स पर डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ लगभग 11 मिनट) लेते हैं। एएमक्यूपी 0-9-1 यह सुनिश्चित करने के लिए एक दिल की धड़कन सुविधा प्रदान करता है कि एप्लिकेशन लेयर तुरंत बाधित कनेक्शन (और पूरी तरह उत्तरदायी सहकर्मी) के बारे में पता लगाता है। दिल की धड़कन कुछ नेटवर्क उपकरणों के खिलाफ भी बचाव करती है जो "निष्क्रिय" टीसीपी कनेक्शन को समाप्त कर सकती हैं।

यह कतार या स्टब किए गए संदेश का अनुरोध नहीं है। यह दिल की धड़कन के लिए एक विशिष्ट प्रारूप में भेजे गए पैकेट के साथ एक टीसीपी/आईपी कनेक्शन है।

यदि आप वास्तविक विवरण चाहते हैं, तो आप AMQP 0.9.1 Specification, सेक्शन 4.2.1 और 4.2.7 को how RabbitMQ corrects for errors in the specification पर इरेटा के साथ भी पढ़ सकते हैं।

संबंधित मुद्दे

 संबंधित मुद्दे