Archive

keep hungry keep foolish
2021

Golang httprouter 库分析

高效的路由框架 httprouter 分析

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

分析 Ants 协程池实现

数据结构与算法回顾(一):多阶 hash

一种高利用率的 hash 存储结构分析

Kubernetes 应用改造(八):如何在 TKE 上搭建 Redis 环境

Statefulsets 应用场景

安全:KMS 的那些事

KMS 原理与使用

Golang ReverseProxy 分析

原生库的反向代理代码分析

DiDi 开源 API 网关 gatekeeper 项目分析

一个微服务网关的设计与实现

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

开源熔断组件分析(一):gobreaker

分析 Sony 的 gobreaker 熔断器实现(Circuit Breaker 的一种实现)

安全:SSO 认证协议的那些事

项目开发:网关(Gateway)与反向代理(ReverseProxy)的那些事

Nginx 容器动态流量管理方案:Upsync

一种更为优雅的 Nginx 代理动态切换方案

Confd 使用 && 源码分析

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

2020

Kubernetes 应用改造(七):存储那些事

Kubernetes 中的存储方案

HTTP(s) 代理中间件库:Oxy

分析基于 Golang 的 HTTP(s) 代理中间件库 Oxy:Part One

Kubernetes 零信任实战:Teleport

如何实现对 kubectl exec 的劫持?

使用 Golang 实现 SSH 和 SSHD(二)

golang-ssh 库使用(实战篇)

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

Consul 的细节梳理

Kubernetes 应用改造(六):使用原生 API 实现 gRPC 负载均衡

基于 kubernetes-API 实现 gRPC-LB:kuberesolver

Kubernetes 应用改造(五):使用 NFS + Statefulsets 搭建 Etcd 集群

Statefulsets 应用 && PV/PVC 介绍

Gin 开发实践:如何实现限流中间件

在 Golang-Gin 框架中集成 Ratelimiter 限流中间件

Kratos 源码分析:Tracing (一)

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

Kratos 源码分析:Tracing (二)

分析 Kratos 的 opentracing 实现:应用

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

分析 Fasthttp 的 goroutine pool

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

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

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

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

基于 Golang 实现的负载均衡网关:gobetween 分析(二)

Metrics 采集技巧

gRPC 应用篇之客户端 Connection Pool(未完成)

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

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

分析 CGI 框架 blademaster:路由

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

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

基于 Golang 实现的延迟队列的设计与分析(二)

分析美图开源的延迟队列 lmstfy:数据结构与实现

基于 Golang 实现的延迟队列的设计与分析(一)

分析美图开源的延迟队列 lmstfy:架构与设计思路

Golang 标准库:net/http(未完成)

net/http 源码分析

基于 Golang 实现的负载均衡网关:gobetween 分析(一)

分析一款 Golang 实现的四层代理 CLB:主要逻辑

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

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

分布式限流:基于 Redis 实现

基于 Redis 实现的分布式限流方案总结

Golang Web/RPC 框架中的设计模式

装饰器模式及 Pipeline 模式回顾

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

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

Golang TCP 并发服务器框架:Zinx

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

Go-redis with Metrics:关键指标采集

魔改 go-redis 实现 Metrcis + Prometheus 关键指标上报

GoIM 源码分析:Comet(一)

分析基于 GoIM 对外服务模块 Comet

开源限流组件分析(一):Uber 的 Leaky Bucket

分析 Uber 的基于 Leaky Bucket 的限流器

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

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

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

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

Kratos 源码分析:Errgroup 机制

分析原生的 errgroup 即 Kratos 的 errgroup

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

分析 Warden 的 Client 端封装

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

分析 Warden 的 Server 端封装

记一次现网内存泄漏的 Case 处理及解决

如何使用 Golang 的 Pprof 工具进行内存分析以及 sync.Pool 优化

GoIM 源码分析:总览

分析基于 golang 的高并发的聊天服务器实现

Kratos 源码分析:Hbase 库封装

分析 Kratos 的 Hbase Client:How to Hook?

Prometheus 应用接入:使用 Prometheus 开发 Exporter

如何在项目中使用 Prometheus 及 Exporter 开发基础

Kratos 源码分析:限流器 Limiter

分析 Kratos 的 BBR 限流器实现

Kratos 源码分析:熔断器 Breaker

分析 Kratos 的熔断器实现

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

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

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

分析 Kratos 的数据库 MYSQL-API

Kratos 源码分析:Ecode 错误代码

分析 Kratos 的 Error-code

golang-LRU 缓存设计与实现

分析 一款高性能的本地缓存开源组件 CCache

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

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

Fasthttp 高性能 HttpServer 最佳实践之二:bytebufferpool

分析 Fasthttp 的 byte 对象池实现

GoWorker 高性能队列分析

分析一款基于 Golang 后台队列任务执行框架

关于 Kafka 应用开发知识点的整理

在项目中使用 Python 的 kafka 进行开发

Xorm 使用总结(Mysql)

Xorm-Mysql 用法及避坑总结

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

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

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

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

Kratos 源码分析:Warden 中的 gRPC validator

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

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

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

Kratos 源码分析:Lazy Load Container

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

基于 Golang 实现的定时器分析与实现(未完成)

Timer and Ticker: events in the future

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

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

Kubernetes 应用改造(三):负载均衡

Kubernetes 中的负载均衡总结

分布式锁:使用 Redis 实现

Redis 应用开发:分布式锁构建 && Redlock 实现分析

Etcd 开发中的细节梳理(总结)

如何更优雅的使用 Etcd 实现工作项目

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

Kratos 框架分析

理解 Kratos 的数据统计类型 Metrics(三)-- 计划中

Metrics 的实战应用

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

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

Google SRE 弹性熔断算法实现分析

Google-SRE-Experience:Handling Overload

gRPC 应用之 Prometheus 监控接入

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

Kratos 源码分析:计划

分析微服务开发框架 Kratos

微服务项目阶段小结(2020-05-01)

Kratos 源码分析:CPU 指标采集

了解 gopsutil 常用方法应用及 Linux 系统服务常用采集指标

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

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

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

理解 Prometheus 的基本数据类型

Prometheus 介绍及基础应用

微服务基础之多级服务缓存(Cache)

Golang 并发模型:Pipelines and cancellation

Channel 的经典应用

OpenSSH Certificate 证书最佳实践

How Do We USE OpenSSH Certificate Properly?

Kubernetes Certificate 使用 && 总结

How to manipulate kubernetes's certificates?

Golang 并发模型:Pipelines and cancellation

Channel 的经典应用

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

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

JuJu-Ratelimit 限速算法实现分析

分析一款基于令牌桶实现的限速算法

微服务基础之限流(RateLimit)

限流的基础概念

理解 Hystrix-go 中的 RollingCount 实现

微服务基础之熔断保护(Breaker)

一个 Http(s) 网关的实现分析

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

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

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

Fasthttp 高性能 HttpServer 最佳实践

Fasthttp 分析

Golang 中网络编程开源项目汇总

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

Golang 高性能 LocalCache:BigCache 设计与分析

如何在 Golang 构建一个高性能的本地缓存

Go-Micro 微服务框架使用入门

Go-Mirco 框架之基础

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

使用 gRPC 日志拦截器记录

Uber-Automaxprocs 分析

Docker 中的 CPU 调度总结

GOMAXPROCS 的坑

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

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

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

使用 Golang 开发 generator(生成器)

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

微服务基础之链路追踪(OpenTracing)

Opentracing 的基础理论介绍

Cache 使用与优化

如何设计高效且合理的缓存使用策略

Go-Redis 连接池(Pool)源码分析

gRPC 中的 Metadata

gRPC 应用篇之自带组件

微服务基础(索引)

我的微服务入门之路

Redis 应用梳理篇(一)

如何在实战项目中灵活使用 Redis 及排坑

Golang 的 Channel(应用篇)

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

玩转正则表达式(进阶篇)

贪婪 or 非贪婪,Python 版本

Raft 协议分析与实战(理论篇)

Raft:一种更容易理解的共识算法

Golang Slice 那些事

Slice 最佳实践

Perl 单行特技(One-Line)

神奇的胶水语言 Perl 文本处理

Hashcorp Vault 使用

更安全的 Secret 存储系统:vault

gRPC 源码分析之 Picker 篇

gRPC 客户端选择器实现分析

gRPC 应用篇之 Resolver 接口封装

如何封装 gRPC 的 Resolver(Kratos)

神奇的 Golang-IO 包

2019

Nginx负载均衡及算法分析

Kubernetes 应用改造(二):健康检查

健康检查与探针的日常应用和封装

Golang 中有趣的后台项目汇总

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

gRPC 源码分析之官方 Picker 实现

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

gRPC 源码分析之 Balancer 篇

gRPC 客户端平衡器分析

gRPC 之 Interceptor 实战篇

如何优雅的使用 gRPC 拦截器

gRPC 源码分析之 DnsResolver 篇

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

gRPC 源码分析之 Resolver 篇

gRPC 客户端解析器实现分析

后台开发积累(2019 年)

感觉只是做了一点微小的工作

一个安全的 Web-Console 的实现思路

使用 xterm.js+Go-Gin 实现 Web-Console 的 SSH 登录

Etcd 应用开发之分布式锁

Etcd 应用开发(续)

Etcd 最佳实(踩)践(坑)

Etcd 日常踩坑集锦

使用 Golang 实现 SSH 和 SSHD

golang-ssh 库使用(入门篇)

Kubernetes 应用改造(一):Headless Service

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

Python 性能优化

使用 heapy 统计堆上的对象(内存)

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

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

证书(Certificate)的那些事

项目开发中证书的使用梳理

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

gRPC 负载均衡架构分析

给 Jekyll 增加 Latex 公式渲染