Golang

数据类型

slice
map
struct
channel
interface

内存分配

调度器

goroutine
G-P-M 模型

垃圾回收

并发模型

单元测试

调试进阶

设计规范

开源库

go-zero

go-zero一款企业框架,我们可以从中学习到值得借鉴的的设计;它集成了webrpc框架,是在20年由好未来开源的一款微服务框架,由于go-zero项目还是比较大的,最好带着目的性去学习,比如我想了解微服务注册与发现的原理实现、自适应负载均衡算法原理与实现。

Go-Zero 是如何追踪请求链路

jupiter

Jupiter 是斗鱼开源的一套微服务治理框架,提供丰富的后台功能,管理应用的资源、配置,应用的性能、配置等可视化。

zinx

zinx是一个基于Go语言开发的TCP长连接服务器框架,其可以应用在游戏领域或其他长连接领域;我们可以学习zinx框架的设计思路,他有完整的视频教程和文档,通过这个我们可以完全理解如何设计一个轻量级并发服务器。

文档地址:https://www.kancloud.cn/aceld/zinx

视频地址:https://www.bilibili.com/video/av71067087

go-nsq

NSQ是一个基于Go语言的分布式实时消息平台,可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行的去中心化服务提供一个强大的基础架构。

学习地址:https://cloud.tencent.com/developer/article/1735996

Tidb

TidbNewSQL行业中的代表性产品,由PingCAP公司自主设计、研发的开源分布式关系型数据库,兼容MySQL 5.7 协议和 MySQL 生态等重要特性。目前很多公司都在使用Tidb,解决了关系型数据库、弹性扩展以及全球分布的问题。Tidb采用Go语言开发SQL层,下边的分布式存储引擎使用rust语言,使用Tidb具有以下优势:

  • 支持弹性的扩缩容;
  • 支持 SQL,兼容大多数 MySQL 的语法,在大多数场景下可以直接替换 MySQL;
  • 默认支持高可用,自动进行数据修复和故障转移;
  • 支持 ACID 事务;

文档地址:https://docs.pingcap.com/zh/tidb/stable

kubernetes

Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统;Kubernetes由于是Go语言编写,可以从源码开始学习,配合着官方文档,仔细专研一番。

官网文档:https://kubernetes.io/docs/home/

中文文档:https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/

Prometheus

PrometheusCloud Native Computing Foundation 的一个项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并可以在观察到指定条件时触发警报。

文档地址:https://prometheus.io/blog/

中文文档:https://yunlzheng.gitbook.io/prometheus-book/

Zinc

Zinc 是一个全文索引的搜索引擎。它是Elasticsearch 的轻量级替代品,可以在不到 100 MB 的RAM 中运行。它使用 bluge作为底层索引库。

而且,Zinc 使用 Vue 打造了一个比 Elasticsearch 更简单、更易于操作的界面。

Zinc 主要有如下特性:

  • 提供全文索引功能
  • 单个二进制文件即可安装、运行,支持多平台。这得益于 Go 语言
  • 用 Vue 编写的用于查询数据的 Web UI
  • 与 Elasticsearch 兼容的数据获取 API(单记录和批量 API)
  • 开箱即用的身份验证
  • Schema less - 无需预先定义 schema,同一索引中的不同文档可以有不同的字段

linux

网络知识

数据库