golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd 教程

news2024/11/15 20:36:54

3-6个月帮助学员掌握golang后端开发岗位必备技术点
教程时长: 150+小时
五大核心专栏,原理+源码+案例分析+项目实战直击工作岗位

golang:解决go语言编程问题
工程组件:解决golang工程化问题
分布式中间件:解决技术栈单一及分布式开发问题
云原生:解决云原生分布式部署及监控和运维的问题
场景化解决方案:项目实战、提供实际的分布式解决方案以及解决方案落地

一、Golang

下开发环境安装配置

  • golang 安装与配置
  • 编译与运行
  • go mod 依赖管理
  • goland 配置与 debug

golang基础

  • 语言结构与基础语法
  • 数据类型与变量
  • 变量作用域与函数.
  • 运算符与优先级
  • 流程控制语句
  • 如何使用golang标准库

golang特性

  • defer/recover异常捕获和处理
  • inter face隐式实现
  • 通过通信共享内存
  • 函数式编程与闭包
  • 文件的copy与文件的读写
  • cgo与C语言交互

并发编程

  • sync. WaitGroup等待一-组goroutine完成
  • sync. Cond根据条件等待goroutine完成
  • sync. Mutex与sync.RWMutex实现并发安全
  • sync. Map线程安全集合
  • sync. Pool实现对象的重复利用
  • sync.Once实现数据懒加载
  • atomic通过内存共享数据
  • context控制协程退出

网络编程

  • TCP编程
  • UDP编程
  • UDP可靠传输协议QUIC
  • Http编程
  • WebSocket编程

单元测试与性能分析

  • 功能测试
  • 基准测试
  • 模糊测试
  • http测试
  • pprof性能分析

常见数据结构

  • 切片(可变数组)
  • 集合(字典)
  • 链表
  • 队列

常见算法

  • 冒泡排序
  • 选择排序
  • 插入排序
  • 快速排序
  • 哈希查找
  • 二叉查找树

设计模式

  • 单例模式
  • 工厂模式
  • 策略模式
  • 观察者模式
  • 适配器模式
  • 代理模式
  • 责任链模式

二、工程组件

微服务工具集go-kit

  • 三层结构与中间件编程
  • 限流与熔断
  • 请求链路追踪
  • 服务发现和负载均衡
  • api网关
  • prometheus监控指标

高性能RPC框架gRPC

  • 使用 protobuf 定义服务
  • 一元请求与流式请求
  • header与trailer元数据传输
  • TLS与双向TLS确保通讯安全
  • OAuth2 认证与拦截器
  • Keepalive 连接保活配置
  • Resolver 服务名称解析器
  • 多路复用与健康检查
  • Retry 与 LoadBalance
  • Client 连接池的实现

高性能web框架gin .

  • RESTful API 与 API 版本控制
  • Controller 模型绑定与参数验证
  • 中间件编程及 jwt 身份认证
  • Protobuf 消息传输

高性能消息传输协议protobuf

  • 类型的导入与消息格式的定义
  • protoc编译器与API读写消息

Api文档管理go-swagger

  • RESTful API设计 规范
  • swag与gin集成
  • swag与net/http集成

对象关系映射gorm

  • Model 的定义与tag的使用
  • 基于 orm 的 CRUD 与原生 SQL
  • 嵌套事务、SavePoint/RolIbackTo 事务
  • Hook 与 Session

轻量级认证机制jwt

  • jwt认证机制原理
  • HS、RS、ES、ED签名密钥生成
  • HS、RS、ES、ED签名与验证

字段验证器validator

  • 标签符号及单字段验证
  • struct绑定与多层级验证
  • 自定义字段、结构体补充及自定义验证
  • struct与map基于map规则验证
  • 根据locale本地化提示消息

结构化日志记录logrus .

  • 以 std、file、fileRotate 三种方式输出日志
  • 通过 Hooks 向多个位置发送日志

网关grpc-gateway

  • option 方式实现 gRPC 接口映射
  • 配置文件的方式实现 gRPC 接口映射
  • 实现以 HttpBody 响应请求
  • 将文件通过网关上传的 gRPC 服务端
  • swagger 接口文档输出
  • 自定义网关实现

命令行框架cobra

  • command及多级command
  • flags定义、配置绑定及flags检查
  • args内置验证器与自定义验证
  • Hook及Hook的继承

配置解决方案viper

  • 读取本地配置文件
  • 读取远程ETCD配置中心配置文件

轻量级访问控制框架casbin

  • 基于ACL访问控制模块流量过滤
  • 基于RBAC模型的访问控制
  • 基于ABAC模型的访问控制

分布式链路追踪0penTelemetry

  • jaeger 与 zipkin 集成
  • oteI-collector 集成
  • prometheus 集成
  • 收集器数据采集

三、分布式中间件

redis

  • redis 整体结构、存储结构
  • string 命令及内部存储原理
  • string 对象存储应用
  • string 累加器应用
  • string分布式锁
  • string 位运算应用
  • list 命令及内部存储原理
  • list 栈应用
  • list 队列、异步队列、阻塞队列
  • list 固定窗口记录
  • hash 命令及内部存储原理
  • hash对象存储应用
  • set 命令及内部存储原理
  • set 唯一无序应用
  • set 关系应用
  • zset 命令及内部存储原理.
  • zset 排行榜
  • zset 延迟队列
  • zset 时间窗口限流
  • redigo 操作
  • redigo 管道和事务
  • redigo 订阅发布、stream

mysql

  • OLTP、OLAP、体系结构
  • mysql 网络模块:连接池与事务
  • 表创建删除、数据表操作(CRUD)
  • 聚合查询、分组查询、联表查询
  • 主键索引、唯一索引
  • 普通索引、组合索引
  • 索引与约束
  • 索引实现-存储结构以及B+树
  • 最左匹配原则以及覆盖索引
  • 索引失效、索引优化、SQL优化
  • explain 分析以及慢日志查询
  • 事务控制语句
  • 事务的acid特性
  • 事务的隔离级别
  • 加锁流程、释放锁流程
  • mvcc 原理,当 前读以及快照读
  • 读异常、死锁原理以及案例分析

mongodb

  • mongodb bson 解析
  • mongodb crud 操作
  • mongodb 复合索引查询、聚合查询
  • mongodb 文档管理
  • mongodb go driver 操作
  • mongodb 连接池实现

etcd

  • etcd v2与v3比较
  • etcd 体系结构
  • etcd 数据版本号机制
  • etcd CURD
  • etcd 监听、事务、租约
  • etcd 索引以及B+树
  • etcd 读写机制以及事务 ACID 特性分析
  • Raft 共识算法与leader选举和日志复制
  • Raft 运行机理详解
  • etcd go 驱动包操作
  • etcd服务发现
  • etcd leader 选 举
  • etcd 分布式锁

kafka

  • kafka 体系结构以及读写机制
  • kafka 异步处理
  • kafka 系统解耦
  • kafka 流量削峰
  • kafka 日志处理
  • kafka 驱动包生产者消息生产策略
  • kafka 驱动包生产者 ack 策略
  • kafka 驱动包消费者组 rebalance 机制

ElasticSearch

  • 倒排索引、lucene
  • es-head和k ibana
  • es 集群健康值检查
  • es 索引操作以及文档操作
  • es 读写机制
  • es 匹配查询、范围查询、多条件查询
  • es 中文分词、聚合查询
  • es go 驱动包操作、索引以及文档操作
  • es 高级查询: term、match、aggregation

四、云原生

git

  • git 的工作流程
  • 代码管理
  • 分支管理
  • 代码共享与项目更新
  • 代码检查与对比

gitlab

  • 基于 Docker 安装 gitlab runner
  • gitlab CI/CD 标准流程
  • 基于 gitlab 的代码评审
  • 变量和安全文件
  • CI/CD 配置文件详解
  • 基于 docker out docker 构建 docker 镜像
  • 基于 k8s 安装 gitlab runner
  • 基于 k8s kaniko 构建 docker 镜像

Docker基础

  • Docker 安装配置
  • RootFs 环境依赖
  • Linux Namespace 隔离
  • Cgroup 资源配额限制

Docker容器

  • Docker 命令行操作
  • 自定义容器启动命令或入口程序
  • 容器heaIth check
  • 容器重启策略
  • 容器资源配额
  • 容器命名空间隔离
  • Volume 数据存储持久化与数据共享
  • bridge、host、overlay 网络驱动

Docker镜像

  • 镜像分层机制
  • 容器写时复制机制
  • 容器联合挂载机制
  • 镜像内容寻址机制
  • 镜像构建
  • 镜像共享
  • 私有注册中心构建

Docker项目部署

  • Docker Compose 项目部署
  • Swarm 集群高可用
  • 基于 Swarm 集群的分布式部署
  • 基于 Swarm 集群的灰度发布
  • Swarm 集群 deploy stack

Kubernetes基础

  • kubeadm 集群安装和升级
  • flannel 网络插件的安装
  • CRI 与 cri-dockerd
  • api server 组件
  • controller manager 组件
  • Scheduler 组件
  • kubelet 组件
  • proxy 组件
  • kubectI 命令行操作
  • metrics server 监控 node 和 pod

Kubernetes Pod

  • pod 的定义与基本用法
  • pod 生命周期与重启策略
  • 容器镜像拉取策略
  • init Container
  • 容器资源配额
  • 容器声明周期处理函数
  • 容器健康检查与服务可用性

Kubernetes Pod 无状态部署

  • 静态 pod
  • Dep|oyment 部署
  • Dep|oyment 升级和回滚
  • Deployment 暂停与恢复
  • Deployment 手动与自动伸缩
  • DaemonSet 部署
  • Job 批处理
  • Crontab 定时任务

Kubernetes Pod调度

  • NodeSelector 定向调度
  • Node 亲和性调度 NodeAffinity
  • Pod 亲和度与互斥调度 PodAffinity
  • pod Taints 和 Tolerations
  • pod Priority 优先级调度

Kubernetes Service

  • service 的定义与基本用法
  • service 4种发布类型
  • service 无选择符 service
  • service HeadLess Service
  • service 环境变量与DNS服务发现
  • service TLS
  • ingress http 7层路由机制
  • ingress Controller 安装
  • ingress 转发策略配置
  • ingress TLS 配置

Kube rnetes Vol ume

  • Volume 与 configMap
  • Volume 与 secret
  • Volume 与 PersistentVolume
  • 部署 cephfs 分布式存储文件系统
  • PersistentVolume 静态制备
  • Stor ageClass 动态制备
  • PersistentVoIumeClaim 磁盘申领

Kubernetes Pod 有状态部署

  • StatefulSet 部署 MongoDB 集群
  • StatefulSet 部署 Redis 集群
  • StatefulSet 部署 ES 集群
  • StatefulSet 部署 ETCD 集群
  • StatefulSet 部署 Kafka 集群
  • StatefulSet 部署 Mysql 集群

Kubernetes 集群管理

  • Node 的隔离与恢复
  • Node 的扩容
  • Namespace 与 Context 集群环境共享与隔离
  • 基于节点资源的 pod 驱逐机制

Kubernetes 集群安全

  • ABAC 授权模式
  • Webhook 授权模式
  • RBAC 授权模式
  • Pod 的安全策略配置

Kubernetes 二开

  • 通过 client-go 管理集群资源
  • 通过聚合 apiserver 扩展 k8s 功能
  • 通过自定义 k8s 资源扩展 k8s功能

Kubernetes 声明式资源管理 Kustomize

  • 生成资源
  • 设置贯穿性字段
  • 组织和制定资源
  • 资源的基准与覆盖
  • 使用 kustomize 操作资源

持续交付 Argo

  • Argo安装配置
  • Argo CD 持续交付
  • Argo Canary 和 BlueGreen 部署

监控解决方案 Prometheus

  • 记录规则配置
  • 报警规则配置
  • PromQL 查询语句
  • influxdb 远程数据中心配置
  • 报警信息配置管理
  • 自定义应用程序指标

服务网格 istio

  • 在 Kubernetes 上部署 istio
  • istio 流量管理实践
  • istio 安全配置实践
  • 使用 Prometheus 进行生产规模的监控

五、场景化解决方案

ChatGPT 企业级项目实战-环境准备

  • ChatGPT 企业级项目实战特别说明
  • 功能需求与项目设计思路
  • 项目部署环境准备
  • Linux 下编译并运行开源项目
  • Windows 下编译并运行开源项目

ChatGPT 企业级项目实战-tokenizer 计数服务

  • 为什么选择 Docker
  • Docker 镜像原理以及镜像构建流程
  • 容器的 NameSpace 隔离与 Cgroup 控制组
  • Docker 运行 token 计数容器

ChatGPT 企业级项目实战-GPT Proxy 境外代理

  • 项目部署架构调整及细化
  • Golang 反向代理与 ChatGPT API
  • gin 框架中间件编程与鉴权
  • logrus 与 lumber jack 日志滚动记录
  • ChatGPT API 参数释义与使用
  • testing 测试框架之功能测试
  • testing 测试框架之性能测试与并发测试
  • pprof 性能分析与服务限流
  • docker 镜像多阶段构建与 Docker Service 的部署策略

ChatGPT 企业级项目实战-ChatGPT Data 数据服务

  • 数据库的选择以及数据设计
  • gRPC 环境的安装与使用流程
  • protobuf 协议以及服务的定义
  • gRPC 服务端的实现以及依赖注入
  • gRPC Server 端单元测试
  • Keepalive 服务端保活策略与客户端强制策略
  • gRPC 微服务通讯安全策略
  • gRPC 健康检查与单 tcp 连接多路复用

ChatGPT 企业级项目实战-敏感问题识别服务

  • 二叉搜索数与词库重排
  • 敏感词识别服务的实现
  • 敏感词识别服务的打包与部署

ChatGPT 企业级项目实战-关键词提取服务

  • 关键词提取服务的具体实现
  • 关键词提取服务打包与部署

ChatGPT 企业级项目实战-ChatGPT 业务服务

  • gRPC 微服务项目脚手架搭建,
  • 服务设计思路与响应数据协议解析
  • 服务端基本请求流程的实现
  • Redis 连接池与 ChatGPT 上下文管理
  • ChatGPT 携带上下文发送请求
  • gRPC 客户端连接池与 gRPC 服务的接入
  • Docker Service 服务部署

ChatGPT 企业级项目实战-Web 端协议解析

  • ChatGPT Web 端协议解析
  • ChatGPT Web 端的参数化构建与部署

ChatGPT 企业级项目实战-QQ 端协议解析

  • OneBot 聊天机器人应用接口标准.
  • OneBot 实现的正向 Websocket
  • OneBot 实现的反向 WebSocket
  • QQ 端消息类型处理与服务部署

ChatGPT 企业级项目实战-Crontab 定时任务服务

  • docker 注册中心与微服务的部署
  • 公众号、企微开发流程与 Crontab 定时任务
  • Crontab 定时获取微信接口调用凭据
  • Crontab 服务的具体实现

ChatGPT 企业级项目实战-微信公众号协议解析

  • 公众号消息回调接口配置
  • 公众号被动回复与客服消息发送
  • Crontab 服务与 ChatGPT 业务服务的接入

ChatGPT 企业级项目实战-企业微信协议解析

  • 企业微信微信客服开发流程与配置
  • ChatGPT 的接入与消息的加解密

ChatGPT 企业级项目实战一个人微信接入

  • 个人微信群聊与私聊的接入
  • 个人微信 ChatGPT 的接入

ChatGPT 企业级项目实战一项目运营问题的解决

  • 一个更显专业的 Web 前端
  • ChatGPT 每分钟限流问题如何解决

ChatGPT企业级项目实战-微服务的运维

  • Docker Swarm 集群管理和节点管理
  • Docker Swarm 集群如何接入私有注册中心
  • Compose file 与 Docker Stack 部署
  • Docker Stack 部署服务到云服务器
  • Nginx 反向代理 WebSocket 与服务端流程
  • gitlab 与gitlab runner 环境的安装与升级
  • gitlab CI/CD ChatGPT 项 目
  • Web 前后端分离与 gitlab CI/CD

基于 gin 框架的 web 开发脚手架

  • 中间件统一实现 Oauth2 身份验证
  • 路由分组实现 api 版本控制
  • jwt 实现客户端令牌
  • logurs 日志组件封装
  • 分布式日志链路追踪设计
  • EFK 统一日志采集
  • viper 配置文件读取
  • etcd 应用配置中心
  • redis 数据缓存
  • mysq| 数据存储

基于 grpc 的微服务开发脚手架

  • 服务与服务之间采用 TLS 加密通信
  • etcd 服务注册和服务发现
  • etcd 应用配置中心
  • EFK 统一日志采集
  • viper 配置文件读取
  • logurs 日志组件封装
  • 分布式日志链路追踪设计
  • redis 数据缓存
  • mysql 数据存储

golang零基础/云原生/Docker/DevOps/K8S/持续集成/分布式/etcd/ipfs 教程

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084621.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电商(淘宝京东1688)API接口和ERP选品之间存在一定的关系

API接口是一种用于在应用程序之间进行数据交互和通信的标准化协议,而ERP(企业资源计划)系统是一种综合性的管理软件,可以帮助企业进行采购、销售、库存等业务流程的自动化管理。 在ERP选品方面,API接口可以用于从外部…

【实用小工具】一键分离音频中的纯人声~

音分轨——能够一键分离出音频中的【人声】和【音乐】,并单独输出为新的音频文件。可以用来扒谱、提取人声、消除背景音等。 第一步:打开【音分轨】APP,进入首页点击【人声分离】 第二步:选择导入方式,上传需要提取伴…

yolov5中的位置损失到底有哪些?

目录 1.IOU loss 2.GIOU 3.DIOU和CIOU 5.SIOU 6.EIOU 7.WIOU 8.MPDIOU 别人问目标检测有几个损失函数? 我答:三个。 别人笑了笑。 我问:难道我说记错了? 别人说:是的,你记错了。 我说&#xff…

Python学习 — 免费使用,无须激活,下载安装即可免费使用Pycharm教程

学生如何通过自己的学校邮箱账号来免费使用专业版Pycharm,无需激活下载与安装、配置Python解释器教程。 前言: Pycharm官网版本是有两个版本的, 第一个版本是Professional(专业版本),这个版本功能更加强大,主要是为Python和web开…

[vxe-table] 合并行后滚动错位

使用vxe-table的属性:span-method合并行,之后下拉后会错位 原因:缺少配置 scroll-y"{enabled: false}"参考: vxe-table合并行后错位

Maven如何将JAR包上传至本地仓库及私服

前言 为什么需要上传jar包至maven仓库? maven官方仓库有些依赖并不存在,现在项目都是maven直接获取jar,当maven获取不到时,或者需要引入外部jar包依赖时,就需要我们把jar上传至maven仓库。 示例:demo.jar…

好用的思维导图软件Xmind Pro 中文专业安装

XMind是一款非常实用的商业思维导图软件,应用领域广泛,为帮助用户提高工作效率而生。它融合了全球先进的管理理念和一线设计思想,具有强大的功能和优雅的界面,用户可以根据自己的需求自由定制。 好用的思维导图软件Xmind Pro 中文…

【AN基础工具—动画人物绘制】

【AN基础工具——动画人物绘制】 基本操作绘制直线选择工具基本图形钢笔工具 实战 本篇内容:动画人物绘制基础 重点内容:选择工具,线条,钢笔工具 工 具:Adobe Animate 2022 基本操作 绘制直线 选择《直线工具&#x…

2023-10-09 LeetCode每日一题(最小和分割)

2023-10-09每日一题 一、题目编号 2578. 最小和分割二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排…

即时编译jit和xbyak的基本使用介绍

一般来说,解释型编程语言都是依靠自身运行的虚拟机,在解释程序。有时候语言为了提高运行速度,不会去直接解释程序文本,而是模拟cpu执行方式,将文本代码执行一次翻译,翻译为类似cpu执行的汇编语言去执行。有…

树 | 选择题

1. 若X是二叉树中序线索树中一个有左孩子的结点,且X不为根,则X的前驱为 X的双亲 X的右子树中最左的结点 X的左子树中最右结点(正确答案) X的左子树中最右叶结点(可能没有) 这里不是前驱结点&#xff0…

IDEA的使用(四)创建不同类型的工程(IntelliJ IDEA 2022.1.3版本)

1. 创建Java工程 创建之后,src下是空的。可以在src下创建软件包Package,命名采用域名倒序。在软件包下再创建Java类。Java类运行后出现中文乱码,就到控制台和文件编码这两个地方设置编码。 2. 创建JavaWeb工程 2.1 在win11和IDEA中配置Tomca…

Linux高性能服务器编程 学习笔记 第十三章 多进程编程

我们将讨论Linux多进程编程的以下内容: 1.复制进程映像的fork系统调用和替换进程映像的exec系列系统调用。 2.僵尸进程以及如何避免僵尸进程。 3.进程间通信(Inter Process Communication,IPC)最简单的方式:管道。 …

使用EasyDarwin+ffmpeg+EasyPlayerPro完成rtsp的推流操作和拉流操作

本文分享在做视频类测试过程中所用到的工具EasyDarwinffmpegEasyPlayerPro 首先说一下EasyDarwin,简单来讲,它就是个推流和拉流及系统消耗的监测软件,具体使用方法我会写在下方。 EasyDarwin 1、解压下载好的EasyDarwin压缩包,并找到EasyD…

el-upload手动上传图片,上传后隐藏上传样式(el-upload上传单张图片,vue2)

简介:上期介绍了使用el-upload上传文件,这次来介绍一下如何使用el-upload上传图片,只能上传一次,上传图片后隐藏上传按钮部分。 实现效果图: 1、首先,想要在项目中使用el-upload组件,同样&#…

ios app开发环境搭建

Xcode是Apple iOS的应用市场app store移动应用的开发工具,支持不同设备、不同应用场景的开发,本文主要描述xcode开发工具开发环境的搭建。 如上所示,在macos中,使用app store安装xcode开发工具 如上所示,在macos中&…

陪诊系统|陪诊助浴系统|养老护理系统开发功能

助浴陪诊小程序是一款为老年人提供贴心服务的手机应用,旨在帮助老年人在家中就能享受到专业的助浴和陪诊服务。该程序通过简单易用的界面和人性化的设计,为老年人提供全面的护理服务。 1、用户注册登录 为了提供更好的服务,用户需要注册并登…

线性系统时域分析

1、稳定性分析 2、动态品质的求取 3、稳定误差计算 典型输入信号: 1、抛物线函数(等加速度阶跃函数) 2、单位阶跃函数 3.斜坡函数 A1,是单位阶跃函数1(t) 4.脉冲函数 A0 记为 动态过程和稳态过程 超调量:(系统最大值-系统稳态值&…

基于Qt C++的工具箱项目源码,含命令行工具、桌面宠物、文献翻译、文件处理工具、医学图像浏览器、插件市场、设置扩展等工具

一、介绍 1. 基本信息 完整代码下载地址:基于Qt C的工具箱项目源码 TBox是一款基于Qt C的工具箱。用户可以自行选择安装所需的工具(以插件的形式),将TBox打造成专属于自己的效率软件。TBox基本界面展示如下: 2. 使用…

视频转二维码简单技巧,适用多种视频格式

现在很多商品介绍多是以视频的方式来展现,那么为了方便用户能够同时快速获取视频内容,所以很多的商家现在会将视频生成二维码放到宣传单、展板、海报等宣传内容上,让他人通过扫码获取信息。那么视频二维码生成器的使用方法有哪几个步骤呢&…