- 博客(22)
- 收藏
- 关注
原创 helm3使用入门
helm3使用入门概述什么是 HelmHelm 组件及相关术语安装 Helm3快速开始Chart 的使用参考概述美国时间 2019 年 11 月 13 日,Helm 团队宣布 Helm 3 第一个稳定版本发布。Helm 3 以 Helm 2 的核心功能为基础,对 Chart repo、发行版管理、安全性和 library Charts 进行了改进。相比 Helm 2,Helm 3 最明显的变化是 Tiller 的删除,它新增丰富功能,某些功能已被弃用或重构,与 Helm 2 不
2020-07-17 21:04:16 3086
原创 go1.13使用私有goproxy缓存加快依赖下载速度
go1.13的Go Modules有了重大改进,具体看看这篇 干货满满的 Go Modules 和 goproxy.cn问题:开发者在自己的电脑设置GOPROXY,Go Module的缓存保存在本地,多人开发时人人都要下载到自己本地,这样遇到网络不好的时候就很不好,另外CI/CD的时候又要重新下载,为了提高依赖的下载速度,所以要在内网搭建一个私有的goproxy,所有依赖都从这里下,不必重复去...
2019-12-18 23:04:53 1209 2
原创 YApi结合swag管理和生成go项目restful API文档
swag通常用来生成go项目的API文档,但是管理功能较弱,多个项目的文档需要做统一管理。YApi是一个强大的接口管理工具,两者结合可以让开发人员减轻维护api文档的负担
2019-11-08 21:56:46 3174
原创 nodejs项目docker自动化
前端项目一般都是类似node app.js运行起来的,也就是说它需要一个node环境来提供web服务,另一种是生成最终的静态文件,用nginx提供服务这里的思路是用golang写一个静态文件服务器,做成基础镜像,node项目生成的静态文件和它一起打包即可运行起来提供服务
2019-11-08 17:40:57 517
原创 go项目源码分析与使用--内存缓存go-cache
1.项目介绍地址: https://github.com/patrickmn/go-cache一个基于内存的key-value存储/缓存项目,类似于Memcached,并且可选择定期的垃圾回收,适合单机程序。代码量不多,也不难懂。2.关键源码cache.gopackage cacheimport ( "encoding/gob" "fmt" "io" "os" "runt...
2019-10-21 23:20:55 1697
原创 go项目源码分析与使用--协程池pool
1.项目介绍地址: https://github.com/gobwas/ws-examples/blob/master/src/gopool/pool.go只介绍一个代码文件,它简洁优雅的实现了一个goroutine的pool2.关键源码pool.go// Package gopool contains tools for goroutine reuse.// It is imple...
2019-10-20 21:32:21 568
原创 go项目源码分析与使用--定时任务robfig/cron
1.项目介绍地址: https://github.com/robfig/cron该项目就是crontab的go实现,一般用于定时任务,项目代码不多,但是简洁易懂,十分规范2.关键源码├── chain.go├── cron.go└── option.gochain.go//一些中间件,其实就是装饰器package cronimport ( "fmt" "runtime"...
2019-10-20 20:47:06 1271
原创 基于Drone+Gitea+K8s对go项目进行CI/CD
环境: 基于Drone+Gitea+Docker对go项目进行CI/CD目标: 把原来由docker run起来的进程交给k8s去进行调度编排前提: 熟悉k8s的基本使用1.kubectl环境打包这里把用户目录下的.kube目录和kubectl程序放到当前目录,打包成镜像,上传到私有仓库DockerfileFROM alpine:3.10COPY .kube /root/.kube...
2019-09-12 13:56:01 1882 1
原创 基于Drone+Gitea+Docker对go项目进行CI/CD
Drone是一个go开发的用来CI/CD的好工具,比jenkins和gitlab-ci更加简单好用,部署方便1.准备环境gitea和go proxydocker仓库harborgitea创建一个组织test,在该组织下创建仓库demo,仓库设置里把开发者账号加入到协作者创建一个具有创建钩子权限的管理员账号,把它加入到demo仓库的协作者中,并对仓库有可读权限harbor创建一个公开...
2019-07-11 16:00:42 4916 4
原创 go proxy结合nginx解决golang项目公私有模块依赖问题
go从1.11开始的go proxy的特性能帮我们解决第三方模块的下载,比如 golang.org/x 下的模块。同时公司也有自己的私有模块要依赖。这里是一步解决同时下载公私有模块的问题。
2019-07-11 11:15:56 1540
原创 go语言实现--单链表
复习了一下程杰老师写的《大话数据结构》,书里是代码是C语言写的,我用golang把它们重新实现一遍以及做一点变动。顺序表与链表是非常基本的数据结构,它们可以被统称为线性表。线性表是由 n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1] 组成的有限序列。顺序表和链表,是线性表的不同存储结构。它们各自有不同的特点和适用范围。下图摘自《大话数据结构》 ...
2019-03-11 00:27:00 1962 1
原创 go语言实现--二叉树
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0...
2019-03-10 23:39:10 9471 4
原创 Linux下搭建Golang开发环境
gvm是golang的版本管理工具,用它来安装golang的话十分方便,可以切换golang版本,GitHub地址:https://github.com/moovweb/gvm 里面有安装教程,不过我写的这篇稍微有点不同,你们可以先阅读一遍,知道一下意思。 第一步:安装依赖如果是Debian/Ubuntu的:sudo apt-get install curl git mercurial ...
2018-06-02 09:43:12 1936
原创 go语言实现--双向循环链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 代码如下:package doubleLinkedListimport ( "errors" "fmt")type ElemType interface{}...
2018-05-27 13:08:10 1156
原创 go语言实现--斐波那契数列的3种方法
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)(引...
2018-05-21 21:14:16 6277
原创 go语言实现--二分查找算法
二分查找是logN级别的查找算法,前提是有序序列并且存储在顺序表中,如果是存储方式是链表则不能使用。二分查找的核心思想理解起来非常简单,有点类似分治思想。即每次都通过跟区间中的中间元素对比,将待查找的区间缩小为一半,直到找到要查找的元素,或者区间被缩小为 0。但是二分查找的代码实现比较容易写错。你需要着重掌握它的三个容易出错的地方:循环退出条件、mid 的取值,low 和 high 的更新。...
2018-05-21 20:03:19 2584
原创 go语言实现--常用的排序算法
以前用过c和php实现过一些常用的排序算法,现在用golang把它们再实现一遍1.冒泡排序冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序。时间复杂度为O(n2)代码如下:package mainimport "fmt"func main() { arr := []int{8, 4, 2,...
2018-05-21 15:52:10 1901
转载 TCP四次挥手时的TIME_WAIT状态
之前面试遇到一个问题是关于TCP四次挥手的时候,先发起方为什么会有一个TIME_WAIT状态,它的作用是什么?然后整理了一些资料和自己的一些总结,方便日后查阅。
2018-05-20 01:13:49 5541
转载 进程地址空间与虚拟存储空间的理解(转载)
早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存 的呢?下面通过实例来说明当时的内存分配方法:某台计算机总的内存大小...
2018-05-18 19:24:32 1326
转载 Golang 新手可能会踩的 50 个坑
转自:https://segmentfault.com/a/1190000013739000前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的...
2018-05-06 14:20:50 6735 2
原创 go语言实现--广度优先搜索迷宫
迷宫大致如下:左上角和右下角的点分别为起点和终点,灰色的点代表墙,走不通,白色的点可以走通,我们要做的是从起点走到终点,我们每到一个点便从上左下右四个方向探索它周围的四个点,如果是走过的点我们不要探索,计算出它的步数,用的广度优先算法。第一步:把起点(0,0)入队列,每次探索一个点,便把它出队列,坐标是行和列第二步:把(0,0)出队列,开始探索(0,0),发现只有(1,0)走得...
2018-05-02 08:34:29 1776 3
原创 Vagrant+PHPStorm+XDebug断点调试
一.为自己的php版本选择正确的xdebug版本首先要得到虚拟机运行环境的phpinfo()信息,我是这样做的在浏览器访问给虚拟机配的域名把phpinfo() 页面的内容Ctrl+A全部选中,Ctrl+C复制,打开https://xdebug.org/wizard.php粘贴到该网址的页面的一个空白输入框,点击底下的按钮成功会出现以下页...
2018-03-27 22:25:27 2485 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人