暂无搜索历史
seata除了使用文件作为默认的配置中心和服务发现外,还可以使用nacos,我们学习下如何配置:首先启动mysql、nacos、seata,然后copy默...
接着看下dubbo模式的源码,它的实现和api其实很相似,只不过从单体服务变成了4个微服务,首先看下三个RM的实现,基本没有变化,比如Accou...
接下来学习下dubbo的例子,首先还是启动seata和mysql
TM的代码位于src/main/java/io/seata/samples/api/Bussiness.java,TM开始执行前,先初始化各个R...
seate-server有三种方式存储事务信息:file、db、redis;在file模式下,它将信息存储在文件/seata-server/se...
从seata的最简单模式file模式开始,学习下seata。开始之前先启动下seata TC,启动脚本如下:
etcd的增删改都会增加全局版本号,删除也是软删除,虽然便于回溯修改历史,但是随之带来问题,数据量的膨胀。因此需要进行压缩,也就是compact...
介绍完一个个函数实现后,我们分析下完整的etcd的读写流程。有没有觉得很奇怪既然bolt是采用b+树存储的持久化存储来存储kv,为什还需要一个B...
mvcc目录的server/storage/mvcc/hash.go定义了哈希方法
server/storage/backend/backend.go定义了后端存储的核心接口和具体实现,本质上是对boltdb的相关接口的一个封装
wal的定义位于server/storage/wal/wal.go,它本质上也是一种日志,不过是存在本地,核心属性有日志文件的文件描述符、日志头...
接者看下storage目录的外层几个文件server/storage/backend.go,它其实仅仅对文件server/storage/back...
我们来看下lease目录,了解下租约是如何实现的。首先我们还是从server的初始化地方开始:server/etcdserver/server....
github.com/google/btree是golang实现的一个平衡多叉树。它是etcd索引使用的树形结构。它使用起来非常简单。
etcd后端存储用的是bolt,在分析完server如何初始化raftNode流程后,我们看下后端存储bolt-db的初始化流程。
分析完raft算法,回来看etcd server的代码就比较清晰了,我们从入口文件server/main.go开始
我们继续在文件 server/etcdserver/server.go 中分析EtcdServer的初始化流程,它会先调用bootstrap函数初...
下面我们来到更底一层,分别分析下pipeline和stream的实现,pipeline通过固定数量的goroutine 来分发处理消息:
前面提到transport将远程对象分为两类:remote和peer,分别代表新建立的连接和已经加入集群的节点,下面简单分析下它们的核心逻辑:
在分析完核心数据结构后,我们结合使用boltdb的核心过程了解下上述数据结构建立的过程,总结下来核心过程如下:
暂未填写公司和职称
暂未填写学校和专业
暂未填写个人网址
暂未填写所在城市