私はIgniteとKafkaの統合を試みて、kafkaメッセージをIgniteキャッシュに入れようとしています。IgniteとKafkaの統合
私のメッセージキーはランダムな文字列(のIgniteを操作するには、カフカのメッセージキーがnullにすることはできません)で、かつのIgniteが受信すると値が人のためのJSON文字列表現(Javaクラス)
ですそのようなメッセージは、Igniteはキャッシュキーとしてメッセージのキー(私の場合はランダムな文字列)を使用するように見えます。
メッセージキーを人のIDに変更して、キャッシュに入れることは可能ですか?
はstreamer.receiver(new StreamReceiver)
が
streamer.receiver(new StreamReceiver<String, String>() {
public void receive(IgniteCache<String, String> cache, Collection<Map.Entry<String, String>> entries) throws IgniteException {
for (Map.Entry<String, String> entry : entries) {
Person p = fromJson(entry.getValue());
//ignore the message key,and use person id as the cache key
cache.put(p.getId(), p);
}
}
});
が、これは推奨される方法です実行可能であることを見えますか? StreamReceiverでのcache.putの呼び出しが正しい方法であるかどうかはわかりません。これは、キャッシュに書き込む前の前処理ステップにすぎないからです。
ありがとう@a_guraの有益な回答! – Tom