当前位置: 首页 > news >正文

龙岩网站制作seo建设者

龙岩网站制作,seo建设者,北京网站建设推荐华网天下,陕煤化建设集团铜川分公司网站Minio的元数据 数据存储 MinIO对象存储系统没有元数据数据库#xff0c;所有的操作都是对象级别的粒度的#xff0c;这种做法的优势是: 个别对象的失效#xff0c;不会溢出为更大级别的系统失效。便于实现强一致性这个特性。此特性对于机器学习与大数据处理非…Minio的元数据 数据存储 MinIO对象存储系统没有元数据数据库所有的操作都是对象级别的粒度的这种做法的优势是: 个别对象的失效不会溢出为更大级别的系统失效。便于实现强一致性这个特性。此特性对于机器学习与大数据处理非常重要。 数据管理 元数据与数据一起存放在磁盘上数据部分纠删分片以后存储在磁盘上元数据以明文形式存放在元数据文件里xl.json。假定对象名字为obj-with-metadata, 它所在的桶的名字是bucket_name, disk是该对象所在纠删组的任一个磁盘的路径如下目录 disk/bucket_name/obj-with-metadata记录了这个对象在此磁盘上的信息。其中的内容如下 xl.json xl.json即是此对象的元数据文件。对象的元数据文件xl.json的内容是如下这种形式的json字符串 字段说明 format字段 该字段指明了这个对象的格式是xlMinIO内部存储数据主要有两种数据格式:xl与fs。使用如下命令启动的MinIO使用的存储格式是fs: 这种模式主要用于测试 对象存储很多API都是并没有真正实现的桩函数。在生产环境所用的部署方式本地分布式集群部署、联盟模式部署、云网关模式部署中存储格式都是xl。 part.1 对象的第一个数据分片 stat字段 记录了此对象的状态包括大小与修改时间如下图 erasure字段 这个字段记录此对象与纠删码有关的信息如下图 其中的algorithm指明了此对象采用的是Klaus Post实现的纠删码生成矩阵是范德蒙矩阵。 dataparity指明了纠删组中数据盘、校验盘的个数。blockSize 指明了对象被分块的大小默认是5M请参见上一节数据分布与均衡。index指明了当前磁盘在纠删组中的序号。distribution:每个纠删组的数据盘、校验盘的个数是固定的但是不同的对象的分片写入这个纠删组的不同磁盘的顺序是不同的。这里记录了分布顺序。checksum:它下面的字段个数跟此对象的分片数量有关。在旧版本的MinIO对象存储系统每一个分片经过hash函数计算出的checksum会记录在元数据文件的这个位置。最新版的MinIO会把checksum直接计入分片文件即part.1等文件的前32个字节。 此字段之下algorithm的值是highwayhash256S表明checksum值是写入分片文件的。 Minio的整合Java客户端 文件服务器在用minio没有独立成微服务也没有抽取starter所以简单测试一下集成和抽取starter创建springboot项目集成minio把文件上传成功 Maven环境的pom依赖 dependencygroupIdio.miniogroupIdartifactIdminioartifactIdversion6.0.11version dependencyspring的yml配置: minio:endpoint: http://192.168.8.50:9000accessKey: adminsecretKey: 123123123配置类 MinioProperties : public class MinioProperties {private String endpoint;private String accessKey;private String secretKey; }工具类 MinioUtil import cn.hutool.core.util.StrUtil; import com.team.common.core.constant.enums.BaseResultEnum; import com.team.common.core.exception.BusinessException; import io.minio.MinioClient; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream;public class MinioUtil {private final MinioClient minioClient;private final MinioProperties minioProperties;public String putFile(String bucketName,MultipartFile file) {return this.putFile(bucketName,null,file);}public String putFile(String bucketName,String folder,MultipartFile file) {String originalFilename file.getOriginalFilename();if (StrUtil.isNotEmpty(folder)){originalFilename folder.concat(/).concat(originalFilename);}try {InputStream in file.getInputStream();String contentType file.getContentType();minioClient.putObject(bucketName,originalFilename,in,null, null, null, contentType);} catch (Exception e) {e.printStackTrace();throw new BusinessException(BaseResultEnum.SYSTEM_EXCEPTION.getCode(),文件上传失败);}String url minioProperties.getEndpoint().concat(/).concat(bucketName).concat(/).concat(originalFilename);return url;}public void createBucket(String bucketName){try {minioClient.makeBucket(bucketName);} catch (Exception e) {e.printStackTrace();throw new BusinessException(BaseResultEnum.SYSTEM_EXCEPTION.getCode(),创建bucket失败);}}public String getBucketPolicy(String bucketName){return minioClient.getBucketPolicy(bucketName);} }装配类: import io.minio.MinioClient; import io.minio.errors.InvalidEndpointException; import io.minio.errors.InvalidPortException; import lombok.AllArgsConstructor; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;public class MinioAutoConfiguration {private final MinioProperties minioProperties;public MinioClient minioClient() throws InvalidPortException, InvalidEndpointException {MinioClient client new MinioClient(minioProperties.getEndpoint(),minioProperties.getAccessKey(),minioProperties.getSecretKey());return client;}public MinioUtil minioUtil(MinioClient minioClient,MinioProperties minioProperties) {return new MinioUtil(minioClient,minioProperties);} }spring.factories配置文件 去掉主入口函数去掉application.properties配置文件新建一个测试用的springboot项目把配置文件拿过去 剩下最重要的一步在resources下创建META-INF/spring.factories文件配置文件中加入需要自动装配的类 org.springframework.boot.autoconfigure.EnableAutoConfiguration\com.*(你的路径).MinioAutoConfigurationdemo: import com.team.common.core.web.Result; import com.team.common.minio.MinioUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile;public class UploadFileController {private MinioUtil minioUtil;public Result uploadFile( String bucketName, MultipartFile file) {String url null;try {url minioUtil.putFile(bucketName,file);} catch (Exception e) {e.printStackTrace();}return Result.success(url);} }打包安装到maven仓库本地测试用的同一仓库地址的话可以直接maven install新建一个springboot项目填入application.propertiespom中增加starter的依赖。 dependencygroupIdcom.jxwygroupIdartifactIdminio-starterartifactIdversion0.0.1-SNAPSHOTversion dependency其他OSS服务对比 厂商支持 国内使用Ceph的厂商、基于Ceph进行自研的存储厂商都比较多在使用过程中遇到的问题有些时候甚至需要修改、增强乃至重新实现Ceph本身的功能可以向相关厂商寻求支持。国际方面Ceph早已被红帽收购而红帽近期又被IBM收购。 MinIO开发与支持的厂商只有MinIO公司。由于架构比较先进语言高级MinIO本身的程序比较容易读懂、修改。招聘Golang程序员来 维护MinIO所花费的成本显然低于招聘c程序员来维护Ceph。 多语言客户端SDK 二者均有常见编程语言的客户端比如python, java等。MinIO对象存储软件的开发SDK另外支持纯函数式的语言Haskell。 技术文档 内部实现的文档MinIO基本不存在。想要了解内部实现乃至参与开发的技术人员只能到如下社区minio.slack.com/ 与MinIO的开发人员直接交流或者自己阅读代码。Ceph的各种实现文档、算法说明文档非常丰富。这方面Ceph要比MinIO成熟很多。 Ceph和MinIO的对比 开源对象存储软件以MinIO,Ceph为典型代表。为帮助相关人员在选择对象存储系统之时选择合适的产品此处对二者的特点、特性做一定讨论。 MinIO优势 部署极其简单 MinIO系统的服务程序仅有minio一个可执行文件基本不依赖其它共享库或者rpm/apt包。minio的配置项很少大部分都是内核之类系统级的设置甚至不配置也可以正常运行起来。百度、google、bing等搜索引擎上基本没有关于MinIO部署问题的网页可见在实践中很少有使用者遇到这方面的问题。 相比之下Ceph系统的模块相关的rpm、apt包众多配置项非常多难以部署难调优。某些Linux发行版的Ceph安装包甚至有bug需要使用者手动改动Ceph的python脚本才能安装完毕。 二次开发容易 MinIO对象存储系统除了极少数代码使用汇编实现以外全部使用Golang语言实现。Ceph系统是使用业界闻名的难学难用的c语言编写的。Golang语言由于产生较晚吸收了很多语言尤其是c的教训语言特性比较现代化。 相对而言MinIO系统的维护、二次开发比较容易。 网管模式支持多种其他存储 通过网关模式MinIO对象存储后端可以对接各种现有的常见其它存储类型比如的NAS系统微软Azure Blob 存储、Google 云存储、HDFS、阿里巴巴OSS、亚马逊S3等非常有利于企业复用现有资源有利于企业低成本硬件成本约等于零部署MinIO对象存储软件即可地从现有系统平滑升级到对象存储。 Ceph优势 数据冗余策略更加丰富Ceph同时支持副本、纠删码而MinIO只支持纠删码。对于个别的对于数据可靠性要求极高的单位Ceph对象存储更加合适。 参考硬件 MinIO是符合软件定义存储SDS理念的兼容主流X86服务器以及ARM/飞腾平台同时也可以移植到诸如申威Alpha架构和龙芯Mips架构等硬件平台。 下面这些符合工业标准的、广泛采用的服务器是经过MinIO inc.优化测试过的、MinIO对象存储软件表现优异的服务器 结论 由以上讨论可见作为对象存储软件来说MinIO Ceph都非常优秀各自有各自的优势。准备使用对象存储软件的用户应该根据自己单位的需求、技术储备等实际情况选择适当的软件。 分享资源 获取以上资源请访问开源项目 点击跳转
http://www.dnsts.com.cn/news/184199.html

相关文章:

  • 拍卖网站怎么做平台网站做代理商
  • dede网站本地访问速度慢社群营销平台有哪些
  • 芜湖网站建设公司网站建站主题
  • 17网站一起做网店类似的做一个网站一般要多少钱
  • 石家庄建行网站wordpress本地打开慢
  • 网站维护的协议汕头网站建设小程序
  • 网站的后台登录注册怎么做广州越秀区最新通知
  • 欧阳网站建设短网址网站建设
  • 冠县网站建设杭州营销网站建设
  • 怎么样做企业模板网站个人网站开发合同
  • 30分钟快速建设网站ppt自动生成器
  • 微信手机网站搭建网站设计公司北京
  • 全国电子网站建设小蜜蜂网站建设
  • 罗浮视窗网站建设Wordpress 缓存策略
  • pc网站 手机网站 微信公众平台搜索引擎的关键词优化
  • 深圳高端企业官方网站建设公司主页网站制作
  • 网站建设邮箱免费自助建站做网站怎么上传
  • 电子商务网站建设汉狮太原seo网站管理
  • 网站建设制作的标准有哪些iis6建设网站
  • 做外贸上什么网站申请注册公司需要多少钱
  • 网站建设开发软件有哪些青海餐饮网站建设公司
  • 网站后台传图片wordpress 人体时钟
  • 网站建设产品说明书网站开发排期表
  • 企业名录2022版熊掌号接合网站做seo
  • ip段访问网站代码商业空间展示设计
  • 关键字挖掘爱站网迪庆州建设局网站
  • 做暧小视频免费视频在线观看网站app拉新推广
  • 2013网站建设方案多梦主题建设的网站
  • 温州优化网站方法建设网站宣传
  • 智林东莞网站建设公司怎么看一个网站做得好不好