自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱吃鱼的小明的博客

人一定要靠自己

  • 博客(347)
  • 资源 (5)
  • 收藏
  • 关注

原创 云原生之旅第一课(2站搜索K8s成神之路)

自己动手搭建Kubernetes集群,学习如何自定义CRD,以及使用Kubebuilder快速搭建Operator项目,云原生之旅第一课。从一开始准备录制课程,到如今已经有了500位忠实粉丝,我感到无比欣慰。这门课程完全开源,每一集都是对比官网1比1,确保原汁原味。如果你也对云原生技术充满好奇,那么赶紧关注起来吧!

2024-04-08 10:38:15 430

原创 nodejs实现grafana报表

实现grafana发送周报,目前了解到有三种方法,grafana-report(第三方)nodejs模块(第三方)grafana-reporting(grafana企业版),就nodejs怎么实现grafana报表进行流程测试,预防出现问题不知道怎么排查

2024-01-27 21:14:52 94 1

原创 一句话说透redis哨兵模式

是因为如果开启了reids的主从模式,当主有问题时候,需要人工的切换到从节点上,无法实现容错和故障切换,所以就有了哨兵模式,定时的发送“心跳”,自动切换。提到哨兵模式,不得不从另外一个模式进行说起,那就是redis的最常见的模式 主从模式,那么为啥还需要哨兵模式呢?

2024-01-27 21:03:55 193

原创 一文读懂mysql的锁

我们上面说的悲观锁,就是使用排他锁进行实现的,所以才说他俩就是一回事!

2024-01-24 21:06:44 454

原创 提起Mysql的日志,你不能只知道Binlog

slave开启主从复制,会生成两个线程一个SQL线程,一个是IO线程,主开启一个dump线程,从指定位置的binlog读取日志,从中的IO线程会连接DUMp线程,将数据拉到从上写入ready log中,然后再使用SQL线程读取read log 重放日志。因为如果先写binlog 和先写redo log 都会造成主从数据不一致。分为undo log,binlog,redo log。undo log是回滚是使用的。redo log 是崩溃恢复的。binlog 是用来进行备份的。

2024-01-23 21:43:03 396

原创 你知道Mysql的架构吗?

server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、执行器(操作引擎,返回结果)等,涵盖了Mysql大多数核心功能,以及所有的内置函数(日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。第三步是: 分析器,进行词法分析和语法分析,识别sql语句中的字符串代表的是什么,然后判断是否符合msyql的语法;首先,我们需要建立连接,这个时候是经历连接器,管理连接,权限认证;

2024-01-23 21:36:59 773

原创 杂谈1期:运维日常几大工作日常发布,处理告警,承接需求怎么写工具提升效率和代码能力

可以先把你那个每天的那种琐事由高频到低频就根据占据你时间长短的事情和列一下,每天就被这些杂事琐事去弄的,没有时间去学习,如何解决?第二点好处 节约我们的时间 提升我们的效率。第一点好处是锻炼我们的代码能力对吧。其实无外乎学几大类也是比较常见的。

2023-04-25 10:36:10 180 1

原创 BLOB/TEXT column ‘raw_content‘ can‘t have a default value解决

1.场景ALTER TABLE `database`.`table_name` ADD COLUMN `colume` text CHARACTER SET utf8mb4 NOT NULL COMMENT 'xixixix' AFTER `hehhehe`;执行一个DDL text字段的语句时 报错Error:Field 'raw_content' doesn't have a default value2.优化加上了default值DEFAULT '' 3.继续报错msg:BLOB

2021-09-24 17:22:01 628

原创 python必会的三个方法

# map 映射# 1: 1**1 一一对应l = [1,2,3,4,5]res = map(lambda x:x**2,l)print(list(res))# zip 拉链# 两边都有就可以拉上 l1 = [111,222,333,444,555,666]l2 = ['贤妻','浏阳','小张']l3 = [1,2,3,4,5,6,7]res = zip(l1,l2,l3) # 以最短的为主print(list(res))# filter过滤l = [1,2,3,4,5,6,

2021-09-06 21:45:38 291

原创 定义两个类使用武器

import osclass person(object): def __init__(self,name): self.name = name def choose(self,wapon): self.wapon = wapon print(self.name,"使用",self.wapon) return self.waponclass weapons(object): def __init__(self,

2021-09-06 14:02:40 212

原创 Go-数组

package mainimport ( "fmt")func main(){ //求数组{1,3,5,7,8}所有元素的和 a1 := [...]int{1,3,5,7,8} // fmt.Printf("%d",a1[0]+a1[1]+a1[2]+a1[3]+a1[4]) var b int for i,v := range a1{ fmt.Println(i,v) b += v } fmt.Println(b)}

2021-09-05 14:46:24 110

原创 1分钟快速学会screen窗口命令!

有个需执行很长时间的任务,下班回去之后,任务就断了,咨询了部门的大佬,大佬说:你身为运维竟然不会screen,深感羞愧,于是去网上搜screen的用法,结果很不理想,按照上面写的,根本无法让愚笨的我一眼得到使用方法,于是在求助了组内的大佬之后,现场演示了三个命令,从此我就学会了简单实用,所以在此分享出来,让你也可以进行简单的操作;1.开启scree窗口$ screen -dmS your_session_name2.查看窗口$ screen -ls 3.进入窗口$ screen -r pid

2021-07-02 14:46:26 1843

原创 初识Kubernetes

Kubernetes是谷歌严格保密十几年的秘密武器—Borg的开源版本。Borg是谷歌的一个内部使用的大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。Kubernetes是一个完备的分布式系统支撑平台。Kubernetes具有完备的集群管理能力,包括多层次的安全保护和准入机制、多租户应用支撑能力、透明的服务注册和服务发现机制、内置智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制,以及多粒度的资源配额管

2021-07-02 08:12:14 112 2

原创 gitlab/github中怎么永久性拒绝.DS_Store文件?

参考: https://www.cnblogs.com/it-tsz/p/13163782.html结果: 不理想 但是 可以用它 来做 准备工作在本地的仓库上 写.gitignore文件.DS*

2021-06-22 11:24:14 301

原创 2.部署私有仓库harbor

1.安装下载软件包二进制并解压:选择1.7.6及其以上的版本:harbor官方github 1.8.3/opt/src[root@hdss7-200 src]# lsharbor-offline-installer-v1.8.3.tgz[root@hdss7-200 src]# tar xf harbor-offline-installer-v1.8.3.tgz -C /opt/#做软链接 便于以后升级[root@hdss7-200 opt]# mv harbor/ harbor-v1

2021-06-21 20:36:17 118

原创 1.安装bind9软件

版本/内核版本/CPU/内存/磁盘软件10.4.17.11centos7.6-1810 / 3.10 / 2C2G / 30Gbind910.4.17.12centos7.6-1810 / 3.10 / 2C2G / 30G10.4.17.21centos7.6-1810 / 3.10 / 2C2G / 30G10.4.17.22centos7.6-1810 / 3.10 / 2C2G / 30G10.4.17.200centos7.6-181...

2021-06-21 20:31:05 1050

原创 Xshell连接虚拟机失败

想要解决xshell连接不到虚拟机的问题,那我们就要先了解,虚拟机通讯的原理虚拟机通过eth0或者ens33网卡访问到自己的虚拟机路由,在通过vmnet8网卡与宿主机进行通讯,在访问外网时,还需要有网关地址,这样虚拟机访问外网,就是封装自己的IP,使用网关去进行访问。所以我们的xshell连接不到虚拟机时,我们应该从外到内的去排查,vmnet是否开启,宿主机是否能和vmnet的ip进行通讯vmare是否开启了nat 模式,使用vmnet8。ssh服务是否开启(netstat ps-ef )防

2021-06-18 11:36:15 3759 5

原创 ssh无法登陆报错

解决ssh-keygen -f "/root/.ssh/known_hosts" -R 192.168.197.59报错root@jenkins-ansible:~# ssh [email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@

2021-06-18 11:30:56 292

原创 服务器断电导致mysql数据启动不了

此时会出现一个问题,我如果注释掉innodb_force_recovery = 4 那么 我将无法启动数据库,所以我选择 删除数据库实例文件,这样可以进行简单的判断是不是因为数据库的问题导致的msyql无法启动。

2021-06-18 11:28:08 2706 1

原创 mariadb(docker)修改了配置文件无法启动

1.场景因为忘记了 root密码。我想 加入skip-grant-tables参数 然后 修改root密码我的 mariadb是docker启动的,所以我就进入容器修改了 /etc/my.cnf.d/server.conf这个参数;然后restart 这个容器发现 容器无法启动了docker logs 容器 报错如下:数据库是已经起来了,但是你的数据库起来,你的程序应该是想创建 一个 zabbix 用户,但是你这个用户已经存在了,所以报错了。2.恢复参考:https://www.cnblo

2021-06-18 11:18:12 755

原创 aws磁盘报警--添加磁盘

登陆服务器查看root@ip-172-31-22-63:~# df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 373M 1004K 372M 1% /run/dev/nvme0n1p1 97G 7.5G 90G 8% /tmpfs 1.9G 0 1.9G 0% /dev.

2021-06-18 11:15:08 334

原创 代码分层架构逻辑

1.先写start文件2.写主函数3.创建功能字典4.调用5.用户视图层第一步6.用户接口层(逻辑接口层)7.数据处理层8.用户接口层拿数据处理的结果9.返回给用户视图层

2021-06-17 20:01:29 248

原创 用户访问网站流程图文解析

分为6个阶段域名解析过程TTL生命周期很重要,最常见的是60分钟,到期之后,才会从很域名服务器进行解析,如果设置很短,那么就会一致解析,增加服务器的压力。建立TCP连接发送http请求报文4.集群架构内部的访问流程5.http响应报文流程http1.1有一个持久连接, 你访问一个网页,看到的是一个网页,器使他访问了很多资源,他所历经的http请求和响应不只是一次,他每次都会在http连接的基础之上,保证更加的高效,持久连接超时之后,才进行tcp断开。6. 断开TCP连接状态.

2021-06-17 17:03:29 1595 1

原创 Pycharm插件之统计代码

1.想要统计代码先要下载插件2.查看代码

2021-06-17 08:05:08 187

原创 Jenkins部分汉化解决方案

安装如下插件Loale pluginLocalization: Chiness(Simplified)安装成功后修改语言访问地址后面加上restart,重启jenkins可能时间稍微长一些!耐心等待!登重启完毕后我们再把语言改成zh_CN即可完成汉化了...

2021-06-15 20:01:02 262

原创 jenkins在首次安装启动后一直卡着无法进入,该怎么解决

原因是链接不上jenkins官方的更新仓库导致的,我们换个国内的地址就可以了编辑配置文件:vim /var/lib/jenkins/hudson.model.UpdateCenter.xml修改如下内容地址:https://mirror.xmission.com/jenkins/updates/update-center.json然后重启jenkinssystemctl restart jenkins...

2021-06-15 19:56:56 2146 1

原创 Dockerfile服务启动命令

nginx: nginx -g "daemon off;"httpd: httpd -DFOREGROUNDTomcat: catalina.sh run#############################FROM javaENV PATH=$PATH:/opt/tomcat/bin/COPY tomcat /opt/tomcatCMD ["catalina.sh","run"]#############################Redis: redis-

2021-06-15 19:48:10 860

原创 docker-registry登录认证

server(ubuntu 20.04)centos7.7(client)10.0.0.5510.0.0.45myrepo.comdocker 版本(server)镜像版本(server)19.03.13registry:2.6.21.环境部署#新建目录root@ylm-ubuntu:~# mkdir -p /opt/docker/certsroot@ylm-ubuntu:~# cd /opt/docker/root@ylm-ubunt...

2021-06-15 10:28:43 863

原创 docker入门

文章目录1.主机虚拟化2.容器级虚拟化1.Linux Namespaces 用户隔离机制2.Control Groups(cgroups) 统一调度资源3.小结4.LXC (Linux Container)5.docker简介6.Docker基础用法docker tagdocker安装容器创建docker version 版本docker info 查看详细信息docker search --filter=stars=50 nginxalpine版本:--no-trync显示完整的信息容器操作示例:创建bu

2021-06-15 10:27:23 1089

原创 Grafana-reporter定时报表

场景:前端组想要看这个dashboard每周发送给他邮箱这是一个常见的需求,但是目前Grafana没有直接支持,所以我就查了一下,有一个grafana-reporter可以实现这个需求,因为参考的文档比较杂,所以我就在这里简单的记录一下方案:Grafana-reporter首先有一个开源工具叫Grafana reporter。他的做法是另起一个服务,然后利用Grafana的一个功能:Links.在Grafana的Dashboard界面,点击设置按钮可以看到左边的标签中有一个“Links”,该功能可

2021-06-15 10:10:37 6193 19

原创 kubelet报错:Orphaned pod “$Pod“ found, but volume paths are still present on disk

1.场景:容器一直处在 ContainerCreating状态$ kubectl get pod -n liantiao | grep pushserverpushserver-69cc66c679-tx2pg 1/1 Running 0 98dpushserver-76675b6d94-kqh25 0/1 ContainerCreating 0 56m

2021-06-15 09:55:01 752

原创 Python基础-3-函数编程

数据存储到硬盘上,硬盘只能存储二进制二进制----十进制—asscii/gbk/utf-8/ unicode数据往硬盘上存,就要以相应的编码转成2进制之后存储>>> s = "小圆圈">>> s'小圆圈'>>> s.encode("utf-8")b'\xe5\xb0\x8f\xe5\x9c\x86\xe5\x9c\x88' #9个字节 一个编码3个字节。utf-8,bytes类型:b>>> s.encode("gb

2021-06-14 22:31:22 474 2

原创 Python基础-2-数据类型&文件操作

8.细讲列表的增删改查>>> name = []>>> name. #tab>>> name.name.append( name.count( name.insert( name.reverse(name.clear( name.extend( name.pop( name.sort(name.copy( name.index( name.remove( [外链图片转存失败,源站可能有防

2021-06-14 22:30:00 341 1

原创 Python基础-1-基础语法

15.为啥要用列表[]就是列表 在其他语言中 是数组>>> names = ["zs","ls","we","lw"]>>> names[2]'we'[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qQLPqgSt-1623680899756)(assets/image-20210328161307503.png)]16.列表的增删改查增插入>>> names.insert(4,"ylm")>&g

2021-06-14 22:29:07 394 2

原创 3.Django项目之学员管理

1.创建数据库create table teacher(id int auto_increment primary key,name varchar(10));create table class(id int auto_increment primary key,title varchar(20));create table teacher2class(id int auto_increment primary key,teacher_id varchar(10),class_id varchar(

2021-06-11 19:04:14 85 1

原创 0.web框架的本质

web框架的本质是socket客户端 和socket服务端进行通讯;通讯的时候,遵循的本质是 http协议;协议规定了,只要发送请求,然后只要响应 就断开,然后就体现了这个协议的短链接和无状态;当两端创建之后,来回可以创建数据,当发送和接收数据都包含了两部分,一个是请求头和请求体发送过去了,回来的时候是响应头和响应体,知道他之后,就可以利用他 的本质进行来回交互了,响应头和响应头之间用\r\n\r\n进行分割,响应头和响应体之间使用\r\n进行分割,一般往往来说,我们作为用户一般就是看到的请求体和响应

2021-06-11 15:37:38 58 1

原创 1.Django文件夹如何创建及配置优化

创建了Django文件之后,需要做配置的优化- 模版路径配置- 静态文件- csrf注释掉1.settings.py2.根目录下创建 py文件夹3.目录详解 - Manage.py 启动这个程序的 - settings.py是配置文件, - urls.py是路由文件, - urls.py - url----》 函数 - 函数---〉处理业务逻辑 - Wsigy.py是一个协议,web网关服务接口,实现这个协议的有很多东西,ref模块实现了他,本质上里

2021-06-11 15:35:37 297 1

原创 简述ORM原理

class User: def __init__(self): self.id =.. self.name =. self.email def order_by(): sssobj = User()obj.__dict__ = { id:'', name:, email:}select id,name from user by order by ....作用:不用写sql语句了原理:就是通过类和对象转换成sql语句,再通过第三方的pymysql帮助链接,进行操

2021-06-09 08:02:48 157

原创 Py实现人狗大战

attack_vals = { "京巴": 30, "藏獒": 80,}def dog(name,d_type): #模版 data = { "name": name, "d_type": d_type, # "attack_val": 30, "life_val": 100, } if d_type in attack_vals: data["attack_val"] = at

2021-05-14 16:27:27 575410 6

原创 py验证手机号或者邮箱

验证手机号tel = input("请输入手机号:")ret = re.match(r"^1[35789]\d{9}$", tel) #以1开头 第二位数字都是3,5,7,8,9a里其中一个 后面9位数if ret: print("匹配成功")else: print("匹配失败")验证邮箱mail = input("请输入邮箱:")ret = re.match(r"\w+@\w+\.(cn|com|edu)",mail)#\w 是匹配[0-9A-Za-z]+@[0-9a-z

2021-05-10 00:12:27 201

自定义的logstash配置文件

自定义文件的logstash的配置文件

2020-08-10

master_ip_failover

mha脚本 可以使用脚本 进行检测

2020-05-22

daemon.json

docker下载镜像速度慢 新建文件夹 /etc/docker 把他放进去,就ok le

2020-05-15

default.json

jenkins启动页面如果一直网速慢 可以把他放在/var/lib/jenkins/update里面

2020-05-15

ansible一键部署.zip

ansible一键部署中小型网站架构,应用了nginx(负载均衡)+keepalived(非抢占模式),tomcat(单机多实例)+supervisor(管理),nfs(共享文件存储),rsync+crond(定时备份),zabbix(邮件报警)

2020-04-24

空空如也

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

TA关注的人

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