月份:2017年6月

Poi读取Excel引发的内存溢出

前言 最近生产环境有个老项目一直内存报警,不时的还出现内存泄漏,导致需要重启服务器,已经严重影响正常服务了。 分析 1.dump内存文件 liunx使用如下命令: 2.使用Eclipse Memory Analysis进行分析 异常如下: POI在加载Excel引发了内存泄漏,中间创建了大量的对象,占用了大量的内存 3.查看上传的Excel大小 经查看发现很多Excel大小在9M的文件 4.查看代码POI读取Excel的方式 发现使用的是用户模式,这样会占用大量的内存;POI提供了2中读取Excel的模式,分别是: 用户模式:也就是poi下的usermodel有关包,它对用户友好,有统一的接口…

阅读全文 »

Spring整合Hessian与分析

前言 上一篇文章Hessian入门体验与分析介绍了hessian的简单入门,并且从源码层面对Hessian的调用流程进行了分析;发现使用原生的Hessian还是比较繁琐的,下面看看Spring与Hessian进行整合并且进行简要分析。 使用 提供三个模拟块,分别模拟client,server以及被依赖的jar;对应的模块名称分别是:hessianClient,hessianServer以及hessianJar 1.hessianJar介绍 hessianJar主要提供被hessianClient和hessianServer依赖的公共类,这里主要提供了接口类IHessianService和poj…

阅读全文 »

基于JMS实现RPC功能

前言 JMS的点对点消息传送模式允许JMS客户端通过队列(queue)这个虚拟通道来同步和异步发送、接收消息;点对点消息传送模式既支持异步“即发即弃”消息传送方式,又支持同步请求/应答消息传送方式;点对点消息传送模式支持负载均衡,它允许多个接收者监听同一队列,并以此来分配负载;所以完全可以以JMS的点对点消息传送模式实现一套RPC框架。 准备 jdk:jdk1.7.0_80 jms:apache-activemq-5.10.0 serialize:protostuff 整体结构 整个实现包括:rpc-jms-common,rpc-jms-client,rpc-jms-server; 以及测试模…

阅读全文 »

HttpClient执行Https请求与分析

Https介绍 HTTPS:为了保证隐私数据能加密传输,采用SSL/TLS协议用于对HTTP协议传输的数据进行加密,也就是HTTPS。 SSL:SSL(Secure Sockets Layer)协议是由网景公司设计,后被IETF定义在RFC 6101中,目前的版本是3.0。 TLS:TLS可以说是SSL的改进版。是由IETF对SSL3.0进行了升级而出现的,定义在RFC 2246,实际上我们现在的HTTPS都是用的TLS协议。 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息;TLS/SSL中使用了非对称加密,对称加密以…

阅读全文 »

Ivy入门:Eclipse整合Ivy

前言 最近因为来的一家新公司,项目中大量使用了ivy来进行依赖管理,并没有用现在相对主流的Maven;两者可以进行简单的比较,Ivy仅提供依赖管理功能,但是Maven是一个软件项目管理综合工具,能够管理构建、报告、文档,以及根据中心化的信息来管理依赖,Ivy更多的是和Ant一起使用。 Eclipse整合Ivy 1.ivy插件安装 Help->Eclipse Marketplace…输入ivy,如下图所示: 点击安装即可,安装完在Window->Preferences下出现了ivy目录,如下图所示: 2.简单实例 ivy官网地址:http://ant.apache.org/ivy/ …

阅读全文 »