我正在嘗試Ignite和Kafka集成,將kafka消息帶入Ignite高速緩存。Ignite和Kafka集成
我的消息密鑰是一個隨機字符串(要使用Ignite工作,卡夫卡消息密鑰不能爲空),並且該值是用於人(java類)
當點燃接收JSON字符串表示這樣的消息,看起來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