赣州制作网站企业,企业网站翻译,品牌网站建设有哪些方面,制作网页时不能选用的照片格式关键点#xff1a; 1000wPDF#xff1a;数据量非常大。3天处理完#xff1a;有时间限制。一篇PDF1~10s#xff1a;可能需要以最高10s去做计算#xff0c;这样时间才能保证留有富余。要求资源最大化利用#xff1a;也就是尽可能节省服务器资源#xff0c;能复用尽量复用 1000wPDF数据量非常大。3天处理完有时间限制。一篇PDF1~10s可能需要以最高10s去做计算这样时间才能保证留有富余。要求资源最大化利用也就是尽可能节省服务器资源能复用尽量复用包括应用服务器和OSS服务资源。服务器都是阿里云的可以假设都在同一个机房忽略网络I/O时长损耗这样可以用本地耗时作为计算的依据。 时间计算 假如一篇PDF处理10s三天一台机器处理32460*625920份PDF。假如一篇PDF处理1s三天一台机器处理32460*60259200份PDF。 也就是一台机器三天处理量最多259200最少处理25920份。那么1000w最多需要10000000/25920 ≈ 386台机器最少需要39台机器。 优化思路 思路一动态缩容先以386台机器并行处理假设第一天处理数据量超过三分之一此时计算剩余待处理量按10s算需要多少台机器理论上所需机器数N386。机器数可减少到N台再过一天后再次计算所需机器数newN386机器数再次缩减到386台。也就是我们将时间段分成了3份因为一篇PDF处理时长1~10s所以每次一定是可以缩减0-N台服务器。这个分段可以更细到9段、24段、72段等这样可以更多地缩减服务器数量。 思路二多线程鉴于现在一台服务器一般情况下是多核的CPU所以可以充分利用多线程的优势。使用线程池可以更好地避免线程的创建和销毁的损耗这里的处理程序可以使用线程池来进行相应处理。线程数建议按CPU核心数 *1平均等待时间/平均工作时间计算。 思路三分布式任务调度由于有多线程多实例所以需要有一个高效的分布式调度组件来进行任务分配避免资源的竞争和任务失败重试等。这个可以使用一些分布式任务调度框架如XXL-JOB基于自己的业务属性自主开发一个任务调度平台。或者可以使用消息中间件的方式进行任务的生产消费消息中间件消费一般是自带多线程的。