/ / धीमी उपभोक्ता समूह समूह 2 उपभोक्ता-कॉन्फ़िगरेशन का उपयोग करते समय - वसंत, वसंत-एकीकरण, अपाचे-जुकीपर, अपाचे-काफ्का

2 उपभोक्ता-कॉन्फ़िगरेशन का उपयोग करते समय धीरे-धीरे उपभोक्ता समूह - वसंत, वसंत-एकीकरण, अपाचे-जुकीपर, अपाचे-काफ्का

वसंत-एकीकरण-काफ्का विस्तार और निम्नलिखित कॉन्फ़िगरेशन का उपयोग करना:

<int-kafka:zookeeper-connect id="zookeeperConnect"
zk-connect="#{kafkaConfig["zooKeeperUrl"]}" zk-connection-timeout="10000"
zk-session-timeout="10000" zk-sync-time="2000" />

<int-kafka:consumer-context id="consumerContext" consumer-timeout="5000" zookeeper-connect="zookeeperConnect">
<int-kafka:consumer-configurations>
<int-kafka:consumer-configuration
group-id="realtime-services-consumer-grp"
value-decoder="purchaseDecoder"
key-decoder="kafkaReflectionDecoder"
max-messages="5" >
<int-kafka:topic id="purchase" streams="1" />
</int-kafka:consumer-configuration>
<int-kafka:consumer-configuration
group-id="realtime-services-consumer-gw"
value-decoder="eventDecoder"
key-decoder="kafkaReflectionDecoder"
max-messages="10" >
<int-kafka:topic id="event" streams="1" />
</int-kafka:consumer-configuration>
</int-kafka:consumer-configurations>
</int-kafka:consumer-context>

<int-kafka:inbound-channel-adapter
id="kafkaInboundChannelAdapter" kafka-consumer-context-ref="consumerContext"
auto-startup="true" channel="inputFromKafka">
<int:poller fixed-delay="20" time-unit="MILLISECONDS" />
</int-kafka:inbound-channel-adapter>

उदाहरण के लिए जब मैं पहली बार टिप्पणी करता हूं consumer-configuration मेरे पास 300 इवेंट प्रति मिनट बिना किसी समस्या के हो सकते हैं। लेकिन जब दोनों सक्रिय होते हैं। मेरे पास बहुत कम थ्रूपुट है। दोनों विषय से आने वाले थ्रूपुट 50 प्रति मिनट से कम है।

किसी को भी पता है कि 2 विषय से पढ़ते समय मेरे पास इतना खराब प्रदर्शन क्यों है? कॉन्फ़िगरेशन में मैंने क्या गलत किया?

उत्तर:

उत्तर № 1 के लिए 1

इस बारे में बताने के लिए शुक्रिया!

मेरे स्थानीय काफ्का क्लस्टर के साथ कुछ बड़ी लड़ाई के बाद मैं आपकी समस्या को पुन: उत्पन्न करने में सक्षम हूं और मैं आपके लिए कुछ कामकाज के साथ हूं :-)।

सबसे पहले यह नहीं है "टी round-robin, लेकिन एक करके एक:

for (final ConsumerConfiguration<K, V> consumerConfiguration : getConsumerConfigurations().values()) {
Map<String, Map<Integer, List<Object>>> messages = consumerConfiguration.receive();

उनमें से प्रत्येक कहाँ consumerConfiguration उस दौरान पृष्ठभूमि पर अवरुद्ध हैं consumer-timeout="5000", अगर इसमें कोई संदेश नहीं है KafkaStream अभी। इसलिए पूरे poll से कार्य <int-kafka:inbound-channel-adapter> उस टाइमआउट या इससे भी बदतर तक अवरुद्ध है: यदि प्रत्येक विषय में संदेश नहीं है तो पूरा प्रतीक्षा समय टाइमआउट का योग है!

इस मुद्दे को दूर करने के लिए, आप कम कर सकते हैं consumer-timeout="5000" या कई प्रदान करते हैं <int-kafka:consumer-context> और इसीलिए <int-kafka:inbound-channel-adapter> प्रत्येक विषय के लिए।

हां, यह अजीब लग रहा है और यह वास्तव में बुरा है कि हमें रिलीज से पहले इसे देखने के लिए समय नहीं मिला है, लेकिन फिर भी इसे उठाने के लिए स्वतंत्र महसूस करें JIRA इसे ठीक करने के लिए मुद्दा।

धन्यवाद!