对象存储

块存储Ceph,对象存储Swift,存大文件的HDFS的技术比较

匆匆过客 提交于 2020-01-13 01:51:24
文章目录 1.存储文件的大小 2.存储类型:块存储和对象存储 3.对象存储的概念 5.对象存储和文件系统存储区别 1.存储文件的大小 HDFS、HBase、Hive不太适合存文档、图片大小的文件,HDFS适用于存大文件。 SWIFT:处理几个G的大文件性能上可能会比HDFS差,因为没有条带化。 但遇到很多几兆、几十兆的,这些文件的存储,HDFS就不如SWIFT。 所以对于日常文件的单独处理用SWIFT,集中处理如果达到G级用HDFS。 2.存储类型:块存储和对象存储 如果只要用对象存储,就选择SWIFT;如果只要用块存储,那就Ceph; 既要用对象存储又要用块存储的场合,是用SWIFT还是Ceph呢? ( 1 )如果节点数量很大,推荐用Ceph单独做块,用SWIFT做对象存储,因为在节点数量较大时,Ceph的维护成本比SWIFT要高得多, 大多数场景实际应用的时候会发现,大部分数据都可以放到对象存储上 ; 2 ) 如果节点数量少,那就用Ceph统一搞定,因为一般认为生产环境中最小的分布式存储应当有五个节点,所以,如果节点数量 少于十个或者刚到十来个,那构建两个分布式存储显然是不理想的 ( 考虑到空间划分问题 ) ; 3 ) 如果团队里有牛人能轻松解决Ceph大规模部署问题,那就果断用Ceph ; 4 ) 如果希望对象存储能够和OpenStack其他项目无缝结合,如果希望实现多租户

OpenStack(理论篇)

梦想与她 提交于 2020-01-13 01:22:22
OpenStack基础理论 云计算概述 概念 狭义的云计算是指IT基础设施的交付和使用模式 广义的云计算是指服务的交付和使用模式 云资源 网络资源 存储资源 服务器资源 云计算服务模型 IaaS(基础架构即服务) 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等 一般面向对象是IT管理人员 PaaS(平台即服务) 把安装好开发环境的 系统平台作为一种服务通过互联网提供给用户 一般面向对象是开发人员 SaaS(软件即服务) 直接通过互联网为用户提供软件和应用程序的服务 一般面向的对象是普通用户 OpenStack概述 一款云计算模型中的一个项目 NASA和Rackspace合作研发并发起 以Apache许可证授权的自由软件和开放式源代码项目 旨在为公共及私有云的建设与管理提供软件的开源项目 覆盖了网络、虚拟化、操作系统、服务器等各个方面 OpenStack服务框架 服务 项目名称 描述 Compute (计算服务) Nove 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展 Network(网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 Identity(身份认证服务) Keystone

Array和ArrayList的区别

♀尐吖头ヾ 提交于 2020-01-12 23:55:33
Array是数组,可以存储基本类型和对象,ArrayList是集合,只能存储对象. Array初始化是指定大小的,ArrayList初始化大小是固定的. 来源: CSDN 作者: 乐于求知 链接: https://blog.csdn.net/nlv123/article/details/103949182

OpenStack(理论篇)

一个人想着一个人 提交于 2020-01-12 20:46:19
OpenStack基础理论 云计算概述 概念 狭义的云计算是指IT基础设施的交付和使用模式 广义的云计算是指服务的交付和使用模式 云资源 网络资源 存储资源 服务器资源 云计算服务模型 IaaS(基础架构即服务) 提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等 一般面向对象是IT管理人员 PaaS(平台即服务) 把安装好开发环境的 系统平台作为一种服务通过互联网提供给用户 一般面向对象是开发人员 SaaS(软件即服务) 直接通过互联网为用户提供软件和应用程序的服务 一般面向的对象是普通用户 OpenStack概述 一款云计算模型中的一个项目 NASA和Rackspace合作研发并发起 以Apache许可证授权的自由软件和开放式源代码项目 旨在为公共及私有云的建设与管理提供软件的开源项目 覆盖了网络、虚拟化、操作系统、服务器等各个方面 OpenStack服务框架 服务 项目名称 描述 Compute (计算服务) Nove 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展 Network(网络服务) Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 Identity(身份认证服务) Keystone

从零开始的java学习Day15----------基础篇(IO流)

旧城冷巷雨未停 提交于 2020-01-12 05:39:05
IO流 我们电脑中的数据,都是一个个二进制数字(字节)组成,我们传输数据,就可以看做是一种数据的流动,以内存为基准按照流动的方向,就分为输入流(流向内存)和输出流(输出内存)。输入也叫做读取数据,输出也叫做写出数据,这就是IO流 I:input(输入) O:output(输出) IO的分类 按照数据的流向分为: 输入流:把数据从其他设备上读取到内存中的流。 输出流:把数据从内存 中写出到其他设备上的流 按照数据类型分为: 字节流 :以字节为单位,读写数据的流。 字符流 :以字符为单位,读写数据的流。 顶级父类 字节流:字节输入流(InputStream) 字节输出流(OutputStream) 字符流:字符输入流(Reader) 字符输出流(Writer) 字节流 字节输出流OutputStream OutputStream是所有字节输出流的超类,将指定字节信息写出到目的地,他里面定义了字节输出流的基本共性方法。 常用方法: void close ( ) :关闭此输出流并释放与此流相关联的任何系统资源。 void flush ( ) :刷新此输出流并强制任何缓冲的输出字节被写出。 abstract void write ( int b ) :将指定的字节输出到输出流(自动转为字符型) void write ( byte [ ] b ) :将指定字节数组内元素依次输出到输出流

day07_Scanner类、Random类、ArrayList类

笑着哭i 提交于 2020-01-12 02:46:07
API 概述 API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 API使用步骤 打开帮助文档。 点击显示,找到索引,看到输入框。 你要找谁?在输入框里输入,然后回车。 看包。java.lang下的类不需要导包,其他需要。 看类的解释和说明。 学习构造方法 使用成员方法。 引用类型使用步骤 类属于引用类型的一种,所有起使用步骤符合引用类型的使用步骤 1:导包 使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格式: 2:创建对象 使用该类的构造方法,创建一个该类的对象。 格式: 3:调用 调用该类的成员方法,完成指定功能。 格式: 举例: 调用该类的成员变量,来获取指定的值 格式: 变量名.成员变量名称 Scanner类 什么是Scanner类 一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数: //备注:System.in 系统输入指的是通过键盘录入数据。

C#引用类型和值类型的对比(装箱与拆箱)

自作多情 提交于 2020-01-11 03:08:21
1***、 C#中有两种类型: 值类型和引用类型: 值类型的变量直接包含他们的数据,而引用类型的变量存储引用类型存储对他们的数据的引用,后者称为对象: 简单说:值类型直接存储其值,引用类型存储对值得引用.引用类型分为引用和引用的对象。 2***、 值类型:简单类型、枚举、结构 引用类型: 类类型、接口类型、数组类型和委托类型 3***、值类型与引用类型的内存存储 单纯的说值类型存储在栈上,引用类型存储在托管堆上是不对的。 4***、区别: 1) 托管堆: 同步块和方法表, x,y,托管堆上的需要GC来回收 线程堆栈: 没有同步块和方法表 2) 值类型赋值是重新创建一个副本 而引用类型的赋值是共享同一块内存(副本),是指向同一块内存(引用类型的名字相当于指向操作)。只是复制引用而不复制被引用识别的对象。(“引用”和“引用的对象”) 3) 值类型与引用类型的不同之处就在于值类型的变量直接包括他们的数据,而引用类型的变量把references存储到他们的数据库(Objects)中。 4) 所有的值类型从Object中继承来的。任何类型都不能由值类型派生而来,因此,值类型是封闭式的。 5***什么时候使用值类型 1)当类型是一个十分简单的类型,其中没有成员会修改类型的任何实例字段 2)类型不需要从其他任何类型继承 3)类型不会派生出其他任何类型 4)类型的实例较小 5

java虚拟机内存模型

一曲冷凌霜 提交于 2020-01-10 18:30:36
目录 一、虚拟机 二、虚拟机组成 1.栈 栈帧 2.程序计数器 3.方法区 对象组成 4.本地方法栈 5.堆 GC GC案例 一、虚拟机 ​ 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。 同一个java代码在windows上生成的机器码可能是0101…,在linux上生成的可能是1100…,那么这是怎么实现的呢? 不知道同学们还记不记得,在下载jdk的时候,我们在oracle官网,基于不同的操作系统或者位数版本要下载不同的jdk版本,也就是说针对不同的操作系统,jdk虚拟机有不同的实现。 那么虚拟机又是什么东西呢,如图是从软件层面屏蔽不同操作系统在底层硬件与指令上的区别,也就是跨平台的由来。 说到这里同学们可能还是有点不太明白,说的还是太宏观了,那我们来了解下java虚拟机的组成。 二、虚拟机组成 ​ 1.栈 我们先讲一下其中的一块内存区域栈,大家都知道栈是存储局部变量的,也是线程独有的区域,也就是每一个线程都会有自己独立的栈区域。 public class Math { public static int initData = 666; public static User user = new User(); public int compute() { int a = 1; int b = 2; int c = (a+b

OAuth2 [org.springframework.data.redis.serializer.SerializationException: Cannot serialize

删除回忆录丶 提交于 2020-01-10 07:29:09
不想看分析过称的 ,文章结尾就是解决方法 OAuth2 虽然公司项目用了,但只是浅尝辄止,今天自己搭了一下服务,出现这么一个问题。 我是用 RedisTokenStore存储token refresh token ,在redisTokenStore 存储的时候, 会把要存储的对象序列化变成byte数组放到redis里面。 这个地方就出问题了。 具体的提示是: Resolved [org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io.NotSerializableException: org.springframework.dao.support.PersistenceExceptionTranslationInterceptor] 解决问题 debug了一下源码,发现是在序列化 OAuth2Authentication 的时候

Java_集合与泛型

人走茶凉 提交于 2020-01-10 00:31:43
Collection 集合,集合是java中提供的一种容器,可以用来存储多个数据。 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据。那么,集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 集合中存储的元素必须是引用类型数据 集合的继承关系图 a:ArrayList的继承关系: 查看ArrayList类发现它继承了抽象类AbstractList同时实现接口List,而List接口又继承了Collection接口。Collection接口为最顶层集合接口了。 源代码: interface List extends Collection { } public class ArrayList extends AbstractList implements List{ } b:集合继承体系 这说明我们在使用ArrayList类时,该类已经把所有抽象方法进行了重写。那么,实现Collection接口的所有子类都会进行方法重写。 Collecton接口常用的子接口有:List接口、Set接口 List接口常用的子类有:ArrayList类、LinkedList类 Set接口常用的子类有:HashSet类、LinkedHashSet类 可以看下图了解继承关系 集合Collection的方法