WebService服务中,将写原始报文日志的功能由单独线程处理
来源:互联网 发布:mysql slow.log 删除 编辑:程序博客网 时间:2024/05/21 19:47
在WebService项目中,Web容器对每个请求,创建一个独立的线程进行处理和响应。但是最近发现业务响应速度变慢,主要怀疑对象是I/O和网络socket操作占用时间长,I/O这一块儿主要是发送/接收报文时需要存储原始报文,便于查错和日后比对数据,比较明显跟主业务处理无关,于是首当其冲将其剥离除去。数据库操作是通过平台的xmlrpc请求完成的,优化复杂些,放到后面跟进。
这个问题可以归结为producer-consumer问题,业务线程是producer,不断产生需要写日志的原始报文信息,而写日志线程是consumer,有内容达到就取出进行写文件操作。
于是创建了一个实体,用于描述原始报文日志信息,选择了线程安全队列中的LinkedBlockingQueue用于线程之间消息传递。同时通过实现Runnable接口,在实现类的run() 方法中实现了业务处理逻辑,在线程池中中启动线程任务即可。
0 0
- WebService服务中,将写原始报文日志的功能由单独线程处理
- slf4j将日志写到单独的文件
- 原始套接字报文处理时的结构与原理
- XSL处理WebService报文
- 写日志的功能
- 将业务及数据库相关操作放入单独线程处理
- webservice服务报文查看工具
- 汇编语言: .写一段子程序 SKIPLINES,完成输出空行的功能。空行的行数由用户在主程序中通过 键盘输入,并将行数放在 AX 寄存器中。
- 双M结构中,从库提供read服务,单独创建用户的时候建议不写入binlog日志
- CXF打印SOAP报文,记录WebService日志
- WebService写系统日志
- 详解Strut2中ActionSupport类的日志处理功能
- 通讯报文中浮点类型的处理
- 如何根据请求报文跟返回报文写webservice接口
- androidstudio中如何将单独的model形式的library转换成一个单独的工程!
- 自己最近写的一组日志处理类(线程调度优化)
- javascript 写的表格拖拉功能 由VBSCRIPT转成,最后一段VBSCRIPT用于界面处理所以没有转
- 简单的线程处理功能
- 深入浅出Mybatis-分页
- Easy-题目27:107.Binary Tree Level Order Traversal II
- Easy-题目28:27.Remove Element
- 69道Spring面试题和答案
- 用SharedPreferences存储数据
- WebService服务中,将写原始报文日志的功能由单独线程处理
- C++独孤九剑第一式——拨云见日(对象内存模型)
- 有关filter
- 视图调用控制器的方法
- Easy-题目29:26. Remove Duplicates from Sorted Array
- C语言课设-1
- 线性判别函数、判定面以及感知器
- android中selector在java代码中使用无效的解决方案
- apache日志轮询技术(cronolog and rotatelogs)小结