Golang 中有趣的后台项目汇总

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

Posted by pandaychen on December 7, 2019

SSH 相关

  • sshesame,官方介绍:A fake SSH server that lets everyone in and logs their activity,可以用于实现 ssh 蜜罐
  • cashier,A self-service CA for OpenSSH
  • Step Certificates,A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.

中间件

  • Google 为 Facebook 写的一个高性能 mysql 框架 vitess,里面不少后台组件可供借鉴

  • go-redis 队列:goworker,goworker is a Go-based background worker that runs 10 to 100,000* times faster than Ruby-based workers,高性能的消息队列,官网: https://www.goworker.org
    • goworker 中,使用了 vitess 中的 pool 实现了 redis 的连接池功能,interesting,代码在此:https://github.com/benmanns/goworker/blob/master/redis.go
    • 另外,goworker 中有一个非常经典的 workpool 实现
  • gores,用 Go 语言编写的基于 Redis 的消息队列系统。核心使用 Redis 的 List 组件来模拟队列

分布式

  • raft:Hashcrop 的 raft 库实现,值得分析,后续分析下该库的实现,用以进一步全面掌握 raft 分布式协议

认证、安全

微服务框架

  • kratos,Kratos 是 bilibili 开源的一套 Go 微服务框架,包含大量微服务相关框架及工具。gRPC 的封装,很实用
  • kite,Kite is a framework for developing micro-services in Go,官方介绍:https://blog.gopheracademy.com/birthday-bash-2014/kite-microservice-library/

gRPC

  • lile,Lile is a application generator (think create-react-app, rails new or django startproject) for gRPC services in Go and a set of tools/libraries.
  • awesome-grpc,A curated list of useful resources for gRPC

gRPC 组件

网关 && HTTP && Tcp-Frame

通用

  • fish-shell,The user-friendly command line shell.
  • goproxy:适合二次开发的 gohttp 开源代理

其他

参考

  • https://www.cnblogs.com/davygeek/p/4634919.html

转载请注明出处,本文采用 CC4.0 协议授权