下面我们简单介绍中间件和云原生:
中间件
MySQL
、
Redis
、
MongoDB
、
Kafka
这些常见的中间件,这里我们不做赘述。我们着重简述下
Gin、etcd
、
ElasticSearch
、
gRPC
。
Gin
Gin
是一个用
Go (Golang)
编写的
HTTP web
框架。它具有一个类似
martinii
的
API
,性能要好得多
——
快了
40
倍。
官方
Github
项目:
https://github.com/gin-gonic/gin
etcd
Etcd
是一种强一致性的分布式键值存储,它提供了一种可靠的方法来存储需要被分布式系统或机器
集群访问的数据。它可以在网络分区期间优雅地处理
leader
选举,并且可以容忍机器故障,即使是
leader
节点。
官网:
https://etcd.io/
ElasticSearch
Elasticsearch
是一个分布式、
RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为
Elastic Stack
的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情
况。
官网:
https://www.elastic.co/cn/elasticsearch/
gRPC
gRPC是一个现代的开源高性能远程过程调用(Remote Procedure Call, RPC)框架,可以在任何环境 中运行。通过对负载平衡、跟踪、运行状况检查和身份验证的可插拔支持,它可以有效地连接数据 中心内和跨数据中心的服务。它也适用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到后端服务。
官网:
https://grpc.io/
云原生
微服务
微服务是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模块化的
方式组合出复杂的大型应用程序,各功能区块使用与语言无关的
API
集相互通信。
DevOps
DevOps
是一种重视
“
软件开发人员
”
和
“IT
运维技术人员
”
之间沟通合作的文化、运动或惯例。透过自
动化
“
软件交付
”
和
“
架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
持续部署
持续部署,是一种软件工程方法,意指在软件开发流程中,以自动化方式,频繁而且持续性的,将
软件部署到生产环境中,使软件产品能够快速的发展。 持续部署可以整合到持续整合与持续交付
(
Continuous delivery
)的流程之中。
容器化
容器化是软件开发的一种方法,通过该方法可将应用程序或服务、其依赖项及其配置(抽象化为部
署清单文件)一起打包为容器映像。 容器化应用程序可以作为一个单元进行测试,并可以作为容器映像实例部署到主机操作系统
(OS)
。
如何高效地学习Go?
想要高效地的学习
Golang,单单知道学习哪几个板块,是远远不够的。我们还需要将每个板块的知识点进一步细化。
——
成功与失败之间,最重要的是不容忽视的细节
那么开始进一步完善之前的知识点:
语法
语法基础
错误处理包定义以及导入结构体反射原理值传递、引用传递、 defer 函数
并发编程
goroutine锁通道 channelruntime 包Context 使用原则
网络编程
tcp/udp 编程http 实现websocket
源码掌握
GC 机制调度器定时器map 与切片
第三方测试框架
goconveygostubgomockmonkey
中间件
MySQL
golang 的 CRUDjmorion/sqlx 包连接池异步 mysql
Gin
RESTful APIURL 查询参数query 接收数组和 Map表单参数上传文件分组路由 routel 以及中间件授权json 、 struct 、 xml 、 yaml 、 protobuf 渲染
Redis
go-redisget/set/zset 操作连接池分布式锁
MongoDB
MongoDB-driverBSON 解析CRUD 操作文档管理连接池
Kafka
saram 包同步、异步zstd 压缩算法横向扩展go 实现生产消费者topic 和 partition消息分发策略分区副本机制
etcd
原理分布式锁etcd 操作服务发现于注册
ElasticSearch
es 服务器go- elasticsearch 包node 于 clusterIndex 于 Document检测与配置
gRPC
protoc-gen-go 开发包.proto 文件 gRPC Service Stubrpc 接口设计通信模式拦截器多路复用负载均衡安全认证
后端开发
游戏后端
leaf 框架网关、协议、日志、网络模块
流媒体
Web
后端
Restful 接口设计scheduler 设计apidefs 结构体mysql 建库建表
小程序后端
公众号开发流程微信消息接收与解析公众号验证 URL+Token内网环境接口测试后端程序测试脚本
goadmin
后台权限管理系统
RESTful API 设计Gin 框架JWT 认证支持 Swagger 文档GORM 对象关系映射基于 Casbin 的 RBAC 访问控制模型
goim
千万级高并发推送服务
单个、多个、广播消息推送应用心跳、 tcp 、 keepalive 、 http log pulling异步消息推送接入层多协议可拓扑架构注册发现服务消息协议( protobuf )goim 推送grpc 编程
腾讯云大数据
TBDS云数据仓库 PostgreSQL弹性 MapReduceWeData 数据开发平台
云原生
微服务
go-micro 原理rpc服务间同步json/protobuf
DevOps
项目管理 CODING-PM测试管理 CODING-TM制品库 CODING-AR代码托管 CODING-CR
持续部署
spinnakewebhook 外部对接蓝绿分布 / 金丝雀发布SCF 云函数快速回滚
容器化
Docker 化部署k8s 集群CVM 云服务器TKE 容器服务