一.批量写入

Java写入大量数据到磁盘/数据库等其它第三方介质时,由于IO是比较耗费资源的操作,通常采用攒一批然后批量写入的模式

//通常构造一个缓存池,一个限制指标,可以是内存大小也可以是时间
ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();int size = 0;for (byte[] aByte : bytes) {//缓存池超过最大Size,进行一次刷新操作if (size > SIZE_LIMIT) {doWrite(args);size = 0;byteBuffer.reset();}size += aByte.length;try {byteBuffer.write(aByte);} catch (IOException e) {e.printStackTrace();}}//如果循环结束,但byte数组不为空,则进行最后一次刷新操作if (byteBuffer.size() != 0) {doWrite(args);byteBuffer.reset();}

二.写入的重试

写入第三方介质时由于网络传输问题,可能出现数据丢失等问题,需要重传

基本的逻辑是只要捕捉到异常将isException置为True就进行重传,直到传输成功,将isException置为False

//是否需要重传的标记,我这里时捕捉到了异常,也可能来自其它的response
boolean isException=false;try {writeData(args);} catch (Exception e) {log.error(e);isException=true;}while (isException) {try {writeData(args);isException=false;log.info("retry->success");} catch (Exception e) {log.error("retry->failed",e);isException=true;}}

转载于:https://www.cnblogs.com/wangbin2188/p/11555730.html

Java写入的常用技巧相关推荐

  1. 【极客学院每日1课 】Java入门与常用技巧

    2019独角兽企业重金招聘Python工程师标准>>> Java是Android开发者必学的基础编程语言.你的基础怎么样? 遥想当年,小乔还未出嫁,小编在大学里面,啃书本,听教授在课 ...

  2. 11 个简练的 Java 性能调优技巧

    转载自 11 个简练的 Java 性能调优技巧 想要让你的项目一直高性能运作吗?以下有一些技巧你可以拿去消除缓存瓶颈,还有一些其他的性能调优建议. 大多数开发者认为性能优化是一个复杂的话题,它需要大量 ...

  3. Android程序设计报告总结,Android编程常用技巧实例总结

    本文实例讲述了Android编程常用技巧.分享给大家供大家参考,具体如下: 1. 登录的时候,如果输入有误,则输入框左右震动,表示输入有误 在res下准备一个anim文件夹,里面包含两个文件,main ...

  4. java大量实例化对象如何调优_成都Java性能调优技巧

    成都Java性能调优技巧.大部分建议是针对Java的.但也有若干建议是与语言无关的,可以应用于所有应用程序和编程语言.在讨论专门针对Java的性能调优技巧之前,让我们先来看看通用技巧. 1.在你知道必 ...

  5. python气象科研学习路线和常用技巧

    python气象科研学习路线和重点知识 前言 经过一个学期的气象相关编程,觉得气象常用的一些库在这里总结一下,学习路线是我根据自己经验总结的,有大佬觉得哪里需要补充的可以私我.我也在不断学习,之后有新 ...

  6. Linux Shell常用技巧(三) sed

    Linux Shell常用技巧(三) sed 八.流编辑器sed 8.1 sed简介 sed是stream editor的缩写,一种流编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区 ...

  7. 【转】oracle存储过程常用技巧

    原文链接 http://www.cnblogs.com/chinafine/archive/2010/07/12/1776102.html 我们在进行pl/sql编程时打交道最多的就是存储过程了.存储 ...

  8. vim编辑器的常用技巧

    vim编辑器的常用技巧 文章目录 vim编辑器的常用技巧 前言 Vi的使用 vi的三种模式 常用按键说明 Vim额外功能 多文件编辑 多窗口编辑 参考文章 前言 我们在使用 Windows 系统时,如 ...

  9. Eclipse常用技巧总结:热键,自定义模版及其他

    http://developer.51cto.com/art/200906/129804.htm 关于eclipse的使用方面,其实有些东西都是小技巧的东西.知道了这些Eclipse常用技巧后,对编程 ...

最新文章

  1. 物理学在计算机领域的应用,物理学在计算机中的应用.doc
  2. linux/usr/src/kernels 目录下没有内核源码 解决方法
  3. Jmeter工具笔记-Jmeter+influxdb+grafanas设置性能监控过程
  4. 图的遍历:BFS和DFS
  5. pbl和sbl_谈PBL和SBL教学法结合模式
  6. 攻克前端开发的难点,码农不惧!!
  7. 教育资源数字化 计算机和通讯,《计算机网络技术课程数字化资源开发研究》.doc...
  8. 2017 ACM/ICPC(北京)总结
  9. 关于SRTM精度的讨论[文摘]
  10. 2019年10月江苏计算机二级C语言编程题解析
  11. android微信版本怎么升级,安卓微信怎么更新到最新版本?
  12. K. 冒险公社 (线性DP)
  13. 使用YOLOv3(Python - Keras)实时检测屏幕画面进行目标检测教程(以检测GTA5游戏画面为例子)
  14. 【软件安装】金蝶安装指南
  15. [Kong 与 Konga 与 Postgres数据库] 之 Kuberneres 部署
  16. InfiniBand 网络
  17. 完美正方形(DFS 暴力搜索)
  18. Torch的参数初始化
  19. Origin作图流程
  20. 我的 gVim 初步配置

热门文章

  1. ubuntu所有php扩展php-7.0扩展列表
  2. CSS3开发总结(圆角、盒阴影、边界图片)
  3. std::string删除首字符
  4. 高级I/O(七)--readv和writev函数
  5. GetClientRect相当于GetWindowRect和ScreenToClient区别
  6. Linux 如何加载并口/打印口驱动
  7. [react] react兄弟组件如何通信?
  8. 前端学习(3172):react-hello-react之实现底部功能
  9. [html] 对于写一个页面布局,html/css/js这三者你是先写哪个后写哪个?
  10. [css] 分析比较opacity: 0、visibility: hidden、display: none三者的优劣和适用场景