问题描述
.Net core 下提供的打印服务,利用了第三方的收费库FastReport,该类库在.net Framework下一只表现不错,因此我司在微服务迁移后,仍采用该方案。
上线后,某天某人编辑了打印模板,结果几个小时后,悲剧发生,微服务崩溃,打印服务彻底宕机,紧急增加虚机配置,并无什么卵用。
问题分析
最直接的方法:比对模板文件,并未发现不妥,有些字体方面的不同,也是必须的,因此初期并未重视。
线上已经炸锅,怎么办?
那就直接上测试吧,把之前的打印快速移植到一个控制台程序,模板文件加载上。测试一切OK。什么鸟问题?
循环加载试下,oooop,内存竟然在涨,不会自己释放吗?
比对下旧模板,嗯,内存可以释放。那可以确定是模板的问题了!
再次比对FastReport打印模板,决定吧字体删除,这下测试下,并不 增加内存,好了,上线,问题消除。