自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 obsidian + cloudreve 搭建个人云盘

obsidian + cloudreve 搭建个人云盘

2023-12-21 16:02:32 1133

原创 grpc使用教程

【代码】grpc使用教程。

2023-11-09 13:05:16 339

原创 golang 实现雪花算法

golang 实现雪花算法

2023-10-31 14:59:07 406

原创 go 内存泄露

记一次生产环境 golang 内存泄露事故

2023-09-22 12:15:59 435

原创 golang 优雅停服

golang 优雅停服

2023-07-21 15:13:03 186

原创 golang 实现tcp连接池

【代码】golang 实现tcp连接池。

2023-07-20 16:16:22 536

原创 Golang 前序、中序、后序遍历

【代码】Golang 前序、中序、后序遍历。

2023-02-02 11:21:10 226

原创 B树与B+树的区别

B数的b即是Balance的缩写,他是一种多路平衡搜索树,B树的每个节点可以存放多条数据,B树的节点可以有多个子节点,B树中每个节点存放有索引和数据,数据遍布整棵树,B树搜索可能在非叶子节点上,最好的情况是O(1)

2023-02-02 11:09:14 1291

原创 grafana 配置 influxdb 数据源

influxdb 是一种时序数据库,常用来做监控储存时序数据。grafana 是一个可视化的分析平台,常用来做服务的监控与告警。为降低安装复杂度,本文使用docker来安装以上应用。

2022-06-06 17:29:39 2478 2

原创 go get 支持gitlab私有库

背景一般公司都会有自己的私有框架或者公共函数库,这些大都会部署在公司私有的gitlab上通过配置 GOPRIVATE 可以使 go-get 不走代理而直接访问私有库,但是 go get 默认会使用https 去请求私库问题私有库不支持https, 仅支持 http私库端口号不是默认80端口# 如果80端口被占用或者考虑到暴露80端口可能存在被攻击的风险,通常代码仓库可能不会用默认端口。# go get 拉取仓库代码时不允许加端口号,不是默认端口时会报 unknown import pa

2022-05-30 10:49:52 1648

原创 RabbitMQ 安装与配置

安装1, 下载erlang rpm包wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm2, 升级包rpm -Uvh erlang-solutions-1.0-1.noarch.rpm3,安转 erlangyum -y install epel-releasesudo yum install erlang4,安装rabbitmq yum源curl -s https://packag.

2021-11-18 19:29:01 124

转载 K8S 单master安装与配置

配置要求1, 2台 2核4G服务器2, Centos 7.8 以上修改hostname# 修改master/node hostnamehostnamectl set-hostname k8s-master/k8s-node# 查看修改结果hostnamectl status# 设置 hostname 解析echo "127.0.0.1 $(hostname)" >> /etc/hosts快速安装通过脚本快速安转以下软件:1,containerd 作用类似docke

2021-11-05 14:01:20 468

原创 pprof 使用教程

简介pprof 是 golang 自带的性能分析工具,可以查看web应用的运行状态,分析程序CPU,内存,goroutine等使用情况。golang 针对不同使用场景,提供了以下两种方式开启pprof性能分析runtime/pprof:采集程序(非 Server)的运行数据进行分析net/http/pprof:采集 HTTP Server 的运行时数据进行分析开启pprof,举个栗子package mainimport ( "net/http" _ "net/htt

2021-10-28 15:24:28 3322

原创 Go环境搭建(window)

1,下载软件官网下载地址:https://golang.google.cn/dl/选择 go1.17 版本免安装包下载2,配置环境变量1,将刚现在的go软件包放到 C:\learn\go 目录下2,在环境变量path中加入 C:\learn\go\bin 路径3, 创建gopath 目录:C:\learn\gopath4,在环境变量path中加入 C:\learn\gopath\bin 路径5,创建GOPATH 环境变量,值为C:\learn\gopath 6, 创建GO111MODUL

2021-10-20 14:07:17 162

原创 nginx 安装与配置

安装1,下载wget http://nginx.org/download/nginx-1.20.1.tar.gz2, 解压缩tar -zxvf nginx-1.20.1.tar.gz3, 安装依赖yum install pcre pcre-devel4,指定安装目录./configure --prefix=/usr/local/nginx5,编译安装make && make install命令/usr/local/nginx/sbin/nginx .

2021-10-09 14:36:30 55

原创 Redis 安装与配置

安装1,下载wget https://download.redis.io/releases/redis-6.2.6.tar.gz2,解压缩tar -zxvf redis-6.2.6.tar.gz3,迁移mv redis-6.2.6 /usr/local/redis4, 编译安装make5, 配置环境变量vim /etc/profile添加如下配置export PATH=/usr/local/redis/src:$PATH生效配置source /etc/profile.

2021-10-09 13:50:11 90

原创 kafka 安装与配置

安装1,软件下载wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz2, 解压缩tar -zxvf kafka_2.13-3.0.0.tgz -C /usr/local配置cd /usr/local/kafka/config 目录vim server.properties 修改如下配置broker.id = 0listeners=PLAINTEXT://192.168.136.3:9092log.dir.

2021-10-09 10:28:17 224

原创 zookeeper 安装与配置

安装1,下载wget http://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz2,解压缩tar -zxvf apache-zookeeper-3.7.0.tar.gz -C /usr/local配置cd /usr/local/zookeeper 目录mkdir datamkdir logscd /usr/local/zookeeper/conf 目录,z.

2021-10-09 10:26:00 98

原创 kong 安装与配置

安装kong$ curl -Lo kong-2.5.0.amd64.rpm $( rpm --eval "https://download.konghq.com/gateway-2.x-centos-%{centos_ver}/Packages/k/kong-2.5.0.el%{centos_ver}.amd64.rpm")$ sudo yum install kong-2.5.0.amd64.rpm安装 postgresql官网下载页面:http://www.postgres.cn/v.

2021-09-13 17:38:33 1518

原创 golang 并发控制

golang 的并发控制可以通过 channel WaitGroup context 等三种方式实现channelfunc main { fmt.PrintLn("start") doSomething() fmt.PrintLn("end")}func doSomething() { ch := make(chan struct{}) go func(){ for { select { c.

2021-09-08 16:05:53 749

原创 golang 编码规范

命名规则常量* 常量应遵循首字母大写的驼峰命名法,同时尽可能言简意赅如:const PayChannelBank = 1不建议使用全部大写字母组成,并以下划线分词如: const PAY_CHANNEL_BANK = 1* 相关的常量应尽可能的放在一起定义,也可以全部放在 const.go 文件中变量* 变量命名应遵循驼峰命名法,同时尽可能言简意赅如:var orderId int64* 若变量为 `bool` 类型,则名称应以 `has` `is` `can` `al.

2021-09-08 14:59:06 275

原创 linux 根目录扩容

1, fdisk -l 查看磁盘分区,发现 /dev/sda盘有多余空间2, 新建分区[root@k8s-master ~]# fdisk /dev/sda欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。命令(输入 m 获取帮助):nPartition type: p primary (3 primary, 0 extended, 1 free) e extendedSelect (d

2021-09-08 14:45:16 207

原创 ELK Stack 安装文档(三)

安装 logstash官网地址:https://www.elastic.co/downloads/1, 下载软件wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.1-linux-x86_64.tar.gz2, 解压tar -zxvf logstash-7.14.1-linux-x86_64.tar.gz 3, 配置创建配置文件logstash.conf ,并添加如下配置input { fi.

2021-09-07 18:17:57 93

原创 ELK Stack 安装文档(二)

安装 kibana官网地址:https://www.elastic.co/downloads/1, 下载软件wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.1-linux-x86_64.tar.gz2, 解压tar -zxvf kibana-7.14.1-linux-x86_64.tar.gz3,配置vim kibana-7.14.1/config/kibana.yml文件末尾添加server.por.

2021-09-07 17:19:39 182

原创 ELK Stack 环境搭建(一)

安装elastic官网地址:https://www.elastic.co/downloads/1, 下载软件wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.1-linux-x86_64.tar.gz2,解压tar -zxvf elasticsearch-7.14.1-linux-x86_64.tar.gz 3,配置vim elasticsearch-7.14.1/config/e.

2021-09-07 15:23:13 103

原创 通过Dockerfile运行Go应用

DockerfileFROM golang:1.13 as builderMAINTAINER Jack <jack@163.com>WORKDIR /buildCOPY . /buildENV GOPROXY=https://goproxy.cn,directRUN go build -a -o basicFROM centos:latestWORKDIR /dataCOPY --from=builder /build/basic .VOLUME ["/.

2021-08-11 20:09:17 999

原创 jenkins 安装文档

jenkins 官网安装教程教程地址:https://pkg.jenkins.io/redhat-stable/安装命令:sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.keyyum install jenkinsj.

2021-08-11 20:08:34 86

原创 gitlab 安装文档

下载wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm安装yum localinstall gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm -y配置vim /etc/gitlab/gitlab.rb修改以下配置external_url 'http://192.168.136.3'puma['worker_pr.

2021-08-11 20:07:45 122

原创 docker 安装文档

1, 获取阿里云 docker仓库sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 2, 查看dokcer可安装列表yum list docker-ce --showduplicates | sort -r3, 选择最新版本安装sudo yum install docker-ce docker-ce-cli conta

2021-08-11 20:05:17 57

原创 HTTP三次握手与四次挥手

三次握手1,客户端发起建立连接(SYN)的请求2,服务端应答(ACK)客户端请求,同时发起建立连接(SYN)的请求3,客户端应答(ACK)服务端请求四次挥手1,客户端发起结束连接(FIN)的请求2,服务端应答(ACK)客户端结束连接,同时通知上层应用结束连接3,上层应用通过服务端传输完数据,发起结束连接(FIN)的请求4,客户端应答(ACK)服务端结束连接问:为什...

2020-04-29 14:51:25 177

转载 mysql 事务隔离级别

事务实现在存储引擎层,事务的隔离级别分为:读未提交(read uncommitted)、读已提交(read committed)、可重复读(repeatable read)、串行化(serializable)。mysql 默认的事务隔离级别为 可重复读(RR) 事务隔离级别越高,事务并发处理的效率越低读未提交未提交读的意思就是比如原先name的值是小刚,然后有一个事务Bupdate t...

2019-07-08 10:52:41 135

原创 CSRF 跨站请求伪造

CSRF(Cross Site Request Forgery),中文是跨站请求伪造。CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。举个列子假如A站为受信任的银行网站,其中有个银行转账的表单;B站为黑客网站,其中有个页面带有伪造A站银行转账表单提交的请求,当用户登录A站后,在...

2019-07-06 11:35:23 164

原创 文件锁

用多线程处理数据时,常常会出现数据结果不一致的情况。比如两个线程处理同一个订单赠送积分,可能会赠送两次,这时候我们希望一个订单被一个线程获取后,就不要再被其它线程处理了。我们只需要在第一个线程获取了订单信息后加一个排他锁,其它线程再去获取该订单的时候获取锁状态,如果有锁就会直接丢弃不处理,否者再去处理。锁机制根据实现方式可以分为数据库锁和文件锁1,文件锁$file = '1.lock';...

2019-06-20 09:22:34 139

原创 centos7 开放端口

firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload

2019-06-10 11:01:03 128

转载 守护进程Supervisor 安装与配置

1, Supervisor是Linux系统中常用的进程守护程序。如果队列进程queue:work意外关闭,它会自动重启启动队列进程。在Ubuntu安装Supervisor 非常简单:sudo apt-get install supervisor2, Supervisor配置文件通常存放在/etc/supervisor/conf.d目录,在该目录中,可以创建多个配置文件指示Supervisor...

2019-06-04 10:58:04 529

原创 码云webhook 文件

<?php$local = '/var/www/html/test';// 安全验证字符串,为空则不验证$api_token = '343434232323232';$admin_token = '5644564646464646';// 如果仓库目录不存在,返回错误if (!is_dir($local)) { header('HTTP/1.1 500 Inte...

2019-06-04 10:56:27 446

原创 PHP 容器

一,依赖注入 与 控制反转依赖注入与控制反转其实说的是同一种编程思想,其目的是为了解耦和。我们都知道程序耦合度越紧,在需求变更后,一个模块的修改往往会导致其他功能模块的变化,不利于后期的开发与维护。容器类class Container{ // 绑定闭包 private $binds = []; // 绑定实例 private $instances = []...

2018-11-02 17:37:49 3684

原创 RabbitMQ安装教程

RabbitMQ 官方建议通过二进制文件方式安装,在此我们使用推荐的方式安装1,导入RabbitMQ签名,使RPM组件信任安装包rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc2, 将rabbitMQ源添加到yum仓库配置文...

2018-10-16 13:50:52 444

转载 window建立软硬链接

硬链接指向的是节点,软链接指向的是路径最初的文件名与所有的硬链接地位是对等的,比如为文件a建立硬链接b、c、d。那么a、b、c、d之间只要有一个文件未删除,这个文件就可通过未删除的名称访问。你也可以认为每个文件都可认为至少有一个硬链接,就是说a也是一个硬链接。不允许给目录创建硬链接软链接特性上类似于快捷方式,比如源文件a建立软链接b、c、d。删除b、c 或 d 访问到 a,但是只要删除了a,软...

2018-10-10 11:39:40 287

原创 查找php 命令行模式与 web模式配置文件所在位置

1,查看命令行模式下加载的php配置文件php -i|findstr .ini (window)php -i|grep .ini (linux)通常为php安装目录下的php.ini文件如:D:\work\wamp\bin\php\php5.6.25\php.ini2,查看web模式下php加载的配置文件phpinfo();通常为apache目录下的php.ini文件如:...

2018-10-10 11:32:39 736

空空如也

空空如也

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

TA关注的人

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