「原创自研」一个腾讯云互动白板TIW PDF静态转码的替代程序

背景

我司产品业务环境中,依赖腾讯云互动白板的PDF静态转码功能,需要将大量的PDF静态页面转换为图片之后,供前端展示。

腾讯云TIW静态转码功能当前问题

  1. 云厂商服务,客户隐私文件有泄露风险。
  2. 异常问题需要联系云厂商技术支持人员处理,处理链路长不好掌控。
  3. 云厂商产品的功能点不会随我司需求为发展方向。个性化不好。
  4. 公有SAAS服务,和其他公司公用一个资源池,有性能互相影响的风险。
  5. 腾讯云的互动白板TIW有很多功能,我司产品其实只使用到了其中的PDF静态转码功能。
  6. 腾讯云费用较贵。费用计费项多。IT成本浪费。每月该项费用1W+。
  • 白板使用时长费:初始化白板到使用完毕的时长累计。
  • 静态转码费:2元/千页
  • 月功能基础费:每个月固定1000元预付费,不管是否使用都收费。

程序目标

  1. 该程序代替腾讯云的PDF转图片功能。或者互为主备(我司业务程序优先使用该自研程序进行转码)
  2. 期望能以最少的计算资源/存储资源达到较为稳定安全高效的企业级PDF转图片功能。

程序依赖

Item说明
ImageMagic安装最新版即可,使用其gs命令转码。
golang版本:1.21.0
gin版本:v1.9.1
mysql版本:5.7
redis版本:4.0
rabbitMQ版本:3.6.5

程序大致逻辑

  1. golang编码,使用gin框架提供高性能api服务,对标腾讯云TIW静态转码功能,提供2个接口,1个启动转码接口,该接口为异步处理,返回任务ID,主要逻辑是将具体信息发送到RabbitMQ队列,启动Worker异步的去消费通道里的任务(使用ImageMagic的命令对pdf文件进行转码)。另外一个是查询转码任务状态接口。
  2. 接口使用gin框架的middleware中间件提供认证、限流功能。
  3. 整个程序的设计考虑到了性能、健壮性、限流、转码效果、接口出参的简明性。

程序现状

  1. 该程序已经用于生产环境使用,正在陆续代替了腾讯云TIW。

图片展示

1.发起转码任务
在这里插入图片描述
2.日志
在这里插入图片描述

3.查询转码任务状态
在这里插入图片描述
4. 数据库记录
在这里插入图片描述

5.业务程序上使用pageCount遍历将imageBaseUrl和1.jpg(n.jpg)拼接即可访问到转码之后的图片。
第1页:
在这里插入图片描述

第8页:
在这里插入图片描述

业务可视化监控

最后,可以使用grafana采集数据库时序数据信息,进行业务数据展示。
在这里插入图片描述

记录

本项目由本人独立开发完成。目的是帮助公司大幅度节省腾讯云TIW的费用。预计每月会节省1W+。
另外,由于golang程序并发的性能以及可快速部署的特点,结合云厂商的弹性伸缩基础组件能力,稳定性&性能可得到很好的保障。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于特洛夫斯基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值