You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Valentin Kulichenko (JIRA)" <ji...@apache.org> on 2016/10/26 20:10:58 UTC
[jira] [Created] (IGNITE-4140) KafkaStreamer should use tuple
extractor instead of decoders
Valentin Kulichenko created IGNITE-4140:
-------------------------------------------
Summary: KafkaStreamer should use tuple extractor instead of decoders
Key: IGNITE-4140
URL: https://issues.apache.org/jira/browse/IGNITE-4140
Project: Ignite
Issue Type: Improvement
Components: streaming
Affects Versions: 1.7
Reporter: Valentin Kulichenko
Fix For: 2.0
Current design of {{KafkaStreamer}} looks incorrect to me. In particular, it extends {{StreamAdapter}}, but ignores tuple extractors provided there and uses native Kafka decoders instead. This for example makes impossible to produce several entries from one message, like it can be done via {{StreamMultipleTupleExtractor}} in other streamers.
To fix this, we should:
# Declare the {{KafkaStreamer}} like this:
{code}
KafkaStreamer<K, V> extends StreamAdapter<MessageAndMetadata<byte[], byte[]>, K, V>
{code}
# Remove {{keyDecoder}} and {{valDecoder}} in favor of tuple extractors.
# Instead of doing {{getStreamer().addData(...)}} directly, call {{addMessage(...)}} method providing the raw message consumed from Kafka ({{MessageAndMetadata<byte[], byte[]>}}). This method will make sure that configured extractor is invoked and that all entries are added to {{IgniteDataStreamer}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)