我要将数据(网络数据包)插入 Cassandra 数据库中!
不幸的是,我的应用程序需要大约1分钟才能插入10000个数据包!
我正在寻找是否有人可以帮助我操作java多线程概念来加速插入!这是我的代码:
PcapPacketHandler<String> jpacketHandler;
jpacketHandler = new PcapPacketHandler<String>() {
GestionPacketDAO g1;
int row=0;
public void nextPacket(PcapPacket packet, String user) {
row++;
String s = packet.toHexdump();
try {
g1 = new GestionPacketDAO();
g1.Insert(s, row);// Insert is the function which inserts data into database
}
catch (InvalidRequestException exg) {
Logger.getLogger(AccueilInsertion.class.getName()).log(Level.SEVERE, null, exg);
}
catch (TException exg) {
Logger.getLogger(AccueilInsertion.class.getName()).log(Level.SEVERE, null, exg);
}
}
}
答案 0 :(得分:0)
常见的模式是:
另一种方法是让多个线程运行您的数据包处理程序(如果可能)。每个人都可以拥有自己的Cassandra连接并直接写入。如果你能做到这一点会更有效率。