Tags

keep simple,keep naive
gRPC

Golang 中的错误处理

如何优雅的处理 Golang 错误以及 gRPC 的错误


Consul 服务治理的那些事(二)

Consul 的细节梳理


gRPC 应用篇之客户端 Connection Pool

连接池的实现分析 && 是否需要 Tcp/gRPC 客户端连接池 ?&& 通用连接池的实现


gRPC 客户端长连接机制实现及 keepalive 分析

如何实现针对 gRPC 客户端的自动重连机制


gRPC 微服务构建之链路追踪(OpenTracing)

在 gRPC 服务中应用 OpenTracing:使用 Zipkin 和 Jaeger 进行路追踪


gRPC 应用之 Prometheus 监控接入

使用 gRPC 拦截器对接 Prometheus 监控介绍


gRPC 知识点备忘录(持续更新)


gRPC 微服务构建之日志(Logging)

使用 gRPC 实现zap日志拦截器(With Tracing)


gRPC Interceptor:go-grpc-middleware 介绍与使用

优秀的 gRPC 开源中间件实现:go-grpc-middleware


gRPC 中的 Metadata


gRPC 应用篇之自带组件


gRPC 应用篇之 Resolver 接口封装

如何封装 gRPC 的 Resolver(Kratos)


gRPC 源码分析之 Picker 篇

gRPC 客户端选择器实现分析


gRPC 源码分析之官方 Picker 实现

gRPC 客户端选择器分析(Picker With RoundRobin)


gRPC 之 Interceptor 实战篇

如何优雅的使用 gRPC 拦截器


gRPC 源码分析之 Balancer 篇

gRPC 客户端平衡器分析


gRPC 源码分析之 DnsResolver 篇

如何使用内置的 DNS 负载均衡器


gRPC 源码分析之 Resolver 篇

gRPC 客户端解析器实现分析


Kubernetes 应用改造(一):Headless Service

使用 gRPC+Headless-Service 构建后端服务


Consul 服务治理的那些事(一)

使用 gRPC+Consul 构建高可用的后端服务


基于 gRPC 的服务发现与负载均衡(基础篇)

gRPC 负载均衡架构分析


Golang

再看 io.Copy

梳理一下容易被遗漏的细节问题


Golang 网络编程(三):tun 网络编程

golang tun 网络编程应用以及 gvisor 协议栈开发介绍


Sync.Pool 应用与分析(续)

Golang sync.Pool 源码分析


bytes.Buffer 源码分析及应用


go-redis/cache 库分析与使用


Golang 闭包与递归:介绍与应用场景

Golang closure


Golang 并发:如何优雅处理并发 goroutine 中的错误等若干细节

Golang errorgroup 应用(续)


Singleflight:原理与应用(续)

如何安全且正确的使用 singleflight


OpenSSH Certificate 与 Golang 的兼容性问题


Golang 中的GC小结(未完待续)


Golang 中的错误处理

如何优雅的处理 Golang 错误以及 gRPC 的错误


数据结构与算法回顾(五):golang 的 container 包

list、heap 和 ring


Golang 网络编程(二):轻量级 TCP 框架实现分析

分析典型的 TCP 框架:getty && xtcp


Golang 网络编程:UDP 的若干细节

基于 Golang Udp 的高性能编程总结


数据结构与算法回顾(六):Golang IO shaping

基于限流器的流量整形算法实现


Golang 并发协程池实现分析(四)

分析 Jeffail/tunny 协程池实现


基于 CRON 库扩展的分布式 Crontab 的实现

基于 golang 的分布式定时器任务模型的通用实现


使用 Golang 实现 RDP 和 VNC(一)

rdp/vnc 协议基础 && 使用(入门篇)


Golang 系统编程:如何实现对后台服务优雅的热重启?

网关的热重启机制:原理&&实现&&分析(fvbock/endless)


Golang CRON 库 Crontab 的使用与设计

基于 golang 的定时任务模型分析


Golang httprouter 库分析

高效的路由框架 julienschmidt/httprouter 分析


Golang 标准库:net/http 应用(二)

net/http 客户端在项目中的应用经验小结


Golang 并发协程池实现分析(三)

分析 Ants 协程池实现


一个基于 golang 的轻量级 IM 项目分析:gochat

分析一款实时通信 IM 项目 gochat


在 Golang 中实现 Openssl 的 AES-CBC-256 算法(With Salt)


Hot Reload:Golang 如何实现配置文件优雅的热更新

配置文件的优雅热加载实现以及 viper 库的机制分析


Confd 使用 && 源码分析

Confd 源码分析:强大的动态配置更新(基于 etcdv3/redis 存储)


Golang 并发协程池实现分析(二)

分析 Fasthttp 的 goroutine pool


Golang 并发协程池实现分析(一)

分析一款非常典型的 goroutine pool 实现


Golang 标准库:net/http 分析(一)

net/http 客户端之 transport 分析


Golang TCP 并发服务器框架:Zinx

一个基于 Golang 轻量级 TCP 并发服务器框架分析


一个轻量级的 golang 协程池的实现

使用 Golang-channel 实现工作池:批量并发处理


基于 Golang 实现的定时器分析与实现(二):最小堆 && 时间轮

Timer and Ticker: events in the future


Golang 并发模型:Pipelines and cancellation

Channel 的经典应用(基础)


开源限流组件分析(二):Golang-time/rate 限速算法实现分析

分析 Golang 标准库提供的令牌桶限流器


一个 Http(s) 反向代理(网关)的实现分析

如何使用几百行代码实现一个高可用的反向代理服务


Golang 中的 sync.Pool 使用

调优系列:Golang 优化系列之临时对象池


Golang 中网络编程开源项目汇总(持续更新)

我们可以从开源项目中学习到什么(二)


GOMAXPROCS 的坑

容器环境中使用 runtime.GOMAXPROCS 需谨慎


使用 Golang 开发 generator(生成器)

生成器:一种程序逻辑优化的思路


Golang 的 Channel(应用篇)

如何使用 channel 开发有保证的应用


Golang Slice 那些事

Slice 最佳实践


Golang IO copy 系列方法探究

golang-IO 包使用经验(二)


神奇的 Golang-IO 包

golang-IO 包使用经验(一)


Golang 中有趣的后台项目汇总

我们可以从开源项目中学习到什么?


Kratos

Kratos 源码分析:Tracing (二)

分析 Kratos 的 opentracing 实现:应用


Kratos 源码分析:Tracing (一)

分析 Kratos 的 opentracing 实现:概念与数据结构抽象


Kratos 源码分析:CGI 框架 BM (四)

分析基于 gin 改造的框架 blademaster:路由树构造算法


Kratos 源码分析:CGI 框架 BM (三)

分析 CGI 框架 blademaster:路由


Kratos 源码分析:CGI 框架 BM (二)

分析 blademaster 中的拦截器实现及设计


Kratos 源码分析:CGI 框架 BM (一)

分析基于 gin 改造的框架 blademaster:基础


Kratos 源码分析:Warden 负载均衡算法之 P2C

分析 Warden 实现的负载均衡算法 P2C(Power of Two Choices)


Kratos 源码分析:Metrics 与 Prometheus 的集成与使用

分析 Kratos 的数据指标采集与使用


Kratos 源码分析:Warden 之 gRPC-Server 封装

分析 Warden 的 Server 端封装


Kratos 源码分析:Warden 之 gRPC-Client 封装

分析 Warden 的 Client 端封装


Kratos 源码分析:Errgroup 机制

分析原生的 errgroup 即 Kratos 的 errgroup


Kratos 源码分析:Hbase 库封装

分析 Kratos 的 Hbase Client:How to Hook?


Kratos 源码分析:Naming 解析(下)

分析 Warden 中对 Naming 的调用及实例应用


Kratos 源码分析:熔断器 Breaker

分析 Kratos 的熔断器实现


Kratos 源码分析:限流器 Limiter

分析 Kratos 的 BBR 限流器实现


Kratos 源码分析:Ecode 错误代码

分析 Kratos 的 Error-code


Kratos 源码分析:ORM 之 Mysql 的封装

分析 Kratos 的数据库 MYSQL-API


Kratos 源码分析:超时(Timeout)传递

Context 的用法:Warden/Database 中的超时传递实现分析


Kratos 源码分析:Warden 中的 gRPC validator

分析 Kratos 的 gRPC 中的字段验证器


Kratos 源码分析:Naming 解析(上)

分析 Naming 的多消费者订阅 - Watcher 模式


Kratos 源码分析:Kratos 中的 Metadata 元数据

一种全局变量的存储方式:Metadata


Kratos 源码分析:Lazy Load Container

分析 Kratos 的懒对象容器及应用场景


Kratos 源码分析:gRPC-Warden 拦截器(链)及实现

Kratos 框架分析


Kratos 源码分析:理解 Kratos 的数据统计类型 Metrics(二)

分析 Kratos 框架中的 Metrics:LB 算法中的应用


Kratos 源码分析:计划

分析微服务开发框架 Kratos


Kratos 源码分析:理解 Kratos 的数据统计类型 Metrics(一)

分析 Kratos 框架中的 Metrics:滑动窗口


Kratos 源码分析:分析 Warden 框架 Dynamic-WRR 负载均衡算法的实现

Warden 框架中的 WRR 算法代码分析