自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 Jenkins+Docker+SpringCloud微服务持续集成之集群部署

文章目录引言一、部署方案优化1. 优化方案2. 集群部署流程说明二、修改idea中微服务配置1. 注册中心配置2. 其他微服务配置3. 提交已修改的配置三、设计Jenkins集群项目的构建参数1. 安装Extended Choice Parameter插件2. 创建流水线项目3. 配置项目参数4. 测试代码循环构建5.引言前面的部署方案中因为是单节点,所以存在着以下的问题:首先的话我们一次只能选择一个微服务进行部署再者方案中只有一台生产者部署服务器最后就是每一个微服务只有一个实例,容错率比较低

2022-03-04 16:51:36 4275 2

原创 Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成

文章目录

2022-02-21 01:03:30 2422 3

原创 MarkDown 编辑器字体改颜色大小等常用操作

引言 如果有好用的我会慢慢添加,有会的大佬也可以留言教教我!一、字体选择<font face="宋体">宋体</font><font face="仿宋">仿宋</font><font face="楷体">楷体</font><font face="隶书">隶书</font><font face="黑体">黑体字</font><font face="微软雅黑">微软

2021-10-18 00:32:00 4076 3

原创 k8s的某个节点 NotReady解决方法

故障现象:k8s中的某个node节点状态查看显示为NotReady状态解决方法:首先查看kubelet的状态,发下运行是正常的,最后排查发下是时间同步的问题,对服务器进行时间同步,操作如下

2022-07-04 22:30:02 895 1

原创 k8s中强制删除pod方法

文章目录k8s删除pod一直处于terminating状态,无法被删除k8s删除pod一直处于terminating状态,无法被删除删除pod的时候发现 pod 一直处于 terminating 状态,而且使用 delete 命令删除的时候一直会卡的没反应。可以使用强制删除的方法解决:# 强制删除PODkubectl delete pod [pod name] --force --grace-period=0 -n [namespace] # 强制删除名称空间kubectl delet

2022-05-06 11:03:16 18087

原创 解决 K8S 命令 kubectl 无法在Node节点上使用

文章目录现象解决方法现象当我们在 K8S 的 node节点上使用 kubectl 命令想要获取一些系统资源信息的时候,会发现没法查询,会直接给你报错,如下解决方法报错原因:kubectl命令需要使用 kubernetes-admin 来运行解决方法如下:将主节点中的 /etc/kubernetes/admin.conf 文件拷贝到 node节点相同目录下,然后对从节点配置环境变量:#在master节点上进行远程复制到node节点[root@k8s-master ~]#scp /etc

2022-05-05 21:21:25 1883

原创 windows CMD常用命令

1. cd 命令//进入c盘C://进入F盘F:cd /? //获取帮助cd \ //跳转到硬盘的根目录cd C:\WINDOWS //跳转到当前硬盘的其他文件d: //跳转到其他硬盘cd /d e:\software //跳转到其他硬盘的其他文件夹,注意此处必须加/d参数。否则无法跳转。cd .. //跳转到上一层目录2. 查看目录文件//查看当前目录下的文件,类似linux的lsdir//查看文本文档type

2022-05-04 23:16:56 4668

原创 Golang 对接 Mysql 数据库增删改查操作

文章目录1. 安装 Mysql2. 安装 Git3. 配置 Navicat3. 对接数据库操作插入数据查询数据在 web 页面展示数据web 页面进行数据的修改/更新在 web 页面中对数据进行删除1. 安装 Mysql本地数据库导入(windows本地安装mysql5.7)安装完成以后需要配置环境变量2. 安装 Git添加环境变量在Go工作目录下安装go的mysql连接驱动go get github.com

2022-05-04 17:37:43 1109

原创 Golang HTTP编程

文章目录1. 服务器配置2. 客户端配置3. 请求方法使用自建客户端进行超时时间优化常见的状态码表单处理业务4. panic宕机恢复5. 模板Go 原生支持 http,直接使用 import("net/http")即可,http 服务性能和 nginx 非常接近,都具备高并发支持的能力,代码实现起来较为简单。1. 服务器配置package mainimport ( "fmt" "net/http")//业务请求相应处理func hello(res http.Respons

2022-05-02 15:30:01 844

原创 CI/CD 面试题整合

文章目录一、DevOps 术语和定义1.什么是DevOps2. 什么是持续集成3. 什么是持续交付4. 什么是持续部署5. 持续测试及其优点6. 什么是版本控制及其用途?7. 什么是Git?二、实施DevOps的原因1. DevOps为什么重要?2. DevOps对开发人员有何帮助?3. 为什么DevOps变得越来越流行?4. CI/CD有什么好处?5. 持续交付有什么好处?6. 持续部署有哪些好处?三、如何有效实施DevOps1. DevOps工作流程2. DevOps的核心操作是什么?3. 在实施Dev

2022-05-01 00:40:49 3459 1

原创 常用的Shell脚本集合

文章目录1. Dos 攻击防范(自动屏蔽攻击 IP)2. Linux 系统发送告警脚本3. MySQL 数据库备份单循环4. MySQL 数据库备份多循环5. Nginx 访问日志按天切割6. Nginx 访问日志分析脚本7. 查看网卡实时流量脚本8. 服务器系统配置初始化脚本9. 监控 100 台服务器磁盘利用率脚本10. 通过位置变量创建 Linux 系统账户及密码11. 备份日志12. 一键部署 LNMP(RPM 包版本)13. 监控内存和磁盘容量,小于给定值时报警14. 猜数字游戏15. 检测本机当

2022-04-30 18:10:10 1525

原创 Golang UDP编程

文章目录1. 服务端配置2. 客户端配置UDP 是用户数据报协议,是一种无连接传输协议,不需要建立连接就可以直接发送和接收数据,属于不可靠的,没有时序的通信,UDP实时性好,适合直播环境。1. 服务端配置package mainimport ( "fmt" "net")//UDP服务端配置func main() { //1:启动监听 listener, err := net.ListenUDP("udp", &net.UDPAddr{ IP: net.Parse

2022-04-29 14:02:11 990

原创 Golang TCP编程

文章目录1. 客户端和服务器模型2. 服务器端配置3. 客户端配置1. 客户端和服务器模型socket: BSD UNIX的进程通信机制,通常也称作“套排字”,用于描述IP地址和端口,是一个通信链的句柄。socket 可以理解为 TCP/IP 网络的API,它定义了许多函数,程序员可以使用它来开发TCPIP网络的应用程序。计算机上运行对的应用程序通常通过“套接字"向网络发出请求或者应答网络请求。服务端处理流程:① 监听端口② 接收客户端连接③ 创建goroutine,处理此连接

2022-04-28 17:33:45 2599

原创 Golang 单元测试

文章目录1. 测试函数2. 结构体测试在提交测试工程师代码前,先进行单元测试自检,没有问题,方可提交代码,对于模块或者函数需要自行写测试用例测试规则:① 文件名必须以_test go结尾② 如果是测试函数,必须以Test开头1. 测试函数calc.gopackage main//加法func add(a, b int) int { return a + b}//减法func sub(a, b int) int { return a - b}calc_tes

2022-04-28 12:22:49 260

原创 Golang 并发控制和锁

文章目录1. 互斥锁2. 读写互斥锁3. sync.Once4. sync.Map5. 定时器在 go 代码中可能会存着多个 goroutine 同时操作一个资源(临界区),这种情况会发生竞态。例如:商场更衣间。1. 互斥锁互斥锁是一种常用的控制共享资源访问的方法,它能够保证只有一个 goroutine 访问共享资源。互斥锁作用:同一时间有且仅有一个 goroutine 进入临界区,其他 goroutine 则在等待锁,等互斥锁释放后,等待的 goroutine 才可以获取锁进入临界区,多个

2022-04-27 20:22:45 553

原创 Golang 并发处理

文章目录一、基本概念二、sync.WaitGroup三、goroutine 和线程四、channel一、基本概念并发:是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。(同一时间段同时在做多个事情)并行:在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。(同一时刻同时在做多个事情)进程:—个程序启动之后就创建了—个进程线程:操作系统调度的最小

2022-04-20 00:29:33 1205

原创 Golang 文件操作

文章目录引言1. 打开和关闭文件引言计算机的文件是存储再外部介质(硬盘)上的数据集合,文件分为文本文件和二进制文件1. 打开和关闭文件os.open()函数能够打开一个文件,返回一个*File和一个err,对得到的文件示例close()方法能够关闭文件。package mainimport ( "fmt" "os")func main() { //系统打开文件并赋予文件实体 file, err := os.Open("./abc.txt") if err != nil {

2022-04-18 21:25:23 1470

原创 Golang 反射

文章目录引言1. reflect 包1.1 获取变量类型1.2 断言处理类型转换2. ValueOf2.1 获取变量值2.2 类型转换3. Value.Set3.1 设置变量值3.2 示例4. 结构体反射5. 函数反射引言反射指的是运行时动态的获取变量的相关信息1. reflect 包类型是变量,类别是常量reflect.TypeOf,获取变量的类型,返回reflect.Type类型reflect.ValueOf,获取变量的值,返回reflect.Value类型reflect.Value

2022-04-15 20:31:42 932

原创 Golang 接口及使用接口实现链表插入

文章目录1. 接口定义1. 接口定义Interface 类型可以定义一组方法,不需要实现,并且不能包含任何的变量,称之为接口接口不需要显示的实现,只需要一个变量,含有接口类型中的所有方法,那么这个变量就实现了这个接口,如果一个变量含有多个interface 类型的方法,那么这个变量就实现了多个接口语法type example interface{ Method1(参数列表)返回值列表 Method2(参数列表)返回值列表 ...}示例package main

2022-04-13 20:53:51 667

原创 Golang 结构体和方法

文章目录1. 结构体别名定义2. 工厂模式3. Tag 原信息1. 结构体别名定义变量别名定义package mainimport "fmt"type integer intfunc main() { //类型别名定义 var i integer = 1000 fmt.Printf("值: %d, 类型: %T\n", i, i) var j int = 100 j = int(i) //j和i不属于同一类型,需要转换 fmt.Println(j)}//输出结果

2022-04-09 23:59:02 870

原创 Golang 二叉树遍历

文章目录1. 二叉树的定义2. 前序遍历3. 中序遍历4. 后序遍历1. 二叉树的定义二叉树需满足的条件① 本身是有序树② 树中包含的各个节点的长度不能超过2,即只能是0、1或者22. 前序遍历前序遍历二叉树的顺序:根——》左——》右package mainimport "fmt"//定义结构体type Student struct { Name string Age int Score float32 left *Student //左子树指针 righ

2022-04-09 22:26:02 909

原创 Golang 结构体链表

文章目录1. 什么是链表2. 单项链表3. 使用 struct 定义单链表4. 尾部添加节点5. 头部插入节点6. 指定节点后添加新节点7. 删除节点1. 什么是链表链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。使用链表结构可以避免在使用数组时需要预先知道数据大小的缺点,

2022-04-09 00:44:49 2222

原创 Golang 时间函数

文章目录引言1. 时间格式化2. 示例引言1946年2月14日,人类历史上公认的第一台现代电子计算机“埃尼阿克”(ENIAC)诞生。计算机语言时间戳是以1970年1月1日0点为计时起点时间的。计算机诞生为1946年2月14日,而赋予生命力时间是从1970年1月1日0点开始。1小时=60分钟 Hour1分钟=60秒 Minute1秒=1000毫秒 Second1毫秒=1000微秒 Millsecond1微秒=1000纳秒 Microsecond1纳

2022-04-07 22:19:23 530

原创 Golang 字符串的各种常见操作

文章目录1. 字节数组2. 头尾处理3. 位置索引4. 替换5. 统计次数6. 重复7. 大小写8. 去除字符9. 字符串切片处理10. 数值处理1. 字节数组字节与字符的区别字节(Byte) 是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位字符(Character) 是计算机中使用的字母、数字、字和符号,比如’A’、‘B’、‘$’、'&'等一般在英文状态下一个字母或字符占用一个字节,一个汉字用两个字节表示通俗点来说,

2022-04-04 23:16:11 1783

原创 Golang 递归函数

文章目录引言1. 什么是递归函数2. 数字阶乘3. 斐波那契数列(Fibonacci)引言递归函数对于解决数学上的问题是非常有用的,比如计算阶乘,生成斐波那契数列等1. 什么是递归函数递归,就是在运行的过程中调用自己一个函数调用自己,就叫做递归函数构成递归需具备的条件:子问题须与原始问题为同样的事,且更为简单;不能无限制地调用本身,须有个出口,化简为非递归状况处理。2. 数字阶乘阶乘是基斯顿·卡曼于 1808 年发明的运算符号,是数学术语一个正整数的阶乘(factorial

2022-04-02 21:29:37 443

原创 Golang 映射(map)

文章目录1. 什么是 map2. 创建 map3. 访问 map4. nil map和空map5. map中元素的返回值6. len()和delete()7. 测试map中元素是否存在8. 迭代遍历 map9. 获取map中所有的key10. 传递map给函数1. 什么是 mapMap 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的M

2022-04-01 00:03:46 958

原创 Golang 结构体

文章目录引言一、定义结构体1. 语法格式2. 示例二、访问结构体成员三、结构体作为函数参数四、结构体指针总结引言Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型结构体是由一系列具有相同类型或不同类型的数据构成的数据集合结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:Title :标题Author : 作者Subject:学科ID:书籍ID一、定义结构体1. 语法格式结构体定义需要使用 type 和 struct 语句str

2022-03-29 22:02:19 667

原创 Golang 指针

文章目录引言一、指针地址和指针类型1. 什么是指针2. 指针的使用3. 空指针二、指针数组1. 定义长度为3的整形数组2. 声明整形指针数组三、指向指针的指针1. 概述2. 示例3. 多重指针四、指针作为函数参数总结引言  Go 语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无须拷贝数据。Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)。一、指针地址和指针类型1. 什么是指针

2022-03-29 00:12:48 5395 1

原创 Golang 包了解以及程序的执行

文章目录引言一、包介绍1. 包的基本概念2. 包的用法3. 标识符可见性4. 包的引入二、标准库1. 标准库概述2. 标准库常见的包及其功能3. 程序执行顺序引言  Go 语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。Go 语言中为我们提供了很多内置包,如 fmt、os、io等。  任何源代码文件必须属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName 语句,通过该语句声明自己所在的包。一、包介绍1. 包的基

2022-03-25 22:30:05 719

原创 Golang 切片的使用(增删改查)

文章目录引言一、切片的基础语法1. 语法2. 示例3. 切片的长度和容量二、切片的初始化1. 直接初始化2. 使用数组初始化3. 使用数组的部分元素初始化(切片表达式)4. 空(nil)切片三、切片的遍历1. for 循环遍历2. for range遍历四、切片元素的添加和删除copy1. 添加元素2. 删除元素3. 修改切片元素4. 查找切片元素5. 拷贝切片引言Golang 的数组是固定长度,可以容纳相同数据类型的元素的集合。但是当长度固定了,在使用的时候肯定是会带来一些限制,比如说:申请的长

2022-03-25 00:45:13 3397

原创 Go 语言函数

文章目录1. 概述2. 函数的定义1. 概述函数是基本的代码块,用于执行一个任务Go 语言最少有一个 main() 函数你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务函数声明告诉了编译器函数的名称,返回类型,和参数Go 语言标准库提供了多种可动用的内置的函数。例如,len()函数可以接受不同类型参数并返回该类型的长度。如果我们传入的是字符串则返回字符串的长度,如果传入的是数组,则返回数组中包含的元素个数。2. 函数的定义Go 语言函数定义格式如下

2022-03-24 22:16:17 746

原创 Go 语言数组

文章目录引言一、数组的定义1. 语法2. 示例二、数组的初始化1. 未初始化的数组2. 使用初始化列表3. 省略数组长度4. 指定索引值的方式来初始化5. 访问数组元素引言  数组是相同数据类型的一组数据的集合,数组一旦定义长度不能修改,数组可以通过下标(或者叫索引)来访问元素。  相对于去声明 number0, number1, ..., number99 的变量,使用数组形式 numbers[0], numbers[1] ..., numbers[99] 更加方便且易于扩展。数组元素可以通过索

2022-03-24 10:36:31 1234

原创 Go 语言控制台输入&生成随机数

文章目录1. 不同基础类型之间的转化2. Go 语言随机数3. 高并发输入解析1. 不同基础类型之间的转化对于不同的基础类型之间的转化,Go 提供了 strconv包。它实现了字符串与其他基本数据类型之间的转化。其中最常用的数值转化函数是Atoi和ltoaAtoi 方法可以将字符串类型的数值直接转化为int类型的数值,而 ltoa 可以将 int 类型的数值转化为string类型的值。示例:控制台输入一个数值,进行数据大小的比较package mainimport ( "fmt"

2022-03-22 22:39:44 649

原创 Go 语言循环语句

文章目录一、概述1. 循环控制语句2. 无限循环二、Go 语言 for 循环1. 语法2. for语句执行过程3. 示例4. For-each range 循环一、概述在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。循环程序的流程图:Go 语言提供了以下几种类型循环处理语句:循环类型描述for 循环重复执行语句块循环嵌套循环中嵌套一个或多个 for 循环1. 循环控制语句循环控制语句可以控制循环体内语句的

2022-03-20 17:32:58 474

原创 Go 语言条件语句

文章目录1. if 语句2. if...else 语句3. if 语句嵌套4. swit 语句条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。Go 语言提供了以下几种条件判断语句:语句描述if 语句if 语句由一个布尔表达式后紧跟一个或多个语句组成。if…else 语句if 语句后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 fals

2022-03-18 22:38:09 243

原创 Go 语言运算符

文章目录1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符7. 运算符优先级运算符用于在程序运行时执行数学或逻辑运算Go 语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符1. 算术运算符下表列出了所有Go语言的算术运算符。假定 A 值为 10,B 值为 20运算符描述实例+相加A + B 输出结果 30-相减A - B 输出结果 -10*相乘A * B 输

2022-03-18 19:59:03 138

原创 Go 语言基础语法

文章目录一、GO 语言结构1. 基础组成2. 实例3. 执行 Go 程序一、GO 语言结构1. 基础组成包声明引入包函数变量语句&表达式注释2. 实例package mainimport "fmt"func main() { /* 这是我的第一个简单的程序 */ fmt.Println("hello world!")}第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。

2022-03-17 13:36:58 1350

原创 Golang——从入门到放弃

文章目录一、golang 简介1. go 语言特点2. go 语言应用领域3. 使用 go 语言的公司有哪些二、安装 golang1. golang 下载安装2. 配置环境变量三、golang 开发工具1. 安装 VSCode2. 下载所需插件四、第一个 golang 应用1. main 包的含义2. 示例一、golang 简介Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thomp

2022-03-17 10:59:54 5058 1

原创 Kubernetes 平台实现 Jenkins的 Master-Slave 分布式构建方案(下)

文章目录一、K8S上安装Jenkins-Master1. 创建NFS client provisioner2. 安装 Jenkins-Master3. Jenkins控制台配置二、Jenkins与Kubernetes整合1. 实现Jenkins与K8s整合2. 构建Jenkins-Slave自定义镜像3. Jenkins-slave流水线项目测试三、基于kubernetes平台微服务的部署1. 拉取代码,创建镜像2. 配置eureka服务3. 配置服务网关4. 配置权限管理中心5. 配置活动微服务一、K

2022-03-11 15:54:03 1821

原创 Kubernetes 平台实现 Jenkins的 Master-Slave 分布式构建方案(上)

一、传统的Master-Slave方案的缺陷Master节点发生单点故障时,整个流程都不可用了每个 Slave节点的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是比较费劲资源分配不均衡,有的 Slave节点要运行的job出现排队等待,而有的Slave节点处于空闲状态资源浪费,每台 Slave节点可能是实体机或者VM,当Slave节点处于空闲状态时,也不会完全释放掉资源解决方案:引入Kubernates来解决二、持续

2022-03-11 15:53:45 1266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除