摘要:
B 树 B 树和一般的二叉树有许多相似的地方,二者都是为了加快查找的速度,不同之处在于 B 树是为了解决大量的数据而产生的,更加适合读取相对大的数据块的存储系统。B 树的每个节点一般不会存储实际的数据,而只是存储对应的索引位置(类似指针) B 树有时也被称作是 B- 树,这是为了和 B+ 树有一个区 阅读全文
摘要:
前面的相关文件简要地介绍了 Kafka 的基本使用,本文将将要介绍一下关于 Kafka 的集群关系、存储结构以及架构方面的内容进行简要的解析 组件之间的关系 Kafka 中,各个组件之间的关系如下图所示: 每个组件的解释如下: Producer:生产者,实际产生消息的角色 Topic:直接翻译过 阅读全文
摘要:
Protobuf 是 Google 用于序列化数据对象的一种机制,使得数据对象能够在应用程序和服务器之间进行交互,尽管现在 Java 已经对应的序列化的实现方式,但是传统的序列化方式存在严重的缺陷,因此现在应该避免使用 Java 自带的序列化方式。 传统序列化方式的局限性 按照传统的实现,如果要使得 阅读全文
摘要:
Kafka 是一款分布式消息发布和订阅系统,最初的目的是作为一个日志提交系统来使用。现在,也可以作为一般的消息中间件来使用。 组件介绍 相关的组件介绍如下表所示: 组件 解释 Broker 实际 Kafka 存储消息的部分 Topic Kafka 通过 Topic 来对消息进行归类,发布到 Kafk 阅读全文
摘要:
维基百科对 Zookeeper 的介绍如下所示: Apache ZooKeeper是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册 ZooKeeper 的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKee 阅读全文
摘要:
RocketMQwiki是一个分布式消息和流数据平台,具有低延迟、高性能、高可靠性、万亿级容量和灵活的可扩展性。RocketMQ是2012年阿里巴巴开源的第三代分布式消息中间件,2016年11月21日,阿里巴巴向Apache软件基金会捐赠了RocketMQ;第二年2月20日,Apache软件基金会宣 阅读全文
摘要:
消息中间件的作用 采用消息中间件的原因: 有时并发量并不是一直那么大,只是瞬时间有那么大的流量导致系统在这个时间区间内无法负载这么大的流量,导致系统崩溃。这种情况下,可以采用消息中间件来暂时存储这些消息,在之后的时间区域内再进行处理,这也被成为 “削峰填谷” 随着微服务的流行,需要对系统的各个部分进 阅读全文
摘要:
有时可能需要查看 Unix 操作系统中有关于文件基本单元的块大小,以便对有的系统进行适当的优化(如 MySQL),本文将介绍几种在 Unix 上以及类 Unix 操作系统上可行的查看方式 检查文件系统[1] 使用 df 命令 具体的命令如下: # df 命令本身是用于报告磁盘的使用情况,经过扩展 - 阅读全文
摘要:
解决并发事务带来的问题 写—写情况 任意一种事务隔离级别都不允许 “脏写” 的发生,因为这样会使得数据混乱。所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行执行,避免 “脏写” 的发生。 为了使得事务的执行是串行化的,需要通过对修改的记录进行加锁,才能保证事务的执行是串行化的 阅读全文
摘要:
事务 事务是一组原子性的 SQL 操作,或者被称为一个独立的工作单元,如果数据库引擎能够成功地对数据库应用该组的全部 SQL 语句,那么就会全部执行,否则全部不执行。 事务的特性 在关系数据库管理系统中,事务需要满足 ACID 四个基本特征,具体解释如下[1]: A(Atomicity)原子性 一个 阅读全文