胡晓祥的知识圈

我对计算机的一些领悟

WebService服务中,将写原始报文日志的功能由单独线程处理

在WebService项目中,Web容器对每个请求,创建一个独立的线程进行处理和响应。但是最近发现业务响应速度变慢,主要怀疑对象是I/O和网络socket操作占用时间长,I/O这一块儿主要是发送/接收报文时需要存储原始报文,便于查错和日后比对数据,比较明显跟主业务处理无关,于是首当其冲将其剥离除去。数据库操作是通过平台的xmlrpc请求完成的,优化复杂些,放到后面跟进。


这个问题可以归结为producer-consumer问题,业务线程是producer,不断产生需要写日志的原始报文信息,而写日志线程是consumer,有内容达到就取出进行写文件操作。

于是创建了一个实体,用于描述原始报文日志信息,选择了线程安全队列中的LinkedBlockingQueue用于线程之间消息传递。同时通过实现Runnable接口,在实现类的run() 方法中实现了业务处理逻辑,在线程池中中启动线程任务即可。


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/StanleyHuNju/article/details/51540721
个人分类: 项目_WebService开发
上一篇Java_多线程基础
下一篇Java_语言基础:前置自增和后置自增
想对作者说点什么? 我来说一句

webservice 多线程

webservice 多线程

zb219 zb219

2011-02-25 10:38:00

阅读数:5891

没有更多推荐了,返回首页

关闭
关闭