@Override protected void write(List<Message> msgList) { final List<KeyedMessage<Long, byte[]>> kafkaMsgList = new ArrayList<KeyedMessage<Long, byte[]>>(); for (Message m : msgList) { SuroKeyedMessage keyedMessage = (SuroKeyedMessage) m; kafkaMsgList.add(new KeyedMessage<Long, byte[]>( keyedMessage.getRoutingKey(), keyedMessage.getKey(), keyedMessage.getPayload())); } senders.submit(new Runnable() { @Override public void run() { producer.send(kafkaMsgList); } }); }
@Override public String toString() { return String.format("routingKey: %s, payload byte size: %d", getRoutingKey(), getPayload().length); }
for( Message m : msgList ){ SuroKeyedMessage sKeyedMsg = (SuroKeyedMessage) m; msgCopies.add( new SuroKeyedMessage( sKeyedMsg.getKey(), new Message( m.getRoutingKey(), m.getPayload() )));
@Override public void writeTo(MessageContainer message) { long key = msgId++; if (!keyTopicMap.isEmpty()) { try { Map<String, Object> msgMap = message.getEntity(new TypeReference<Map<String, Object>>() {}); Object keyField = msgMap.get(keyTopicMap.get(message.getRoutingKey())); if (keyField != null) { key = keyField.hashCode(); } } catch (Exception e) { QueuedSink.log.error("Exception on getting key field: " + e.getMessage()); } } QueuedSink.log.trace( "KafkaSink writeTo()" ); receivedCount.incrementAndGet(); enqueue(new SuroKeyedMessage(key, message.getMessage())); }
@Override public String toString() { return String.format("routingKey: %s, payload byte size: %d", getRoutingKey(), getPayload().length); }
@Override public void writeTo(MessageContainer message) { long key = msgId++; if (!keyTopicMap.isEmpty()) { try { Map<String, Object> msgMap = message.getEntity(new TypeReference<Map<String, Object>>() {}); Object keyField = msgMap.get(keyTopicMap.get(message.getRoutingKey())); if (keyField != null) { key = keyField.hashCode(); } } catch (Exception e) { log.error("Exception on getting key field: " + e.getMessage()); } } enqueue(new SuroKeyedMessage(key, message.getMessage())); }