最新 最热

golang源码分析:miniredis

做单元测试的时候,我们需要打桩mock掉一些中间件,miniredis是mock掉redis的一个利器它既可以通过非网络本地mock,也可通过tcp请求,经过redis协议完整mockredis代码,首先看下如何使用:...

2023-09-06
3

golang源码分析:go-mysql-server(1)

go-mysql-server是基于内存的mysql server,使用方法分下面五步,创建engine,设置root账户,初始化配置,初始化server,开启服务。具体如下:

2023-09-06
2

golang源码分析:httptest

httptest是golang官方源码自带的测试包,它可以非常方便获取http请求结构体,http返回值结构体,以及在本地启动一个loopback的server,方便我们做单测。对于go的web应用程序中往往需要与其他系统进行交互, 比如通过http访问其...

2023-09-06
1

golang源码分析:httpmock

https://github.com/jarcoal/httpmock是一个mock http请求包,他的原理是使用MockTransport替换http包client的Transport RoundTripper,并注册请求对应的返回值。当http请求发出的时候,被mock的Transport拦截,通......

2023-09-06
2

golang源码分析:goplantuml

https://github.com/jfeliu007/goplantuml/是一款工具可以解析golang源码,生成plantuml类图,它的原理是通过源码静态分析,提取结构体,接口,方法,包等属性,然后按照uml语法生成puml文件,效果如下。...

2023-09-06
1

golang源码分析:go-mysql-elasticsearch(2)

go-mysql-elasticsearch的入口位于:mysql/go-mysql-elasticsearch/cmd/go-mysql-elasticsearch/main.go核心逻辑如下:

2023-09-06
2

golang源码分析:go-mysql(5)fake server

如何定义一个Fake server,接受客户端的请求,返回希望的结果,本质上是一个tcp server服务器,定义一个服务器过程如下:

2023-09-06
2

golang源码分析:go-mysql(4)binlog增量同步

实现binlog增量同步(Incremental dumping)需要哪些步骤呢?获取配置,初始化同步器,找到上一次同步位置,开启同步,并处理解析到的事件,整体流程如下:...

2023-09-06
2

golang源码分析:go-mysql-elasticsearch(1)

https://github.com/go-mysql-org/go-mysql-elasticsearch是一款通过解析mysql的binlog将mysql数据同步到es的同步工具,支持正则表达式多表同步。下面我们分析下如何使用。首先是安装...

2023-09-06
2

golang源码分析:go-mysql(3)mysql客户端

mysql Client进行一次查询需要三个核心操作,获得连接、测试连是否可用、发送请求:

2023-09-06
2