项目架构图
docker swarm 集群服务通信
前置要求
- 服务需要在同一个docker swarm集群中
- 服务需要处于同一个overlay网络上
- 服务需要暴露容器端口
- 有2个以上服务名不同的服务
服务部署流程(手动方式)
1、 创建overlay网络
本来无一物,何处惹尘埃
1、 创建overlay网络
1、 启动一个swarm集群
执行结果如下:
当excel导出时发生了oom,优化代码后想查看下优化前和优化后导出excel时占用的内存差异,这个时候可以借助jconsole工具来进行查看。
测试类示例代码
模拟50万条数据调用优化前和优化后excel工具类
使用导入的excel内容如下:
进入数据库的内容
发现原本用户名为张三,进入数据库后变成了张三 zhang’san
在mac中编辑excel中文后进行excel导入,出现了这个问题,在windows中则没有这个情况。
|
|
这是一个docker的小运用,可以快速搭建一些服务, 可以在linux系统上实现类似于windows中一键安装的效果。
对于Excel的读取,POI有两种模式,第一种是用户模式,使用比较简单,是将文件一次性读到内存,这种模式在文件比较大的情况下会有OutOfMemory内存溢出的情况。第二种是事件驱动模式,excel的内容是使用XML的格式存储的,处理excel就是解析XML,而目前使用事件驱动模式解析XML的API是SAX(Simple API for XML),这种模型在读取XML文档时,并没有将整个文档读入内存,而是按顺序将整个文档解析完,在解析过程中,会主动产生事件交给程序中相应的处理函数来处理当前内容。因此这种方式对系统资源要求不高。
解析一份大数据量的用户名+电话的excel,将解析出来的数据放入List集合中,格式如图:
|
|
安装依赖包
|
|
更新yum包索引
|
|
移除旧版本docker
|
|
指定版本安装
|
|
启动并加入开机启动
|
|
7 验证是否安装成功
|
|
资源 | 路径 | |
---|---|---|
jenkins服务器 | 10.100.2.12 | |
python项目所在服务器 | 10.200.1.37 |
两台服务器上均装有docker和ansible
为项目添加Dockerfile文件,DockerFile放在项目的根路径,DockerFile文件如下:
添加完DockerFile后项目结构如下: