JAVA收藏

业务场景实战(五)PDF生成

2022-02-10  本文已影响0人  后来丶_a24d

思维导图

思维导图.png

系列总目录


背景


技术选型

  1. text: 基于AGPL协议,商业版需要开源项目代码或者收费
  2. spire.doc: 商业版收费,免费版有水印
  3. PDFbox: 提供pdf操作,创建PDF,合并PDF功能,但是对中文支持不是很好
  4. OpenPDF: demo较少,功能较少
  5. poi: Apache下的完全开源,GitHub start 1.1k,社区活跃性高,提供根据Word模板填充Word数据, word的转pdf对表格图像处理不好
  6. docx4j: GitHub start 1.6k提供Word转PDF, 完全开源

高可用高性能保证

高可用

  1. 部署, 单点故障
  2. PDF采用异步处理,mq通知的形式,如果处理过程中断网导致没有发mq消息,### 高性能
  3. 异步处理
  4. 采用内部BlockingQueue形式,多线程拉取需要处理的任务
  5. 集群无状态可扩展提升处理能力

服务设计


jvm启动参数

  1. dev环境最多只给1G多一点的内存,dev环境启动参数默认设置的很简单,完全使用默认年轻代比较大,会造成年轻代来不及回收,内存就oom了,建议设置jvm参数:
 -Xms800m -Xmx800m -Xmn120M -XX:MaxPermSize=256m -XX:InitialTenuringThreshold=15 -XX:CMSInitiatingOccupancyFraction=50 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGC

参考文章

上一篇下一篇

猜你喜欢

热点阅读