卡包项目-总结

Posted yintingting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卡包项目-总结相关的知识,希望对你有一定的参考价值。

1. 主要开发框架及工具

JDK1.8 + mysql + SpringBoot + Hbase + Redis + Kafka

mysql :

  1. 关系型数据库(由多张能互相连接的二维行列表格组成的数据库)

  2. mysql索引的数据结构B+树

B+树是对B树的一种变形树,它与B树的差异在于:

  • 有k个子结点的结点必然有k个关键码;
  • 非叶结点仅具有索引作用,跟记录有关的信息均存放在叶结点中。
  • 树的所有叶结点构成一个有序链表,可以按照关键码排序的次序遍历全部记录。
  • 3层的b+树可以表示上百万的数据,如果上百万的数据查找只需要三次IO,性能提高将是巨大的,如果没有索引,每个数据项都要发生一次IO,那么总共需要百万次的IO,显然成本非常非常高。
  • 索引字段要尽量的小
  • 索引的最左匹配特性
不同的存储引擎支持的索引类型也不一样
InnoDB 支持事务,支持行级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
MyISAM 不支持事务,支持表级别锁定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;

  3. 事务隔离级别

  • 未提交读(Read Uncommitted): 允许脏读,即可以读到其他会话中未提交事务修改的数据
  • 提交度 (Read Committed): 只能读取到已经提交的数据
  • 可重复读(Read Repeated): 在同一个事务内的查询和事务开始时刻一致的,InnoDB默认
  • 串行读(Serializable):每次读都需要获得表级共享锁,读写都会相互阻塞
  • 事务级别越高,性能越差。Read Committed可以满足大多数的场景。

  使用mysql往往会遇到数据读写的瓶颈,而HBase这种分布式的存储架构面对数据的增长不需要做任何更改,只需要增加存储空间,且不会对读写性能有任何影响

Redis

  1. K-V缓存系统

  2. 支持的数据类型

  • String
  • Hash
  • List
  • Set
  • SortedSet

  3. 特点

  • 原子性:redis所有单个命令都具有原子性(因为redis是单线程的)
  • 过期机制

HBase

  1. 列族式存储

  2. Table = Rowkey + Family + Column + Timestamp + value

  3. 数据存储模式: (Table, Rowkey, Family, Column, Timestamp) -> value

  4. 默认一列数据可以保存三个版本

  5. 行式索引维护大量的索引,存储成本比较高,不能做到线性扩展,但是随机读效率高,对事务处理得比较好。列式存储根据同一列数据相似性的原理,利于对数据进行压缩,存储成本就会降低。列数据分开存储可以实现并行查询。千万级别的可以选择行式存储

Kafka

  消息系统:

点对点消息系统 : 一个消息只能被一个消费者消费

发布订阅消息系统 : 一个topic下有多个queue, 每个queue是点对点的方式,queue之间是发布订阅方式。发布到topic的消息会被所有订阅者消费。

  kafka是一个分布式的发布订阅消息系统,能够支撑海量数据的消息传递。kafka将消息持久化到磁盘中,并对消息创建了备份,保证了数据的安全。

  特点: 可靠性,可扩展性,高性能

 

以上是关于卡包项目-总结的主要内容,如果未能解决你的问题,请参考以下文章

yarn添加包

项目开发收尾总结(片段)

VsCode 代码片段-提升研发效率

python常用代码片段总结

BootStrap有用代码片段(持续总结)

卡包模板