Jesse' Notes

我干了什么 究竟拿时间换了什么

Elasticsearch学习

Elasticsearch

倒排索引:ES倒排索引底层原理及FST算法的实现过程_es倒排索引原理_Elastic开源社区的博客-CSDN博客 [关于Lucene的词典FST深入剖析 申艳超-博客](https://www.shenyanchao.cn/blog/2018/12/04/lucene-fst/) Elasticsearch Elastics...

领域驱动设计

DDD

DDD 1 DDD 战略设计会建立领域模型,领域模型可以用于指导微服务的设计和拆分。事件风暴是建立领域模型的主要方法,它是一个从发散到收敛的过程。它通常采用用例分析、场景分析和用户旅程分析,尽可能全面不遗漏地分解业务领域,并梳理领域对象之间的关系,这是一个发散的过程。事件风暴过程会产生很多的实体、命令、事件等领域对象,我们将这些领域对象从不同的维度进行聚类,形成如聚合、限界上下文等边...

《从0开始学大数据》笔记

大数据

极客时间 《从0开始学大数据》 大数据前生今世 今天我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。 Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapReduce。 MapReduce进行...

Hbase架构与原理

大数据

HBase架构与原理详解 1.1架构图 1.2 组件介绍 HBase由三种类型的服务器以主从模式构成: Region Server:负责数据的读写服务,用户通过与Region server交互来实现对数据的访问。 HBase HMaster:负责Region的分配及数据库的创建和删除等操作。 ZooKeeper:负责维护集群的状态(某台服务器是否在线,服务器之间...

分布式事务原理

分布式事务

Seata 是什么 分布式事务 Seata 及其三种模式详解 1. 单数据源事务 & 多数据源事务 原子性,A 一致性,C 隔离性,I 持久性,D 单个数据库实现自身的事务特性是一个复杂又微妙的过程,例如 MySQL 的 InnoDB 引擎通过 Undo Log + Redo Log + ARI...

RocketMq几个特性

RocketMq

参考: 分布式开放消息系统(RocketMQ)的原理与实践 RocketMQ实战与原理解析 [TOC] 整体架构 1.NameServer:NameServer之前相互独立,Broker、Producer、Consumer会定时向多个NameServer发送心跳,起到一个轻量级路由的作用。同时NameServer默认对所有的信息都是内存存储,不会持久化,即无状态。 ...

线上cpu飙升

线上cpu飙升

排查步骤 1.执行“top”命令:查看所有进程占系统CPU的排序。极大可能排第一个的就是咱们的java进程(COMMAND列)。PID那一列就是进程号。 2.执行“top -Hp 进程号”命令:查看java进程下的所有线程占CPU的情况。 3.执行“printf “%x\n 10”命令 :后续查看线程堆栈信息展示的都是十六进制,为了找到咱们的线程堆栈信息,咱们需要把线程号转成16进制。...

FIleChannel和MMAP

FIleChannel和MMAP

转载 文件 IO 操作的一些最佳实践 JAVA 中文件IO有几种方式? 原生的读写方式大概可以被分为三种:普通IO,FileChannel(文件通道),MMAP(内存映射)。区分他们也很简单,例如 FileWriter,FileReader 存在于 java.io 包中,他们属于普通IO;FileChannel 存在于 java.nio 包中,属于 NIO 的一种,但是注意 NIO 并不一定...

RocketMq中消息存储设计与实现

RocketMq之消息存储

消息文件存储结构 与 Kafka 类似,RocketMQ 选择直接操作文件系统来提升存储效率,不同的是,RocketMQ 将消息持久化过程最大化的转化为顺序写。 RocketMQ 默认存储路径为 $HOME/store,相关文件目录结构如下。 Kafka 以 Topic 作为文件存储的基本单元,即每个 Topic 有其对应的数据文件和索引文件。当存在大量 Topic 时,消息持久...

RocketMq中NameService设计与实现

RocketMq之NameService

一是作为路由注册中心,有哪些路由信息注册到了 NameServer? 二是 NameServer 通常以集群部署,且集群中的各个节点互相不通信,当 NameServer 集群中各节点路由信息不一致时,RocketMQ 如何保证可用性? 三是当 Broker 不可用后,NameServer 并不会立即将变更后的注册信息推送至 Client(Producer/Consumer),此...