2013-08-23 10 views
36

खरगोश एमक्यू/एएमक्यूपी जावा क्लाइंट में, आप AMQP.BasicProperties.Builder बना सकते हैं, और इसे build()AMQP.BasicProperties का एक उदाहरण उपयोग कर सकते हैं। इस निर्मित गुणों का उदाहरण तब सभी प्रकार की महत्वपूर्ण चीजों के लिए उपयोग किया जा सकता है।RabbitMQ AMQP.BasicProperties.Bilder मान

BasicProperties.Builder propsBuilder = new BasicProperties.Builder(); 
propsBuilder 
    .appId(???) 
    .clusterId(???) 
    .contentEncoding(???) 
    .contentType(???) 
    .correlationId(???) 
    .deliveryMode(2) 
    .expiration(???) 
    .headers(???) 
    .messageId(???) 
    .priority(???) 
    .replyTo(???) 
    .timestamp(???) 
    .type(???) 
    .userId(???); 

मैं क्या क्षेत्रों के लिए देख रहा हूँ इन builer तरीकों मदद "का निर्माण-अप", और सबसे महत्वपूर्ण बात, क्या मान्य मान के लिए मौजूद हैं: इस बिल्डर वर्ग पर उपलब्ध "बिल्डर" शैली तरीकों के बहुत सारे हैं प्रत्येक फ़ील्ड। उदाहरण के लिए, clusterId क्या है, और इसके मान्य मूल्य क्या हैं? type क्या है, और इसके मान्य मूल्य क्या हैं? आदि

मैं सभी सुबह दस्त बिताए हैं:

इन सभी डॉक्स में, मैं स्पष्ट परिभाषाएँ नहीं मिल रहा है (के अलावा कुछ अस्पष्ट क्या priority, contentEncoding और deliveryMode हैं की व्याख्या) इन क्षेत्रों में से प्रत्येक क्या कर रहे हैं की, और क्या उनके मान्य मान कर रहे हैं। क्या कोई जानता है? सबसे महत्वपूर्ण बात यह है कि क्या कोई जानता है कि ये कहां दस्तावेज किए गए हैं? अग्रिम में धन्यवाद!

+0

एक दिन, जावा के लिए इन एपीआई लिखने वाले लोग ENUMS के बारे में जानेंगे। – PedroD

उत्तर

66

आमतौर पर मैं कुछ याद रखने के लिए बहुत ही सरल दृष्टिकोण का उपयोग करता हूं। मैं नीचे सभी विवरण प्रदान करूंगा, लेकिन यहां बेसिकप्रोपर्टीज फ़ील्ड और मानों की एक साधारण तस्वीर है। मैंने कतार/सर्वर और एप्लिकेशन संदर्भ को ठीक से हाइलाइट करने का भी प्रयास किया है।

enter image description here

तुम मुझे यह थोड़ा बढ़ाने के लिए चाहते हैं - बस एक छोटा सा टिप्पणी छोड़ देते हैं। मैं वास्तव में कुछ दृश्य कुंजी प्रदान करना और समझ को सरल बनाना चाहता हूं।

उच्च स्तर वर्णन (source 1, source 2):

कृपया ध्यान दें Clust आईडी पदावनत किया गया है, तो मैं इसे बाहर निकाल देगा।

  • अनुप्रयोग ID - अनुप्रयोग है कि संदेश का उत्पादन पहचानकर्ता।
    • संदर्भ: आवेदन
    • मान: कोई स्ट्रिंग हो सकती है।
  • सामग्री एन्कोडिंग - संदेश की सामग्री एन्कोडिंग
    • प्रसंग: अनुप्रयोग का उपयोग
    • मूल्य: माइम सामग्री एन्कोडिंग (जैसेआवेदन/json)
  • सामग्री प्रकार - संदेश सामग्री प्रकार
    • प्रसंग: आवेदन उपयोग
    • मूल्य: माइम सामग्री प्रकार (उदाहरण के लिए gzip)
  • सहसंबंध आईडी - संदेश इस से संबंधित है, उदाहरण के लिए इस संदेश का क्या जवाब है। इस जानकारी को संदेश पेलोड में डालने के बजाय इस विशेषता का उपयोग करने के लिए एप्लिकेशन को प्रोत्साहित किया जाता है।
    • प्रसंग: आवेदन उपयोग
    • मान: किसी भी मूल्य
  • वितरण मोड - संदेश डिस्क पर कायम किया जाना चाहिए?
    • प्रसंग: कतार कार्यान्वयन उपयोग
    • मूल्य: गैर लगातार (1) या लगातार (2)
  • समय सीमा समाप्ति - समाप्ति समय जिसके बाद संदेश हटा दिया जाएगा। समाप्ति क्षेत्र का मूल्य टीटीएल अवधि को मिलीसेकंड में वर्णित करता है। कृपया नीचे विवरण देखें।
    • प्रसंग: कतार कार्यान्वयन उपयोग
  • हेडर - मनमानी आवेदन विशेष संदेश शीर्षक।
    • प्रसंग: आवेदन उपयोग
  • संदेश ID - संदेश स्ट्रिंग के रूप पहचानकर्ता। यदि अनुप्रयोगों को संदेशों की पहचान करने की आवश्यकता है, तो यह अनुशंसा की जाती है कि वे इस विशेषता का उपयोग संदेश पेलोड में डालने के बजाय करें।
    • प्रसंग: अनुप्रयोग का उपयोग
    • मान: किसी भी मूल्य
  • प्राथमिकता - संदेश प्राथमिकता।
    • प्रसंग: कतार कार्यान्वयन उपयोग
    • मान: 0 9 ReplyTo को
  • - कतार नाम अन्य एप्लिकेशन के जवाब भेजना चाहिए। आम तौर पर एक उत्तर कतार (या कोई अन्य पहचानकर्ता नाम देने के लिए उपयोग किया जाता है जो उपभोक्ता अनुप्रयोग को इसकी प्रतिक्रिया को निर्देशित करने में मदद करता है)। इस जानकारी को संदेश पेलोड में डालने के बजाय इस विशेषता का उपयोग करने के लिए एप्लिकेशन को प्रोत्साहित किया जाता है।
    • प्रसंग: अनुप्रयोग का उपयोग
    • मान: किसी भी मूल्य
  • टाइमस्टैम्प - पल की टाइमस्टैम्प देखें जब संदेश भेजा गया था।
    • संदर्भ: अनुप्रयोग का उपयोग
    • मूल्य: युग के बाद से सेकंड।
  • टाइप - संदेश का प्रकार, उदा। इस संदेश का प्रतिनिधित्व किस प्रकार की घटना या आदेश है। संदेश पेलोड में इस जानकारी को शामिल करने के बजाय अनुप्रयोगों द्वारा उपयोग किए जाने की अनुशंसा की जाती है।
    • संदर्भ: आवेदन
    • मान: कोई स्ट्रिंग हो सकती है।
  • उपयोगकर्ता आईडी - वैकल्पिक उपयोगकर्ता आईडी। वास्तविक कनेक्शन उपयोगकर्ता नाम के खिलाफ RabbitMQ द्वारा सत्यापित।
    • प्रसंग: कतार कार्यान्वयन उपयोग
    • मूल्य: उपयोगकर्ता प्रमाणीकृत किया जाना चाहिए।

         content_type  = <<"text/plain">>, 
             content_encoding = <<"UTF-8">>, 
             delivery_mode = 2, 
             priority   = 1, 
             correlation_id = <<"123">>, 
             reply_to   = <<"something">>, 
             expiration  = <<"my-expiration">>, 
             message_id  = <<"M123">>, 
             timestamp  = 123456, 
             type    = <<"freshly-squeezed">>, 
             user_id   = <<"joe">>, 
             app_id   = <<"joe's app">>, 
             headers   = [{<<"str">>, longstr, <<"foo">>}, 
                  {<<"int">>, longstr, <<"123">>}] 
      

      अच्छा:

Btw, मैं अंत में नवीनतम Sever कोड की समीक्षा करने के प्रबंधित किया है (RabbitMQ-server-3.1.5), वहाँ rabbit_stomp_test_util.erl में एक उदाहरण है किसी को जानना सभी विवरण जानना चाहता है। क्योंकि संदेश निकाय में जानकारी रखने के बजाय जब संभव हो तो प्रसिद्ध संदेश विशेषताओं का उपयोग करना बेहतर होता है। बीटीडब्ल्यू, मूल संदेश गुण स्पष्ट और उपयोगी होने से बहुत दूर हैं। मैं कहूंगा कि एक कस्टम का उपयोग करना बेहतर है।

enter image description here

अच्छा उदाहरण (source)

enter image description here

अद्यतन - समाप्ति क्षेत्र

महत्वपूर्ण नोट: समाप्ति संदर्भ कतार के अंतर्गत आता है। इसलिए सर्वर द्वारा संदेश छोड़ा जा सकता है।

enter image description here

README कहते हैं निम्नलिखित:

expiration एक shortstr है; चूंकि RabbitMQ यह एक एन्कोडेड स्ट्रिंग होने की अपेक्षा करेगा, इसलिए हम ttl को इसके पूर्णांक मान के स्ट्रिंग प्रस्तुति पर अनुवाद करते हैं।

सूत्रों का कहना है:

+0

सामग्री एन्कोडिंग और सामग्री प्रकार के लिए मान विवरण को स्वैप करना होगा। –

+0

@ स्लेवेनरेज़िक, आप बहुत सही हैं। गलती के लिए खेद है और धन्यवाद। –

0

AMQP कल्पना गुण के लिए एक सामान्य, एक्स्टेंसिबल मॉडल को परिभाषित करता है।

एएमक्यूपी गुण कुछ हद तक HTTP शीर्षकों के अवधारणा में समान हैं, जिसमें वे प्रश्न में संदेशों के बारे में मेटाडेटा का प्रतिनिधित्व करते हैं। जैसे ही HTTP में, वे संदेश पेलोड में framed separately हैं। लेकिन वे मूल रूप से एक कुंजी/मूल्य मानचित्र हैं।

खरगोश एमक्यू जैसे कुछ ब्रोकर अतिरिक्त विक्रेता-विशिष्ट मूल्य (उस मामले में, enforcing a TTL) जोड़ने के लिए expiration जैसे कुछ संदेश गुणों की व्याख्या करेंगे।

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

यह कहा जा रहा है कि, यदि आप पहले से ही यह प्रश्न पूछ रहे हैं तो आपको शायद उनके बारे में चिंता करने की आवश्यकता नहीं है। आप किसी संदेश संदेश को सेट करने के बारे में चिंता किए बिना संदेशों को सफलतापूर्वक भेजने में सक्षम होंगे।

8

लेखन के समय:

  1. नवीनतम AMQP मानक AMQP 1.0 OASIS Standard है।
  2. खरगोश एमक्यू का नवीनतम संस्करण 3.1.5 (सर्वर और क्लाइंट) है, जो AMQP 0.9.1 (पीडीएफ और एक्सएमएल स्कीमा ज़िप्ड) का समर्थन करने का दावा करता है।
  3. खरगोश एमक्यू XML schema including extensions (यानी गैर मानक) के साथ प्रोटोकॉल का अपना विवरण प्रदान करता है, साथ ही XML schema without extensions (जो स्कीमा (2) के माध्यम से जुड़ा हुआ है) और pdf doc

इस जवाब में: में

  • लिंक (3) विस्तार का प्राथमिक स्रोत हैं
  • (2) यदि (3) अपर्याप्त है
  • पीडीएफ दस्तावेज़ माध्यमिक विस्तार के रूप में प्रयोग किया जाता है स्रोत कोड (जावा क्लाइंट, एरलांग सर्वर) का उपयोग तृतीयक विस्तार के रूप में किया जाता है यदि (2) अपर्याप्त है।
  • (1) आमतौर पर उपयोग नहीं किया जाता है - प्रोटोकॉल और स्कीमा ओएएसआईएस द्वारा/काफी हद तक विकसित (काफी) विकसित किया गया है और इसे RabbitMQ के भविष्य के संस्करणों पर लागू होना चाहिए, लेकिन अब आवेदन न करें। दो अपवाद जहां (1) का उपयोग किया गया था contentType और contentEncoding के पाठ विवरणों के लिए था - जो सुरक्षित है, क्योंकि ये मानक फ़ील्ड AMQP 1.0 में अच्छे विवरण के साथ हैं।

थोड़ा और संक्षिप्त या स्पष्ट करने के लिए मेरे द्वारा इन स्रोतों से निम्नलिखित पाठ को पारदर्शी किया गया है।

  • सामग्री प्रकार (AMQP एक्सएमएल प्रकार = "shortstr", जावा प्रकार = "स्ट्रिंग"): वैकल्पिक।संदेश के एप्लिकेशन-डेटा अनुभाग (बॉडी) के लिए आरएफसी -2046 एमआईएमई प्रकार। इस्तेमाल किए गए वर्ण एन्कोडिंग को परिभाषित करने वाला एक वर्णमाला पैरामीटर हो सकता है: उदा।, 'टेक्स्ट/सादा; charset = "utf-8" '। जहां सामग्री प्रकार अज्ञात है सामग्री प्रकार को सेट नहीं किया जाना चाहिए, जिससे प्राप्तकर्ता वास्तविक प्रकार निर्धारित कर सकता है। जहां अनुभाग वास्तव में अपारदर्शी बाइनरी डेटा के रूप में जाना जाता है, सामग्री-प्रकार को एप्लिकेशन/ऑक्टेट-स्ट्रीम पर सेट किया जाना चाहिए।
  • सामग्री-एन्कोडिंग (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा प्रकार = "स्ट्रिंग"): वैकल्पिक। उपस्थित होने पर, अनुप्रयोग-डेटा पर लागू अतिरिक्त सामग्री एन्कोडिंग का वर्णन करता है, और इस प्रकार सामग्री-प्रकार शीर्षलेख फ़ील्ड द्वारा संदर्भित मीडिया-प्रकार प्राप्त करने के लिए किस डिकोडिंग तंत्र को लागू करने की आवश्यकता होती है। मुख्य रूप से किसी अंतर्निहित सामग्री प्रकार की पहचान खोए बिना किसी दस्तावेज़ को संपीड़ित करने की अनुमति देने के लिए उपयोग किया जाता है। आरएफसी 2616 की धारा 3.5 के अनुसार व्याख्या की गई सामग्री-प्रकार के लिए एक संशोधक। वैध सामग्री-एन्कोडिंग आईएएनए में पंजीकृत हैं। कार्यान्वयन को अन्य प्रोटोकॉल के साथ मूल रूप से भेजे गए संदेशों के साथ संगत रहने के अलावा, संपीड़न एन्कोडिंग का उपयोग नहीं करना चाहिए, उदा। HTTP या एसएमटीपी। कार्यान्वयन को अन्य प्रोटोकॉल के साथ मूल रूप से भेजे गए संदेशों के साथ संगत होने के अलावा कई सामग्री-एन्कोडिंग मान निर्दिष्ट नहीं करना चाहिए, उदा। HTTP या एसएमटीपी।
  • शीर्षलेख (AMQP XML प्रकार = "तालिका"; जावा प्रकार = "मानचित्र"): वैकल्पिक। हेडर पैरामीटर और उनके मानों की एक एप्लिकेशन-निर्दिष्ट सूची। ये केवल एप्लिकेशन के उपयोग के लिए सेटअप हो सकते हैं। इसके अतिरिक्त, "हेडर एक्सचेंज टाइप" के साथ कतार बनाना संभव है - जब कतार बनाई जाती है, तो इसे मिलान करने के लिए हेडर प्रॉपर्टी नामों की एक श्रृंखला दी जाती है, प्रत्येक वैकल्पिक मान मिलान के साथ होता है, ताकि इस कतार में रूटिंग हेडर के माध्यम से हो -मेल मिलाना।
  • deliveryMode (RabbitMQ एक्सएमएल प्रकार = "ओकटेट", जावा प्रकार = "पूर्णांक"): (गैर लगातार) या (लगातार)। केवल कतारों के लिए काम करता है जो दृढ़ता को लागू करते हैं। एक लगातार संदेश डिस्क पर सुरक्षित रूप से आयोजित की और दिया जाएगा, भले ही एक गंभीर नेटवर्क विफलता, सर्वर क्रैश, अतिप्रवाह आदि
  • प्राथमिकता (AMQP एक्सएमएल प्रकार = "ओकटेट" है की गारंटी है; जावा प्रकार = "पूर्णांक"): सापेक्ष संदेश प्राथमिकता (0 से 9)। एक उच्च प्राथमिकता संदेश है [मई हो सकता है ?? - जीबी] एक ही संदेश कतार में प्रतीक्षा करने वाले कम प्राथमिकता संदेशों से पहले भेजा गया। जब विशिष्ट सेवा गुणवत्ता स्तर को बनाए रखने के लिए संदेशों को त्याग दिया जाना चाहिए तो सर्वर पहले कम प्राथमिकता वाले संदेशों को त्याग देगा। केवल प्राथमिकताओं को लागू करने वाली कतारों के लिए काम करता है।
  • सहसंबंध-आईडी (एएमक्यूपी एक्सएमएल प्रकार = "ऑक्टेट"; जावा प्रकार = "स्ट्रिंग"): वैकल्पिक। आवेदन के उपयोग के लिए, औपचारिक (RabbitMQ) व्यवहार नहीं। क्लाइंट-विशिष्ट आईडी जिसका उपयोग ग्राहकों के बीच संदेशों को चिह्नित या पहचानने के लिए किया जा सकता है।
  • उत्तर (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। आवेदन के उपयोग के लिए, कोई औपचारिक (RabbitMQ) व्यवहार नहीं है लेकिन अनुरोध संदेशों में उपयोग किए जाने पर निजी प्रतिक्रिया कतार का नाम हो सकता है। जवाब भेजने के लिए नोड का पता।
  • समाप्ति (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। RabbitMQ AMQP 0.9.1 schema से (3) राज्यों "कार्यान्वयन के उपयोग के लिए, कोई औपचारिक व्यवहार नहीं है"। (2) से एएमक्यूपी 0.9.1 स्कीमा पीडीएफ एक पूर्ण समय बताता है जब इस संदेश को समाप्त होने के लिए माना जाता है। हालांकि, इन दोनों विवरणों को को अनदेखा किया जाना चाहिए क्योंकि this TTL link और क्लाइंट/सर्वर कोड इंगित करता है कि निम्नलिखित सत्य है। ग्राहक से, समाप्ति केवल मूलप्रॉपर्टीज के कस्टम एप्लिकेशन प्रारंभिकरण के माध्यम से पॉप्युलेट की जाती है। सर्वर पर, यह क्यूईइंग से पहले सर्वर पर संदेश प्राप्त होने वाले बिंदु से टीटीएल निर्धारित करने के लिए प्रयोग किया जाता है।सर्वर (1) संदेश टीटीएल और (2) कतार टीटीएल (मिलीसेकेंड में विन्यस्त एक्स-संदेश-टीटीएल) (ग्राहक मिलीसेकेंड में एक रिश्तेदार समय रूप BasicProperties समाप्ति) की न्यूनतम के रूप में टीटीएल चयन करता है। प्रारूप: मिलीसेकंड की संख्या का प्रतिनिधित्व करने वाला स्ट्रिंग उद्धृत पूर्णांक; सर्वर पर संदेश से प्राप्त होने की समाप्ति का समय।
  • संदेश-आईडी (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। आवेदन के उपयोग के लिए, औपचारिक (RabbitMQ) व्यवहार नहीं। यदि सेट किया गया है, तो संदेश निर्माता को इसे वैश्विक स्तर पर अद्वितीय मूल्य पर सेट करना चाहिए। भविष्य में (एएमक्यूपी 1.0), ब्रोकर मई को डुप्लिकेट के रूप में एक संदेश को त्याग सकता है यदि संदेश-आईडी का मान उसी नोड को भेजे गए पहले प्राप्त संदेश से मेल खाता है।
  • टाइमस्टैम्प (एएमक्यूपी एक्सएमएल प्रकार = "टाइमस्टैम्प"; जावा टाइप = "जावा.यूटिल.डेट"): वैकल्पिक। आवेदन के उपयोग के लिए, औपचारिक (RabbitMQ) व्यवहार नहीं। एक पूर्ण समय जब यह संदेश बनाया गया था।
  • टाइप (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। आवेदन के उपयोग के लिए, औपचारिक (RabbitMQ) व्यवहार नहीं। [संदेश को एप्लिकेशन-विशिष्ट "प्रकार" या "फॉर्म" या "व्यापार लेनदेन" के रूप में वर्णित/जीबी]
  • उपयोगकर्ता आईडी (एएमक्यूपी एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। एक्सएमएल स्कीमा का कहना है, "आवेदन के उपयोग के लिए, औपचारिक (खरगोश एमक्यू) व्यवहार नहीं" - लेकिन मेरा मानना ​​है कि यह नवीनतम रिलीज में बदल गया है (पढ़ना)। यदि सेट किया गया है, तो ग्राहक इस मान को संदेश बनाने के लिए जिम्मेदार उपयोगकर्ता की पहचान के रूप में सेट करता है। RabbitMQ से: यदि यह प्रॉपर्टी किसी प्रकाशक द्वारा सेट की गई है, तो इसका मान कनेक्शन खोलने के लिए उपयोग किए गए उपयोगकर्ता के नाम के बराबर होना चाहिए (यानी सत्यापन यह सुनिश्चित करने के लिए होता है कि यह कनेक्ट/प्रमाणित उपयोगकर्ता है)। यदि उपयोगकर्ता-आईडी प्रॉपर्टी सेट नहीं है, तो प्रकाशक की पहचान निजी बनी हुई है।
  • ऐपआईडी (खरगोश एमक्यू एक्सएमएल प्रकार = "शॉर्टस्ट्र"; जावा टाइप = "स्ट्रिंग"): वैकल्पिक। आवेदन के उपयोग के लिए, औपचारिक (RabbitMQ) व्यवहार नहीं। निर्माण अनुप्रयोग आईडी। उत्पादकों द्वारा आबादी और उपभोक्ताओं द्वारा पढ़ा जा सकता है। (आर-एमक्यू सर्वर कोड को देखते हुए, इसका उपयोग सर्वर द्वारा बिल्कुल नहीं किया जाता है, हालांकि "वेबमाचिन-रैपर" प्लगइन एक वेबमाचिन बनाने के लिए एक स्क्रिप्ट और मेल खाने वाले टेम्पलेट प्रदान करता है - जहां एक व्यवस्थापक स्क्रिप्ट को एपआईड प्रदान कर सकता है।)
  • क्लस्टर आईडी (खरगोश एमक्यू एक्सएमएल प्रकार = "एन/ए"; जावा टाइप = "स्ट्रिंग"): एएमक्यूपी 0.9.1 में बहिष्कृत - यानी इस्तेमाल नहीं किया गया। पिछले संस्करणों में, क्लस्टर अनुप्रयोगों के उपयोग के लिए इंट्रा-क्लस्टर रूटिंग पहचानकर्ता था, जिसका उपयोग क्लाइंट अनुप्रयोगों द्वारा नहीं किया जाना चाहिए (यानी जनसंख्या नहीं)। हालांकि, इसे वर्तमान स्कीमा से हटा दिया गया है और हटा दिया गया है और इसका उपयोग आर-एमक्यू सर्वर कोड द्वारा नहीं किया जाता है।

जैसा कि आप ऊपर देख सकते हैं, इन गुणों के विशाल बहुमत में गणना/बाध्य/अनुशंसित मान नहीं हैं क्योंकि वे "केवल एप्लिकेशन उपयोग" हैं और इन्हें खरगोशएमक्यू द्वारा उपयोग नहीं किया जाता है। तो आपके पास एक आसान काम है। आप अपने आवेदन के लिए उपयोगी मान लिखने/पढ़ने के लिए स्वतंत्र हैं - जब तक वे डेटाटाइप से मेल खाते हैं और संकलित करते हैं :)। ContentType और contentEncoding मानक HTTP उपयोग के अनुसार हैं। DeliveryMode और priority बाध्य संख्याएं हैं।

नोट: AMQP.BasicProperties के लिए उपयोगी, लेकिन सरल स्थिरांक कक्षा MessageProperties में उपलब्ध हैं।

चीयर्स :)

पोस्ट करने के लिए अद्यतन:

Renat को बहुत धन्यवाद (टिप्पणी देखें) के साथ

, RabbitMQ TTL Extensions to AMQP पर rabbit_amqqueue_process.erl और दस्तावेज में erlang सर्वर कोड पर ध्यान दिया है।

Map<String, Object> args = new HashMap<String, Object>(); 
args.put("x-message-ttl", 60000); 
channel.queueDeclare("myqueue", false, false, false, args); 
  • या प्रति संदेश के माध्यम से

    :

    byte[] messageBodyBytes = "Hello, world!".getBytes(); 
    AMQP.BasicProperties properties = new AMQP.BasicProperties(); 
    properties.setExpiration("60000"); 
    channel.basicPublish("my-exchange", "routing-key", properties, messageBodyBytes); 
    
  • यहाँ, टीटीएल संदेश समाप्ति (समय-टू-लिव) के माध्यम से कतार प्रति

    • निर्दिष्ट किया जा सकता/समाप्ति मिलीसेक्स में है, इसलिए प्रत्येक मामले में 60 सेकंड। इसे प्रतिबिंबित करने के लिए समाप्ति की परिभाषा से ऊपर अपडेट किया गया है।

    +0

    @Glen_Best, ** समाप्ति ** आवेदन के उपयोग के लिए नहीं है। कृपया * rabbit_amqqueue_process.erl * देखें या मेरा अपडेट देखें। –

    +0

    कोड की जांच की है - आप सही हैं। संपादित पोस्ट धन्यवाद! –

    +0

    स्पष्टीकरण: https://www.rabbitmq.com/ttl.html के अनुसार आवेदन के उपयोग के लिए है; मेरी व्याख्या ने खरगोश द्वारा औपचारिक प्रसंस्करण का संकेत नहीं दिया - ऐसा ही है। यानी RabbitMQ 0.9.1 स्कीमा टिप्पणी पुरानी/गलत है। –