Go项目工程化规范 最近在codeing代码到了测试阶段,让运维和测试去部署程序的时候发现仅仅通过口口相传是不行的,就算给他讲清楚到了现场之后还是会通过电话来轰炸你;有一些开发人员是写了文档,但是文档层次结构、目录不统一,导致文档不能传达该传达的意思。 最近在浏览论坛的时候找到一片关于语言工程化设计的文章,特此摘抄下来,规范自己的文档编写。 工程化规范无规矩不成方圆,生活如此,软件开发也是如此。一个应用基本都是多人协 2022-01-15 程序开发 #Go
使用 Go 读取配置文件 使用 Go 读取配置文件使用 Golang 读取配置文件内容,需要使用 io 包读取配置文件,第三方包 gopkg.in/yaml.v2 解析 yaml 配置文件内容,然后将读取到的配置文件映射给相对应的结构体,结构体的字段设置需要和配置文件保持一致;如果存在多个层级的配置文件,比如: 12345678910111213a: b: c: xxx````那么相对应的结构体的结构就需要以 2022-01-07 程序开发 #Go
JWT 在 Go 中的实现与应用 JWT 在 Go 中的实现安装 jwt-go安装 jwt 在 go 中实现的开源库 jwt-go 1go get -u github.com/dgrijalva/jwt-go@latest 准备使用 jwt-go 库生成 token,我们需要定义需求(claims),也就是说我们需要通过 jwt 传输的数据;这里的结构体根据自己的情况来定义,这里我只定义 id 和用户名;除了自己定义的字段,还需 2022-01-05 程序开发 #Go
Go 连接 Mongo 数据库实现数据操作 在 Go 程序连接到 MongoDB 数据库可以分为以下步骤: 安装 MongoDB Go 驱动程序 使用 Go 驱动程序连接到 MongoDB 在 Go 中使用 BSON 对象 将 CRUD 操作发送到 MongoDB 安装 MongoDB Go 驱动程序在 Go 程序项目路径下的终端输入以下命令即可安装 MongoDB Go 驱动程序 123$ go get go.mongodb.org/ 2021-12-21 程序开发 #Go
Go 语言在 linux 系统的安装以及在 vscode 上的配置 Golang 下载前往 官网下载界面 下载相对应操作系统的文件,这里只演示linux版本的。下载之后执行以下命令,将该压缩包的内容解压到 /usr/local 目录中 12cd ~/下载tar -C /usr/local -xzf ${下载的go安装包名} 添加环境变量编辑 /etc/profile 文件 12export GOROOT=/usr/local/go/binex 2021-12-19 程序开发 #Go
Go 项目的官方项目结构布局 概述这是 Go 应用程序项目的基本布局。它不是核心 Go 开发团队定义的官方标准;然而,它是 Go 生态系统中一组常见的历史和新兴项目布局模式。其中一些模式比其他模式更受欢迎。它还具有许多小的增强功能,以及一些支持目录,这些目录对于任何足够大的实际应用程序都是通用的。 此项目布局是有意通用的,它不试图强加特定的 Go 包结构。 Go 目录/cmd本项目的主干。 每个应用程序的目录名应该与 2021-12-15 程序开发 #Go
Kubernetes中的的包管理器Helm 一、Helm是什么Helm 是 Kubernetes 的包管理器,是查找、分享和使用软件构建 Kubernetes 的最优方式。Helm 帮助用户管理 Kubernetes 应用——Helm 图表,即使是最复杂的 Kubernetes 应用程序,都可以方便的定义,安装和升级。 包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速 2021-12-15 Linux #运维/Kubernetes
Kubernetes 中的 PV、PVC 和 StorageClass PV、PVC 概念持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先供应,或者 使用 存储类(Storage Class) 来动态供应。 持久卷是集群资源,就像节点也是集群资源一样。PV 持久卷和普通的 Volume 一样,也是使用 卷插件来实现的,只是它们拥有独立于任何使用 PV 的 Pod 的生命周期。 此 API 对象中记述了存储的实现细节,无论其背后是 N 2021-11-22 Linux #运维/Kubernetes
Redis 的哨兵机制以及集群 哨兵机制Redis 中提供了[主从模式](/2021/10/19/Redis 的主从库模式以及主从复制/)来提高可靠性,在这个模式下,从库宕机了客户端可以继续像主库或者其他从库发送请求,进行相关的操作;但是如果是主库发生故障了,那就直接会影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。如下图所示: 无论是写服务终端,还是从库无法进 2021-11-04 程序开发 #数据库/Redis
Kubernetes 中的持久化存储 k8s 的持久化存储在 k8s 中部署的应用都是以 pod 容器的形式运行的,假如我们部署 MySQL、Redis 等数据库,需要对这些数据库产生的数据做备份。因为 Pod 是有生命周期的,如果 pod 不挂载数据卷,那 pod 被删除或重启后这些数据会随之消失,如果想要长久的保留这些数据就要用到 pod 数据持久化存储。 在 k8s 上使用存储卷,需要在对应的节点上提供对应存储系统的驱动,对应运 2021-11-02 Linux #运维/Kubernetes