Golang
数据类型
slice
map
struct
channel
interface
内存分配
调度器
goroutine
G-P-M 模型
垃圾回收
并发模型
单元测试
调试进阶
设计规范
开源库
go-zero
go-zero
一款企业框架,我们可以从中学习到值得借鉴的的设计;它集成了web
和rpc
框架,是在20
年由好未来开源的一款微服务框架,由于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
Tidb
是NewSQL
行业中的代表性产品,由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
Prometheus
是Cloud 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,同一索引中的不同文档可以有不同的字段