我们正在设计一个客户端服务器系统。 N个客户端可以连接到服务器以发送多个消息。服务器在数据库中插入消息并将消息发布到外部服务器,并向客户端返回唯一ID,以便客户端跟踪消息。
为了避免瓶颈和IO等待时间,请将此服务拆分为两个任务
批处理将使用
发送20个http帖子Task sendMessage =new Task[20]
ExecutorService threadExecutor = Executors.newFixedThreadPool( 20 );
//get the list of message not send from database send them and update the database
for(int i=0;i<10;i++) {
threadExecutor.execute( task[i] );//send message via HTTP post
}
这是一个很好的设计吗?单独运行第2点以提高性能是否合适。 此外,在上面的情况下,每个线程将连接到数据库并更新它会导致锁定或脏写?