自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(227)
  • 资源 (2)
  • 收藏
  • 关注

原创 golang开发工具总结(持续中)

golang 开发 工具

2021-08-25 09:43:11 2779

原创 k8s随手记

1、k8s强制删除namesapce问题描述:当一个namesapce中有资源没有删除干净的时候,使用 kubectl delete ns xxx 会出现xxxnamespace是“Teminating”状态而无法根除。解决:k8S如何强制删除namespace

2021-07-29 11:18:22 96

原创 mysql与redis双写一致性

一、起因redis缓存由于其高并发和高性能的特性,已经在项目中被广泛使用,在读取缓存方面,目前大家都是按下图的方案进行业务操作的这时候问题就来了,在更新缓存的时候,对于更新完数据库,是更新缓存呢?还是删除缓存呢,又或者是先删除缓存,再更新数据库,其实是可以讨论一番的。下面将从三个方面讨论,分别是缓存更新策略,每种策略的优缺点分析,针对优缺点的改进方案二、什么是一致性方案从理论上来讲,给缓...

2019-08-13 19:46:09 1613

原创 mysql常用操作记录

1,删除多个重复字段的数据。

2023-01-16 15:46:24 377

原创 k8s中限制不同命名空间下的pod之间的网络策略

定制一个名为np的新NetworkPolicy,限制Namespace space1中的所有Pod只能向Namespace space2中的Pod发出流量。定制一个名为np的新NetworkPolicy,限制Namespace space2中的所有Pod只能从Namespace space1中的Pod传入流量。通过定制NetworkPolicy,限制不同命名空间下的pod之间的网络策略。创建space2下的np,定制入口流量,只接收处理space1下的请求。...

2022-08-09 18:13:35 396

原创 Linux内核优化的一些配置

参考:linux中高并发socket最大连接数的优化详解内核参数修改文件一:/etc/security/limits.conf优化方向:修改最大打开文件数文件二:/etc/sysctl.conf优化方向:1、修改网络内核对TCP连接的本地端口范围限制2、增加打开的最大文件数3、启用TCP窗口伸缩4、关闭SYN-flood的保护5、增加cpu处理前在网卡中排队的数据包的数量6、增加 挤压socket套接字的数量7、TCP内存优化8、增加在被内核处理前被 block的包的数量9、TCP只能

2022-06-30 10:48:59 116

原创 docker事件event查看筛选

docker 查看容器事件

2022-06-29 10:58:47 297

转载 golang json tag 中的 “omitempty“

omitempty

2022-01-29 10:42:13 558

转载 laradock mac m1 fail to build mysql - Dockerfile

m1 mac 构建mysql docker报错failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: no match for platform in manifest sha256:f2ad209efe9c67104167fc609cca6973c8422939491c9345270175a300419f94

2022-01-18 09:32:20 480

原创 kafka的搭建

kafka的搭建一、kafka介绍kafka 是一个分布式数据流平台,可以运行在单台服务器上,也可以在多台服务器上部署形成集群。他提供了发布和订阅功能,使用者可以发送数据到kafka中,也可以从kafka中读取数据,以便进行后续的处理,kafka具有高吞吐,低延迟,高容错等特点kafka cluster: kafka集群,一台或多台服务器组成Broker:Broker是指部署了kafka实例的服务器节点,每个服务器上有一个或多个kafka的实例,姑且认为每个broker对应一台服务器,每个kafk

2021-11-22 23:33:24 3134

原创 Grpc-go实践

Grpc-go实践上手项目文件目录── client│ └── grpc_client.go├── pb│ └── hello.pb.go├── proto│ └── hello.proto└── server├── greeter│ └── grpc_server.go└── main.go1、编写proto文件(对大小写不敏感,会自动转换)syntax = "proto3";package trip;option go_package="github.c

2021-09-12 13:07:40 156

原创 unsafe

unsafe高效转换string和slice参考一、string与[]byte的如何高效转换a:="hello world"b:= []byte(a)string的内存布局:data+lenslice的内存布局:data+len+cap二者都是由一个底层数组储存变量数据,而类型本身只记录这个数组的起始位置。如果采用强制类型转换的方式把a转为b,那么就会重新分配b使用的底层数组,然后把a的底层数组拷贝到b的底层数组,如果字符串内容很多,既费时也浪费内存方案一:unsafe指针类型转换un

2021-09-11 18:01:56 87

原创 Golang map十问

1、map的底层底层数据结构:哈希表2、map是否可比较不可以,go中的map,slice,函数值都是不可比较的;其中,map[Key]value中的key必须是可比较的,也就是可以通过 ==或!=操作符进行比较,value的值类型无所谓3、删除一个不存在的key会panic吗?不会,相当于delete()没生效4、对不存在的key取值会发生什么?对不存在key取值,得到类型零值5、map中的value是可以被寻址的吗?不可寻址,对于x=y的赋值操作必须要知道x的地址,所以type M

2021-09-10 15:05:35 97

原创 结合consul和grpc手动实现一个负载均衡算法(随机,轮询)

结合consul和grpc手动实现一个负载均衡算法(随机,轮询)参考方案:一、程序结构---balance ---balance.go ---instance.go ---mgr.go ---random.go ---roudrobin.go二、代码实现Balance.gopackage balancetype Balancer interface { DoBalance([]*Instance, ...string) (*Instance, error)}Inst

2021-09-04 17:47:57 169

原创 consul集群的搭建(开发测试)

搭建consul集群参考:微服务-如何做好集群中服务器的负载均衡用consul做grpc的服务发现一、架构设计集群采取3个服务端和若干客户端的方案,客户端的数量跟具体的Ai应用数量对应,部署的时候,客户端和AI应用在同一个docker镜像二、启动三个server集群Server1 docker run --rm -d -p 8500:8500 -p8300:8300 -p8301:8301 -p8302:8302 -p8600:8600 -e CONSUL_BIND_INTERFACE='

2021-09-04 17:46:13 106

原创 Mac上consul的使用

consul使用一、consul是什么解决微服务中的服务的发现,识别和管理问题。具体来说:当服务上线时,服务提供者将自己的服务注册信息注册到某个专门的框架中,并通过心跳维持长链接,实时更新链接信息。服务调用者通过服务管理框架进行寻址,根据特定的算法,找到对应的服务,或者将服务的注册信息缓存到本地,这样提高性能,当服务下线时,服务管理框架会发送服务下线的通知给其他服务。常见的服务管理框架有:zookeeper,etcd,consul等**etcd:**一个高可用、分布式、一致性、key-value

2021-09-04 17:42:50 502

原创 protobuffer在go中的使用

protobuffer在go中的使用一、采用go mod创建go项目mkdir protobuf-gocd protobug-gogo mod init github.com/bobwanglong/protobuf-go二、安装相关依赖go get -u github.com/golang/protobuf/protoc-gen-gotouch main.go三、创建过程# 创建src文件mkdir srccd src# 创建first文件mkdir firstcd fi

2021-09-04 17:40:22 204

原创 gin框架结合grpc

一、创建mkdir grpc-go-clientcd grpc-go-clientgo mod grpc-go-client# 下载并安装gingo get -u github.com/gin-gonic/gin二、创建main.go文件Main.gopackage mainimport ( "fmt" "net/http" "github.com/gin-gonic/gin")func main(){ r := gin.Default() // 测试一个get请求

2021-09-04 17:27:09 3681

原创 Go tool使用记录

Go tool使用记录1、tracehttps://mp.weixin.qq.com/s/ugXT_l-fNHEGANoLvirRLA示例程序package mainimport ( "os" "runtime/trace")func main() { trace.Start(os.Stderr) defer trace.Stop() var ch1 = make(chan string) go func() { ch1 <- "hello world" }()

2021-09-01 14:53:47 124

原创 go监听系统文件变动--fsnotify包的使用

Go 的 fsnotify 的使用简单介绍一下go中监控文件发生变动的fsnotify包的使用1、上手使用mynotify.go逻辑:使用fsnotify包创建一个“监听器”设置要监听的文件目录package mainimport ( "log" "github.com/fsnotify/fsnotify")func main() { // 创建文件/目录监听器 watcher, err := fsnotify.NewWatcher() if

2021-08-24 09:37:15 1381

原创 golang中的nil

结论:1、nil不是golang的关键字,可以进行赋值操作。但是不建议2、nil标识符是没有类型的,所以==对于nil来说是一种未定义的操作,不可以进行比较,而这个在python中是可以比较的,在 python 中,两个None 值永远相等3、同类型的nil比较中,指针类型nil、channel类型的nil、interface类型可以相互比较,而func类型、map类型、slice类型只能与nil标识符比较,两个类型相互比较是不合法的。4、不同类型的nil比较:指针类型和channel类型与接口类型

2021-08-23 10:45:21 675

原创 Istio&&kiali安装

Istio&&kiali安装1、采用kubectl安装代码仓库:https://github.com/bobwanglong/istio克隆仓库到本地,进入istio文件夹,执行kubectl apply -f .2、安装完毕后,我们就可以通过命名空间 istio-system 来查看 Istio 是否安装成功。kubectl get all -n istio-system3、开启sidecarkubectl label ns default istio-injectio

2021-07-29 11:25:10 404 1

原创 golang时间戳转换

golang时间戳转换1、获取当前的时间// unix 时间fmt.Println(time.Now().Unix())// 格式化const baseFormat = "2006-01-02 15:04:05"fmt.Println(time.Now().Format(baseFormat)) 2、时间戳转换var date int64= 1257894000t := time.Unix(date, 0)fmt.Println(t.Format(baseFormat))3、时

2021-07-20 15:30:58 531

原创 关于磁盘挂载的操作

关于磁盘挂载的操作1、查看挂载情况df -hroot@kube-master:~# df -hFilesystem Size Used Avail Use% Mounted onudev 16G 0 16G 0% /devtmpfs 3.2G 7.5M 3.2G 1% /run/dev/vda1

2021-04-09 15:35:49 1644

原创 docker安装7.11.1 elasticsearch和kibana简单上手

docker安装elasticsearch和kibana注意:本方案没有持久化,切勿用于生产环境1、拉取镜像 docker pull elasticsearch:7.11.12、启动docker run -it --rm --name es -p9200:9200 -p9300:9300 -e "discovery.type=single-node" -d bc3d45eba3613、进入容器修改配置docker exec -it es /bin/bashcd /usr/share/

2021-03-17 23:00:15 469

原创 gin框架结合zap记录项目报错的错误详情

日志的记录1、官方的方式func main() { // log gin.DisableConsoleColor() f, _ := os.Create("logs/gin.log") gin.DefaultWriter = io.MultiWriter(f,os.Stdout) r := gin.Default() r.GET("/hello",sayHi) r.GET("/bye",sayBye) err :=r.Run() if err !=nil{ log.Fatal(

2021-02-18 22:53:25 664

原创 将终端信息输出到文件

举例:python启动一个Django项目nohup python manage.py runserver 0.0.0.0:11013 >../logs/gender_age.log 2>&1 &说明:将终端打印的信息输出到上层logs文件夹的gender_age.log文件

2021-02-03 15:12:52 260

原创 mac golang 报错runtime/cgo: macro expansion producing ‘defined‘ has undefined behavior

查看此issue解决:修改go env在env 中添加CGO_CPPFLAGS=-Wno-error -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-builtin-requires-header

2020-12-28 17:48:03 784

原创 golang实现最短Hamilton路径算法

题目给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。输出格式输出一个整数,表示最短Hamilton路径的长

2020-12-14 15:55:57 170

原创 shell脚本的使用记录本(随用随记)

关于shell脚本使用记录1、脚本开头的声明#!bin/bash2、sh 启动和 ./ 启动的区别当脚本中有source 指令时sh start.sh会报错source: not found改为 ./start.sh 后会报 权限不足# 用命令chmod 修改一下bin目录下的.sh权限就可以了chmod u+x *.sh# 再执行 ./start.sh还有一种解释时说,sh中不包含 source指令,所以可以使用bash则变为sudo bash start.sh..

2020-12-07 18:04:52 122

原创 docker 删除依赖的父镜像的命令

参考命令: docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=4de0fead722353)since后跟你要删除的镜像ID

2020-12-07 11:35:15 969

原创 动态规划DP之整数划分golang

题干一个正整数n可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数n的一种划分。现在给定一个正整数n,请你求出n共有多少种不同的划分方法。输入格式共一行,包含一个整数n。输出格式共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对109+7取模。数据范围1≤n≤1000输入样例:5输出样例:7package mainimport "fmt"//方法1//状态描述:/

2020-11-24 17:04:18 145

原创 golang实现prim算法,计算最小生成树

golang实现prim算法,计算最小生成树1、题目描述给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。输入格式第一行包含两个整数n和m。接下来m行

2020-11-12 00:18:12 372

原创 go实现Dijkstra堆优化版求单源最短路算法

##go实现题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出-1。数据范围1≤n,m≤1.5×105,图中涉及边长均不小于0,且不超过10000。输入样例:3 31 2 22 3 11

2020-11-05 00:32:14 369

原创 golang算法:有向图的拓扑序列

题目描述给定一个n个点m条边的有向图,点的编号是1到n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出-1。若一个由图中所有点构成的序列A满足:对于图中的每条边(x, y),x在A中都出现在y之前,则称A是该图的一个拓扑序列。输入格式第一行包含两个整数n和m接下来m行,每行包含两个整数x和y,表示存在一条从点x到点y的有向边(x, y)。输出格式共一行,如果存在拓扑序列,则输出拓扑序列。否则输出-1。数据范围1≤n,m≤105输入样例:1 2

2020-10-29 18:38:25 479

原创 golang实现字符串哈希md

golang实现字符串哈希算法题目给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数n和m,表示字符串长度和询问次数。第二行包含一个长度为n的字符串,字符串中只包含大小写英文字母和数字。接下来m行,每行包含四个整数l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从1开始编号。输出格式

2020-10-22 11:23:23 1749

原创 go手动实现哈希表

go手动实现哈希表原理作用哈希表的作用就是将一个较大范围或者较复杂的数据映射到一个较小的数据(0~N)哈希算法1、取模,x % y ,y一般取值为质数,并且要尽可能的离2的整次幂远,这样取值,发生冲突的概率最小2、解决冲突,通常有两种方法,拉链法和开放寻址法方法题目:维护一个集合,支持如下几种操作:“I x”,插入一个数x;“Q x”,询问数x是否在集合中出现过;现在要进行N次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数N,表示操作数量。接下来N行,每行包含

2020-10-16 00:00:47 534

原创 go的取模运算小tips

golang的取模运算go的取模运算不同于python,而是和c++相同,如果是正数就正常操作,如果是负数的取模运算,则需要特别注意,必须(k%n+n)%nc:=2%3 //2d:=(-10%3+3)%3//2dd :=-2%3 //-2 错误

2020-09-27 09:59:10 4728

原创 记录go语言使用var和:= 的小区别

直接看代码func main(){var ff []intf:=[]int{}fmt.Println(ff==nil) // truefmt.Println(len(ff),cap(ff)) //0 0fmt.Println(f==nil) //falsefmt.Println(len(f),cap(f)) //0 0}输出:true0 00 0false

2020-09-14 11:12:15 297

原创 MySQL底层理解(一‘)

MySQL底层理解MySQL基础架构1、Server层和存储引擎层各是什么作用,MySQL的框架有几个组件, 各是什么作用?整体分为server层和存储引擎层两个部分server层包括:连接器:客户端与之连接,获取权限、维持和管理连接。连接命令为mysql -h$ip -P$port -u$user -p,输完命令后会要求你输出密码,密码也可以直接跟在-p后面,但是不安全。一个用户连接成功后,管理员对该用户更改权限,生效在下次连接时。show processlist查看空闲连接,如果Comm

2020-08-11 17:36:41 230

Navicat Premium 12.0.12 汉化文件 2.zip

12.0.12版本navicat汉化包及汉化指南,配合上个mac os版本的navicat食用

2019-05-29

Navicat Premium_12.0.12_xclient.info.dmg

Mac os Mojave 10.14版本下安装navicat,汉化,可用

2019-05-29

空空如也

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

TA关注的人

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