2022-07-29 elasticsearch8 # Elasticsearch8+ ECE 认证工程师备考 # 安装 使用 Ubuntu16 系统 123apt-get install elasticsearch/etc/elasticsearch | /var/log/elasticsearch | /usr/share/elasticsearchwget... more...
2022-05-30 rocksDB # RocksDB 适用环境:内存、Flash、hard disks、HDFS # 数据结构 memtable(内存数据结构) sstfile(磁盘) 有序存储,方便查询 logfile(顺序写) 数据先写入 memtable ,部分请求内容写入 logfile (WAL:Write-Ahead Logging) memtable 内存满之后,执行 flush 操作,将数据转移到 sstfile ,同时删除 logfile 的数据 RocksDB 的 key 和 value 完全是 byte stream(无长度限制) DB 的所有数据按照 key 有序存储(因此 iterator... more...
2022-05-25 lmax-disruptor # LMAX Disruptor # 核心概念 Ring Buffer:version3.0 后,环形缓存仅作为存储和更新数据(事件) Sequence:序列作为识别组件位置,每个消费者维护一个自己的序列 Sequencer:序列器接口,有两个实现类(单生产者和多生产者),实现生产者和消费者快速传输的并发算法 Sequence Barrier:由 Sequencer 生产,包含对已发布 Sequence 的引用和任何依赖的消费者;也包含是否有数据需要被消费的逻辑 Wait... more...
2022-03-09 kafka # Kafka 发布 - 订阅模式的消息队列中间件 what is 发布 - 订阅模式?生产者发送消息到消息队列,消费者轮询主动拉取消息 # 优点 解耦:两边独立的修改和可扩展处理 可恢复性:消息存在队列中,一部分系统挂了,也可以重启继续读取消息队列 缓冲:解决生产者和消费者速度不一致问题 削峰:防止流量猛增导致系统崩溃 异步处理:等待指定时间后处理消息 # 速度快? 页缓存 保存在内存 数据写入磁盘,采用 write-back 机制:先判断是否在页缓存中存在,不存在添加到页缓存,然后再向磁盘中写入。 零拷贝:不需要 CPU 拷贝,通过 sendfile 实现 DMA... more...
2021-12-14 git # git init 初始化本地仓库,创建 .git 文件夹 # git add 将文件添加到暂存区 # git commit 将暂存区的文件提交到当前分支(本地仓库) # 常用命令 -m <info> :添加提交的说明 # git push 将当前分支的内容提交到远程分支 -f : # git log 查询提交的日志(按时间近到远排序),不包括已经被删除的 commit 记录和 reset 操作 # 常用命令 --pretty=oneline :只显示一行(id + 提交的信息) # git... more...
2021-10-29 big-data # 大数据知识 # OLAP 和 OLTP 的概念和比较 OLAP:联机分析处理。数据仓库的主要应用,支持复杂的数据操作。 OLTP:连接事务处理。传统的关系型数据库的主要应用,主要是基本的事务处理。强调数据的实时性和内存效率,以及并发的操作 OLTP OLAP 数据 最新的数据 历史数据;聚合、多维集成的数据 工作单位 事务 查询 时间 实时性 存在一定延迟 应用 数据库 数据仓库 # Hadoop 、 HDFS 、 Hive 、 HBase 的关系 Hadoop :分布式计算的开源框架 HDFS :分布式文件系统( Hadoop 三大组件之一) Hive... more...
2021-10-28 hadoop # Hadoop Apache 下密集型数据分布式系统基础架构。 实现海量数据的存储和分析计算 特点 高可靠性:多副本存储 高拓展性:可以方便的动态拓展节点 高效性:并行计算,汇总 —— MapReduce 高容错性:自动分配失败的任务(一个节点的计算任务挂掉,会将该节点的计算子任务分配到另一个有该任务资源的节点上进行计算) # 一、HDFS 分布式文件系统 # NameNode 存储文件的元数据(存储文件的信息,不存储数据) # DataNode 存储文件块数据,以及数据的校验和 # Secondary NameNode (2NN) NameNode 的数据备份(防止... more...
2021-10-14 RocketMQ # 设计架构 # Producer 消息提供 / 发布者,支持分布式和集群部署 通过 NameServer ,获取 Broker 路由信息,通过负载均衡模块选择对应的 Broker 集群队列,并发布消息。 投递的过程支持快速失败并且低延迟。 # Consumer 消息消费者,支持分布式和集群部署 支持 push /pull 进行消费;支持集群(默认消费模式)和广播形式消费 集群模式:同一个 ConsumerGroup 下,一条消息消费一次 广播模式:同一个 ConsumerGroup 下,一条消息每个实例都消费一次 实时消息订阅(订阅 topic) #... more...
2021-10-12 database # build a simple database # 一、设计结构 # 1) Tokenizer 拆分语法 解析引擎 :: ShardingSphere (apache.org) 涉及到 AST(抽象语法树) 词法分析:https://developer.aliyun.com/article/71979 不采用纯手写,使用第三方工具: antlr :自动生成语法树的开源语法分析器,可以适用 Java、C、C++ 等多语言。 yacc/lex :参考 Github # 2)Parser 解析语法 prepare_statement() 美团使用 SQL... more...
2021-10-09 Flink # what is Flink? 分布式 处理引擎 # 流 无边界 / 有边界 的 有状态 的计算 无边界:只定义开始,没有结束,数据摄入后立即执行(输入无限) 有边界:定义开始和结束。可以数据摄入后立即立即执行(实时),也可以等待全部输入(存储在存储引擎中)后批量执行(历史记录) 任务 —— 并行处理 # 状态 只有在每一个单独的事件上进行转换操作的应用才不需要状态 多种状态基础类型:数据类型(value、map、list 等) State Backend :管理状态。内存 / RocksDB 精确一次语义:处理故障,保证状态一致性 超大数据量状态:利用其异步以及增量式的... more...