标签:Minio 上传 import 多线程 优化 MinioClient minio
问题:在大数据项目中,AI服务每秒产生50张图片(几十或几百K),但是Minio上传图片平均时间在0.1s每张,如何在1秒内完成50张图片上传;
解决思路:1、使用多线程;2、Minio搭建集群;3、单独开发一套服务就是Minio上传图片,然后将此服务集群部署;
结果:第1种方案:使用多线程和使用单线程结果差不多,并没有提高上传效率;原因:MinioClient是单例模式,不能创建过个对象,即使使用多线程或线程池Minio存储也是串行的;
第2种方案:Minio搭建集群,只能提高查询效率和高可用,不能提高上传效率;原因:MinioClient是单例模式,不能创建过个对象,即使Minio搭建集群,也是先往主节点串行存储,然后再同步子节点;
第3种方案:可以提高效率;原因:MinioClient在集群服务中都是独立的对象,可以达到类似于多线程的目的;
package com.minio.zcminio.config; import io.minio.MinioClient; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Component; /** * @Author zc * @Datetime 2022/5/21 16:54 */ @Data @Component public class MinIoClientConfig { @Value("${minio.endpoint}") private String endpoint; @Value("${minio.accessKey}") private String accessKey; @Value("${minio.secretKey}") private String secretKey; /** * 注入minio 客户端【MinioClient是单例模式,不能创建过个对象】 * @return */ @Bean public MinioClient minioClient1(){ return MinioClient.builder() .endpoint(endpoint) .credentials(accessKey, secretKey) .build(); } }
标签:Minio,上传,import,多线程,优化,MinioClient,minio 来源: https://www.cnblogs.com/tianchao/p/16522489.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。