POI-处理大Excel文件(xls)
摘要:最近需要处理一个比较大的excel文件,但是poi在处理文件时会抛出OOM导致程序崩溃,查看官方文档看到可以以流式的方式读取excel避免读取大文件时的OOM。本文主要记述xls的处理。 环境模拟 先准备一个大的excel文件(xls大小8M),再将jvm的heap缩小到100m(JVM 参数 Xm
阅读全文
spring中方法级验证参数
摘要:Spring中开启方法级验证 在spring中只需要注册了MethodValidationPostProcessor就能开启方法级验证,在调用方法时如果参数或返回值无法满足对应的限制就无法完成调用 下面以springboot项目为例。 首先在spring容器内放入MethodValidationPo
阅读全文
Curator Recipes(Cache&Counter)
摘要:Cache 路径缓存(Path Cache) 监视一个ZNode,当子节点增加、更新、删除改变状态时,路径缓存会在本地保存当前子节点及其数据和状态。 节点缓存(Node Cache) 监视ZNode,当节点数据被修改或删除,节点缓存会在本地改变自身状态(删除的话会变成null)。 树缓存(Tree
阅读全文
[译]ZOOKEEPER RECIPES-Leader Election
摘要:选主 使用ZooKeeper选主的一个简单方法是,在创建znode时使用Sequence和Ephemeral标志。主要思想是,使用一个znode,比如"/election",每个客户端创建一个子节点"/election/guid n_",并同时使用Sequence和Ephemeral标志。使用seq
阅读全文
[译]ZOOKEEPER RECIPES-TWO PHASED COMMIT
摘要:两段式提交 两段式提交协议可以让所有分布式系统中的客户端达成协议同时提交或回滚事务。 在ZooKeeper中你可以通过协调者(coordinator)创建一个事务节点来实现两段式提交。例如"/app/Tx",并为每个参与者分配一个子节点例如"/app/Tx/s_i"。当协调者创建完子节点,其中的内容
阅读全文