自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 日志收集分析平台项目-2-项目原理

nginx2的1.6是master,1.5是backup,域名就解析成两个虚拟IP地址,一个1.5一个1.6,避免空闲backup。两个机器会同时运行keepalive协议,假如master没挂掉,1.5会在nginx1上,若master挂掉了,1.5会去nginx2上,除非两台都挂掉了,否则IP地址不会掉。但是如果其中一个其中一个服务器挂了,DNS不会立马将这个IP地址去掉,还是会解析成挂掉的IP,可能会造成访问失败,虽然客户端有重试,但还是会影响用户体验。......

2022-08-30 10:37:01 922 1

原创 flask项目-1-flask安装

项目环境:pycharm、centos、git bash等。

2022-08-26 17:21:19 879

原创 计算机网络-4-传输层-TCP 协议-UDP协议

只有主机才有的层次为应用层提供通信服务使用网络层的服务。

2022-08-14 17:39:07 195

原创 Linux-7-top命令

top命令用于实时显示process的动态。

2022-08-14 17:20:35 277

原创 Go-15-异常处理

在python、java等语言中有try...catch机制,在try中捕获各种类型的异常,在catch中定义异常处理的行为。error往往是能预知的错误,但是也可能出现一些不可预知的错误,例如数组越界,这种错误可能会导致程序非正常退出,在Go语言中称之为panic。error类型是一个接口类型,该接口声明中只包含一个Error方法,它不接收任何参数,返回一个String类型的结果。使用error的场景:用于声明函数返回值,如果函数执行正确返回nil,执行出错返回一个error。...

2022-08-11 21:47:17 285

原创 Go-14-数组与切片

Go语言数组声明需要指定元素类型及元素个数语法格式:var variable_name [SIZE] variable_type定义了数组balance长度为5类型的float32如果设置了数组的长度,还可以通过指定下标来初始化元素// 将索引为1和3的元素初始化如果数组长度不确定,可以使用...代替数组的长度,编译器会根据元素个数自行推断数组的长度未指定大小的数组即:定义切片使用make()函数来创建切片// 也可以简写为也可以指定容量,其中capacity为可选参数。...

2022-08-11 20:58:51 1177

原创 Go-13-配置文件读取

Viper可以同时从不同的位置读取配置,不同位置的配置具有不同的优先级,高优先级的配置会覆盖低优先级相同的配置,按优先级从高到低排列如下。读取配置只需要调用viper.GetString()、viper.GetInt()和viper.GetBool()等函数即可。// 调用viper.GetString() viper.GetInt() viper.GetBool()在apiserver/conf/config.yaml(默认配置文件名字固定为config.yaml)...

2022-08-09 21:30:50 502

原创 计算机网络-3-网络层-动态路由

现在新的RFC文档中又改用“路由器”这一名词,因此EGP可改称为ERP,IGP可改称为IRP。RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。由于在因特尔早期RFC文档中,没有使用“路由器”,使用的是“网关”这一名词。RIP使用跳数作为度量,来衡量到达目的网络的距离。是内部网关协议中最先得到广泛使用的协议之一。因特网所采用的路由选择协议的主要特点。因特网采用分层次的路由选择协议。RIP的基本工作原理。......

2022-08-09 20:32:02 281

原创 计算机网络-2-网络层-arp-icmp-三层交换机

3、网络层 icmp协议 有一个请求包request和响应包replay,封装头部信息里没有源IP和目的IP。ARP协议:address resolution protocol -- 地址解析协议 -- 将一个已知的IP地址解析成MAC地址。5、帧 -- mac地址 -- 源mac和目的mac -- 发arp广播。默认路由:当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口。4、IP协议:封装源IP和目的IP。只要是不直连的,如果要想过去,都要添加静态路由或者动态路由。......

2022-08-09 16:58:20 1039

原创 Go-12-结构体

结构体定义需要使用 type 和 struct 语句struct 语句定义一个新的数据类型,结构体中有一个或多个成员type 语句设定了结构体的名称定义一个结构体Student,并为Student添加name,age字段age int}

2022-08-07 19:53:22 132

原创 Go-11-流程控制

Go语言提供了以下几种条件判断语句if语句后可以使用可选的else语句else语句中的表达式在布尔表达式为false时执行类似于switch语句,但是select会随机执行一个可运行的case如果没有case可运行,它将阻塞,直到有case可运行。...

2022-08-07 16:13:41 69

原创 Go-10-模块与包

一般来说,一个文件夹可以作为package,同一个package内部变量、类型、方法等定义可以相互看到go语言也有public和private的概念,粒度是包如果类型/接口/方法/函数/字段的首字母大写,则是public的,对其他package可见如果首字母小写,则是private的,对其他package不可见比如我们新建⼀个文件 calc.go,main.go平级,分别定义add和main 方法运行go run main.go,会报错,说add未定义。...

2022-08-07 15:24:50 164

原创 Go-9-数据类型-函数

Go语言是静态类型的,变量声明时必须明确变量的类型Go语言与其他语言显著不同的一个地方在于,Go语言的类型在变量后面var a int // 如果没有赋值,默认为0var b int = 1 // 声明时赋值var c = 1 // 声明时赋值d := 1 // 只能在函数体中使用msg := "hello world" // 只能在函数体中使用var e, f int = 1, 2 // 一次声明多个变量变量需要定义后再使用:=左侧的变量不应该时已经被声明过的,否则会导致编译错误。...

2022-08-04 11:29:47 194

原创 Go-8-Gin框架

Gin框架的优点:轻量级,高性能、扩展性强、稳定性强、相对而言比较简洁Gin是使用Go/golang语言实现的HTTP Web框架,接口简洁,性能极高。

2022-08-03 21:15:11 1265

原创 Go-7-RESTful API的设计

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数或者接口,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无须访问源码,或理解内部工作机制的细节。要实现一个 API 服务器,首先要考虑两个方面:API 风格RPCREST媒体类型JSONXMLProtobuf在 Go API 开发中常用的组合是 gRPC + Protobuf 和 REST + JSON。...

2022-08-03 20:07:01 124

原创 Go-6-常用命令-go包管理问题-两个路径-GO111MODULE

所谓的vendor机制,就是每个项目的根目录下可以有一个vendor目录,里面存放了该项目的依赖的package。这种方式的最大弊端就是无法实现包的多版本控制,比如项目A和项目B依赖与不同版本的package,如果package没有左到完全的向前兼容,往往会导致一些问题。模块支持,go会忽略GOPATH和vendor文件夹,只根据go.mod下载依赖。gomodinitxxx.go#初始化,会生成go.mod文件。GOPATHgo指定的工作空间--用于保存go项目的代码和第三方依赖包。...

2022-08-01 22:07:16 753

原创 Go-5-简单介绍fmt库

fmt是一个用于输入输出常用的库在fmt包中,有关格式化输入输出的方法就两大类Scan和Print,分别在scan.go和print.go文件中。

2022-08-01 20:57:56 300

原创 Go-4-在vim中无法跳转到源代码

这一步如果获取不到,需要在当前目录下,创建一个新的文件夹。#在新文件夹里进行初始化,生成一个go.mod文件。问题couldnotfind‘guru’正常情况下,在vim中要跳转到源代码。#设置module管理模式。快捷键CTRL+]快捷键CTRL+o。#获取guru安装。...

2022-08-01 20:21:50 288

原创 docker-1-环境配置

p809080端口映射,访问本机的8090端口,会通过net映射到容器里的80端口,nat功能是靠我们的Linux内核完成的。9、去真实机器里访问IP地址端口号,可以直接访问到容器里的nginx。docker-ce-cli客户端工具,给用户使用的客户端工具集。-d将容器在后台启动运行--deamon--守护进程。1、下载docker-ce的仓库文件,方便后面的安装。--name是指定启动的容器的名字,可以自定义。docker-ce核心软件,引擎。7、启动一个nginx的容器。...

2022-07-29 21:26:58 542

原创 MySQL-4-常规概念

create建表建库drop删表删库alter改表。

2022-07-26 22:02:17 140

原创 MySQL-3-密码破解

socket=/data/mysql/mysql.sock--将此行的注释取消。skip-grant-tables--增加一行--跳过密码认证。5、刷新权限(会加载原来没有加载的权限表)--在MySQL里执行。将之间加入的跳过密码认证那行删除或注释掉。1、停止MySQL进程的运行。4、登录MySQL,不接密码。3、启动MySQL进程。...

2022-07-26 21:00:04 142

原创 MySQL-2-设置权限-创建表

t1.ibd是t1表存放数据的文件,因为使用的是innodb存储引擎(软件,用来存取数据,在内存和磁盘之间)innodbdata。*.*第一个*代表所有的库,第二个*代表所有的表。t2.MYD是存放数据datamyisam。db.opt存放库使用的字符集和校对规则。t1.frm是t1表的表结构frame。t2.frm是t2表的表结构frame。showengines;t2.MYI是存储索引的index。不同的存储引擎形成的文件也是不一样的。进入文件夹查看之前建的库和表文件。...

2022-07-26 20:32:27 967

原创 MySQL-1-环境部署

MySQLhttps从官网下载好社区版(免费)这里下载的是5.7.37版本下载好后拖进Xshell。

2022-07-26 19:29:34 61

原创 Linux-6-sed命令

sed是一种支持正则表达式的非交互式流编辑器脚本中修改文本或者文本替换的最佳工具。

2022-07-21 16:14:44 819

原创 Linux-5-awk命令

与sed一样,均是一行一行的读取、处理sed作用于一整行的处理,而awk将一行分成数个字段来处理BEGIN和END里的命令只执行一次BEGIN和END必须大写BEGIN和END不是必须的

2022-07-21 16:10:39 274

原创 日志收集分析平台搭建-1-环境准备

systemctl管理的服务配置文件在/usr/lib/systemd/system下,以.service结尾的配置文件。启动/停止/重启systemctlstart/stop/restartNetworkManager。selinux是Linux系统内核里一个跟安全相关的子系统规则非常繁琐一般日常工作里都是关闭的。配置好dns输入cat/etc/resolv.conf查看是否输入以下内容。输入vim/etc/hosts在文件里加入以下三行(每台都要加三行)......

2022-07-18 09:18:32 533

原创 计算机网络-1-基础概念

硬件方面:通过线缆将网络设备和计算机连接起来软件方面:操作系统,应用软件,应用程序通过通信线路互连实现资源共享、信息传递数据通信资源共享增加可靠性提高系统处理能力协议(protocol)语法语义同步标准ISO:国际标准化组织ANSI:美国国家标准化局ITU-T:国际电信联盟-电信标准部IEEE:电气和电子工程师学会WAN( wide area network )范围:几十到几千千米作用:用于连接远距离的计算机网络典型应用:InternetLAN( local area network )范围:1km左右作用

2022-07-12 18:29:20 182

原创 python-8-迭代器与生成器

目录一、python推导式列表推导式字典推导式集合推导式练习二、python可迭代对象三、迭代器练习四、生成器生成器表达式生成器函数练习五、可迭代对象、迭代器、生成器三种关系小结图示概念:推导式,是python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体。分类:列表推导式、字典推导式、集合推导式用[ ]生成list基本格式:variable = [out_exp_res for out_exp in input_list if out_exp == 2]

2022-07-08 19:15:50 469

原创 Linux-4-正则表达式-grep命令-sort命令-uniq命令

使用一些特殊符号+字母和数字按照某个规则组合成一个公式用来表示某个意思就叫正则表达式元字符 --> 有特殊含义的字符,可以表示其他的含义在shell里面叫通配符egrep = grep -Egrep命令支持扩展正则基本正则和扩展正则的区别 扩展正则支持更加多的元字符,能够表示更加复杂的意思,功能更加强大关于中括号 egrep "[abc]"表示取中括号中的一个字符,可以是a,可以是b,可以是c [0-9]表示数字 ^[^0-9]表示不是以数字开头的行

2022-07-04 21:17:45 381

原创 Go-3-第一个Go程序

新建一个文件 ~/code/example.go运行代码 配置安装源

2022-07-03 17:15:27 80

原创 Go-2-Vim IDE常用功能

在代码间跳来跳去,将光标放在某个函数调用上,按 ctl + ] 就会跳到函数的定义处,按 ctrl + o 就会跳回来。 退出某模式的窗口,使用末行模式 :q即可 注意:在vim中粘贴文本,需要 :set paste 就能正常粘贴好了! ​​​​​​​...

2022-07-03 17:00:14 156

原创 Go语言-1-开发环境配置

开发环境配置

2022-07-03 16:54:15 129

原创 python-7-容器类型-数据结构

一、数据结构1、程序设计的基本结构:比如在用户密码验证时,如果一个程序需要能验证100、1000、10000甚至于更多用户时,我们会需要一个储存东西的容器。这些存储大量数据的容器,在python中称之为内置数据结构(Built-in Data Structure)2、4种内置数据结构(容器类型)列表: list =>[val1,val2,val3,val4] 元组: tuple =>(val1,val2,val3,val4) 字典: dict =>

2022-01-20 15:27:47 1137

原创 python-6-流程控制

一、程序流程控制程序设计的基本结构:任何算法(程序)都可以由顺序结构、选择结构、循环结构,这三种基本结构组成来实现,顺序结构是程序的基础程序流程图:任何算法(程序)都可以使用一系列图形、流程线和文字说明算法中的基本操作和控制流程 -----基本元素:操作框、流程线、文字说明二、顺序结构三、选择语句(if ...else ...)四、循环语句(for ...)五、循环语句(while ...)六、pass、continue、break...

2022-01-19 14:01:12 551

原创 python-5-运算符与表达式

一、表达式是由一个或多个操作数通过操作符组合而成 最简单的表达式仅包含一个字面值常量或变量二、运算符1、算术运算符运算符 描述(变量a为10,变量b为21) 实例 + 加:两个对象相加 a+b 输出:31 - 减:得到负数或是一个数减去另一个数 a-b 输出:-11 * 乘:两个数相乘或返回一个被重复若干次的字符串 a*b 输出:210 / 除:x除以y b/a 输出:2.1 % 取余:返回除法的余数

2022-01-08 22:56:46 479

原创 python-4-基本数据类型

一、数字:在python中有3中类型的数——整数、浮点数和复数1、整数(int):1)python2 vs python3在python2中区分整型和长整型(long),长整型的整数可以无穷大;在python3中统称为整型2)进制表示:二进制:以0b开头,只包含0和1;二进制转换(bin):接收一个int,返回一个str八进制:以0o开头,只包含0-7;八进制转换(oct):接收一个int,返回一个str十六进制:以0x开头,包含0-15;十六进制...

2022-01-06 09:20:52 136

原创 python--3-输入输出

一、python的运行方式1、命令行交互shell:临时性测试,比较简短的代码2、文件形式执行:python最流行的IDE:pycharm设置代码模板;字体设置;解释器设置3、pycharm常用快捷方式CTRL + 悬浮/单击鼠标左键:简介/进入代码定义CTRL + /:行注释/取消行注释CTRL + Shift + /:块注释CTRL + Alt + L:代码格式化...

2022-01-05 09:48:06 107

原创 python-2-基本语法

一、python交互式命令行提示符>>>:是python语句的主要提示符...:是python语句的次要提示符/:续行符二、python赋值 直接赋值: 连续赋值: 多项赋值:三、标识符命名规范1、变量名只能是字母、数字或下划线2、变量名的第一个字符不能是数字3、以下关键字不能声明为变量名四、python注释...

2022-01-04 22:17:22 842

原创 python-1-一些介绍-python解释器-python编码风格

一、python主流版本:python2.7(在2020年就不维护了)、python3.6及以上的版本二、需要准备好的环境:pip:python解释器(python的包管理工具)git:分布式版本控制系统pycharm:集成开发环境三、python解释器 1、编译型 vs 解释型编译型:是把源程序的每一条语句都编译成机器语言,并保存二进制文件,这样运行时计算机可以直接以机器语言来执行此程...

2022-01-03 20:48:44 432

原创 Linux-03-一些常用快捷键

CTRL+L:清屏CTRL+C:强行终止当前进程Tab:补齐命令CTRL+K:删除从光标到行末所有字符CTRL+U:删除从光标处到行首的字符上下方向键:调出历史命令

2021-12-19 15:59:10 168

空空如也

空空如也

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

TA关注的人

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