2014-10-12 4 views
0

С приведенным ниже кодом, чтобы передать PcapPackets в очередь, можно ли передать это в очередь kafka, чтобы потребитель kafka мог вытащить PcapPackets как таковой из производителя кафки?Как передать PcapPackets в kafka queue

StringBuilder errbuf = new StringBuilder(); 
Pcap pcap = Pcap.openOffline("tests/test-afs.pcap", errbuf); 

PcapPacketHandler<Queue<PcapPacket>> handler = new PcapPacketHandler<Queue<PcapPacket>>() { 
    public void nextPacket(PcapPacket packet, Queue<PcapPacket> queue) { 
    PcapPacket permanent = new PcapPacket(packet); 

    queue.offer(packet); 
    } 
} 

Queue<PcapPacket> queue = new ArrayBlockingQueue<PcapPacket>(); 

pcap.loop(10, handler, queue); 

System.out.println("we have " + queue.size() + " packets in our queue"); 

pcap.close(); 

ответ

0

Kafka поддерживает хранение произвольных двоичных данных в виде сообщений. В вашем случае вам просто нужно предоставить двоичный сериализатор класса PcapPacket (и десериализатор для чтения).

См. Например, Kafka: writing custom serializer.