سؤال

أحاول إعداد مستهلك Java الأساسي لتلقي الرسائل من موضوع Kafka. لقد تابعت العينة الموجودة في - https://cwiki.apache.org / التقاء / عرض / كافكا / المستهلك + مجموعة + مثال - ولدي هذا الرمز:

giveacodicetagpre.

و

giveacodicetagpre.

Kafka يعمل على مضيف EC2 المعني، ويمكنني إرسال واستقبال الرسائل على الموضوع "اختبار" باستخدام Kafka-Console-Producer.Sh و Kafka-Console-Consumer.Sh. المنفذ 2181 مفتوح ومتوفر من الجهاز حيث يعمل المستهلك (وكذلك 9092 للحصول على قياس جيد، ولكن هذا لا يبدو أنه يساعد أيضا).

لسوء الحظ، لم أتلق أي رسائل في المستهلك عندما أقوم بتشغيل هذا. لا توجد رسائل موجودة حول الموضوع، ولا رسائل أرسلت حديثا التي أرسلتها باستخدام Kafka-Console-Producer.Sh، في حين أن المستهلك يعمل.

يستخدم هذا kafka 0.8.1.1 يعمل على Centos 6.4 x64، باستخدام OpenJDK 1.7.0_65.

تحرير: fwiw، عندما يبدأ برنامج المستهلك، أرى هذا الناتج في حديقة الحيوان:

giveacodicetagpre.

أي فكرة عما قد يحدث بهذا؟ أي وجميع المساعدة موضع تقدير كبير.

هل كانت مفيدة؟

المحلول

الإجابة على هذا بنفسي للأجيال القادمة، في حالة تشغيل أي شخص آخر عبر مشكلة مماثلة.

كانت المشكلة هذا: كان وسيط الكافكا ويحرك الحيوان على عقدة EC2، وكان المستهلك على جهاز الكمبيوتر المحمول الخاص بي قيد التشغيل محليا.عند الاتصال بحزانة Zookeeper، تم تسليم العميل إشارة إلى "IP-10-0-X-X.EC2.Internal"، والذي لا يحل (افتراضيا) من خارج EC2.أصبح هذا واضحا بمجرد تهيئ LOG4J بشكل صحيح على العميل، لذلك كنت أحصل على جميع رسائل السجل.

كان الحل البديل هو مجرد وضع إدخال في ملف My / ETC / Hosts، تعيين اسم المضيف الداخلي EC2 إلى عنوان IP التوجيه بشكل عام.

نصائح أخرى

يمكنك حل هذه المشكلة باستخدام الإعداد بعد الخصائص في ملف server.properties الموجود تحت مجلد كافكا التكوين

أعلن. host.name= DNS العام من خادم EC2

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top