短信验证码的背后到底是什么
Table(表): 表由一个或者多个列族构成。数据的属性如name、age、TTL(超时时间)等都在列族里边定义。定义完列族的表是个空表,只有添加了数据行以后,表才有数据。 Column (列): HBase 中的每个列都由 Column Family(列族) 和 Column Qualifier(列限定符)进行限定,例如 info:name、info:age。建表时只需指明列族,而列限定符无需预先定义。 Column Family(列族): 多个列组合成一个列族。建表时不用创建列,在 HBase 中列是可增减变化的!唯一要确定的是列族,表有几个列族在开始创建时就定好的。表的很多属性,比如数据过期时间、数据块缓存以及是否使用压缩等都是定义在列族上的。 HBase 会把相同列族的几个列数据尽量放在同一台机器上。 Row(行): 一行包含多个列,这些列通过列族来分类。行中的数据所属的列族从该表所定义的列族中选取。由于HBase是一个面向列存储的数据库,所以一个行中的数据可以分布在不同的服务器上。 RowKey(行键): RowKey 类似 MySQL 中的主键,在 HBase 中 RowKey 必须有且 RowKey 是按照字典排序的,如果用户不指定 RowKey 系统会自动生成不重复字符串。查询数据时只能根据 RowKey 进行检索,所以 Table 的 RowKey 设计十分重要。 Region(区域): Region 就是若干行数据的集合。HBase 中的 Region 会根据数据量的大小动态分裂,Region是基于HDFS实现的,关于Region的存取操作都是调用HDFS客户端完成的。同一个行键的 Region 不会被拆分到多个 Region 服务器上。 Region 有一点像关系型数据的分区,数据存放在Region中,当然Region下面还有很多结构,确切来说数据存放在MemStore和HFile中。访问HBase 时先去HBase 系统表查找定位这条记录属于哪个Region ,然后定位到这个Region 属于哪个服务器,然后就到哪个服务器里面查找对应Region 中的数据。 RegionServer: RegionServer 就是存放Region的容器,直观上说就是服务器上的一个服务。负责管理维护 Region。 2.3 HBase 物理存储
以上只是一个基本的逻辑结构,底层的物理存储结构才是重中之重的内容,看下图 上面这段代码中,我们ProducerAsync还没有实现太多内容,目前只是传递了一个占位符。稍后我们可以枚举它,而枚举行为实际上调用了代码。 回到Duplex。这个方法,至少需要考虑两种不同的终止方式:
这儿,为什么不是之前列出的更多种终止方式呢?这儿要考虑到编译器的组合方式。我们需要的不是一个CancellationToken,而是一个CancellationTokenSource。 (编辑:南通站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |