goX

command module
v0.0.0-...-074040a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

README

goX

Write some ADVANCED code implementations in Go ...... to deepen understanding and usage of Golang

Update-Timeline

1. LRU With Young-Old Region

代码于 goX/lrux

在 Innodb 中采用了区分 Young 和 Old(Non-Young) 区的 LRU 优化方案,本实践简单实现了双区域的划分。

2. Web Framework Based On net/http

代码于 goX/bttp

参考了 gin 的功能设计,以及 Gee 这篇文章提供的代码和思路演进。

TODO-LIST

  • 支持路由注册、HandlerFunc 绑定
  • 基础前缀树路由
  • 支持动态路由
  • 支持路由组
  • 支持 Middleware 设计
3. HashMap Based On Consistent Hash

代码于 goX/cachex/consistent_hash

实现了基础的一致性哈希功能。

TODO-LIST

  • 支持指定节点的虚拟节点数量
  • 支持用户自定义哈希函数
  • 支持 kv 过期
  • 支持 下线节点/上线节点 时触发数据自动迁移
4. RPC Framework Designed Like net/rpc

代码于 goX/brpc

代码和架构风格参考 net/rpc 库源码与 GeeRPC,重写实现了若干增强方法。 当前实现存在 bug,未对代码进行完善,等日后填坑。。。

TODO-LIST

  • 多应用层编解码协议协商
  • 客户端/服务端支持并发、异步调用
  • 加入客户端/服务端的超时控制机制
  • 客户端自动 failover
  • 对接注册发现中心
5. Hash Map

代码于 goX/bmap

TODO-LIST

  • 并发检测
  • 自动扩容
  • hash-slot 仿 golang 原生的 bucket 实现
  • 细粒度锁
  • 泛型支持
6. HTTP Client

代码位于 goX/bhttpclient

TODO-LIST

  • 以被调用服务为对象,同一个服务支持添加多个候选的 url
  • 支持多 url 调用之间的负载均衡
  • 支持多 url 时的固定指向型调用
  • 支持自动剔除错误率过高的某个 url,并在后台进行健康探测
  • 支持统计调用的成功次数与错误次数
  • 支持 url 多方式调用(GET/POST/...)
  • 支持 client 对象的异步调用方式

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
blf
log
cachex

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL