- 1 手动实现rpc
- 2 手动实现stub中间人
- 3 json_rpc
- 4 http_rpc
- 1 zerolog
- 2 zap使用及源码分析
- 1 rabbitmq
- 1.1 消费者:推拉模式
- 1.1 生产者
- 2 kafka
- 2.1 客户端sarama
- 2.2 客户端confluent-kafka-go源码分析
- 2.2.1 生产者
- 2.2.2 消费者
- 3 rocketmq
- 3.1 消费者:简单消费,延迟消费
- 3.2 生产者:简单消息,延迟消息,事务消息
- 4 Asynq分布式延迟队列
- 1 获取配置及监听文件变化
- 2 服务注册,监听,获取
- go-mysql-driver插件源码分析
- 1 GORM
- 1.1 GORM原理及实现
- 1.2 连接池使用
- 2 XORM
- 2.1 主从连接
- 2.2 调用mysql函数
- 2.3 事务处理
- 2.4 crud
- 插入Insert
- 原生sql
- 获取retrieve
- 更新update
- MakeFile介绍
- grpc前置知识:http知识介绍
- protobuf及工具介绍
- 引入其他proto文件,支持编译多个proto文件
- 编码原理
- protoc,protoc-gen-go,protoc-gen-go-grpc,protoc-gen-gofast等工具
- 1 HelloWorld入门
- 2 context中的元数据metadata
- 3 流式GRPC
- 4 protobuf的jsonpb包序列化和反序列化
- 5 负载均衡
- 6 retry机制
- 7 grpc错误抛出与捕获
- 8 auth自定义认证
- 9 Grpc插件-proto字段验证器
- 10 Grpc插件-grpc网关直接对外http服务-->etcd中应用
- 11 Grpc插件-gogo/protobuf
- 12 GRPC生态中间件(拦截器扩展)
- 实现基于 CA 的 TLS 证书认证
- go-grpc-middleware实现多个中间间:异常保护,日志
- 13 channelz调试
- 14 multiplex多路复用
- 15 自定义grpc插件
- 1 MongoDB
- mongo和mysql对比:储存引擎及内存结构
- 1.1 增删改查
- 2 Redis(协议,原理,数据结构分析)
- redis底层数据结构对象源码分析
- 2.1 redigo使用
- 2.2 go-redis使用
- 1 Jaeger
- 2 OpenTelemetry
- 跨服务组合tracer代码展示:需开启svc1和svc2两个http服务(url可以是zipkin或则jaeger)
- 1 dig依赖注入及http服务分层->不推荐
- 2 wire依赖注入->推荐
- 1 Jsoniter(完全兼容标准库json,性能较好)
- 1.1 序列化
- 1.2 反序列化
- 2 mapstructure使用(性能低但是方便)
- Note: 使用DTM的代码作为案例
- 1 两阶段提交2pc/XA
- 2 saga事务
- 3 TCC事务
- 4 etcd的STM
- 1 phpserialize
- 1 动态选择文件
- 2 文件内容读取发送
- 0 熔断,降级,限流(官方包x/time/rate)
- 1 Sentinel
- 1.1 基于流量QPS控制
- 1.2 熔断
- 2 Hystrix
- 1 介绍及功能使用
- 2 在k8s中的应用
- 服务端server--读和写流程分析
- 服务端server--鉴权分析
- 服务端server--mvcc并发控制
- 服务端server--watch机制
- 1 基本操作CRUD及watch监听
- 2 boltdb基本操作及在etcd中的源码分析
- 3 bbolt改善boldb
- es索引及索引生命周期管理
- 1 官方包
- 1.1 批量写入Bulk
- 1.2 es日志
- 1.3 并发批量BulkIndexer
- 2 第三方包oliver
- 2.1 V6版本
- 2.2 V7版本