自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白菜的专栏

我是干啥子的来,我都不知道。。

  • 博客(143)
  • 资源 (2)
  • 收藏
  • 关注

原创 2014年1月9号发布Go1.21.6并修复相关运行时以及maps克隆等问题

因为FIPS法规要求自2024年1月1日起启用TLS 1.3,go在1.21.6中决定迁移到boringcrypto的代表IPS版本并启用TLS1.3 ,所以这个功能主要为了支持TLS 1.3。Go的立场是,TLS 1.3的支持优先于此boringcrypto版本的认证。

2024-01-13 20:16:42 679

原创 Service Weaver:Google开源基于分布式应用程序开发的框架,重新定义微服务边界

今年6月,一群谷歌员工(由谷歌软件工程师Michael Whittaker领导)发表了一篇名为“Towards Modern Development of Cloud Applications”的论文。正如Whittaker等人所指出的,从架构上讲,微服务本身设置就有问题,它是一个没有边界的结构它们将逻辑边界(如何编写代码)与物理边界(如何部署代码)混为一谈。这就是问题的开始。因此,谷歌的工程师们提出了一种堪称“微服务2.0”的方法。

2024-01-06 13:10:17 1547

原创 Mac M1 Docker pull镜像报错no matching manifest for linux/arm64 in the manifest list entries

报错no matching manifest for linux/arm64/v8 in the manifest list entries原因M1芯片是arm64架构,也称作aarch64架构,只能运行arm64/aarch64架构的程序。amd64的架构,也就是Intel CPU的架构,也叫做x86_64。存在适配型问题,m1的芯片没有合适的镜像,导致了报错解决方法pull镜像的时候带上参数–platform linux/x86_64docker pull --platform li

2022-03-16 14:39:13 4145 1

原创 go get私有仓库问题集锦

未提供httpsgo env -w GOINSECURE=gitdemo.com鉴权问题get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go-get=1 verifying gitlab.com/xxx/[email protected]: gitl

2022-02-09 13:38:30 1433

原创 IntelliJ IDEA如何能够使用手动引入的第三方jar包

手动引入的第三方jar包File -> Project Structure -> Modules -> 选中要添加build path的项目 -> Dependencies -> 点击右边的小加号 -> 选择JARs or directories ->选择要添加的外部jar包。手动引入自己打的jar包...

2021-09-28 16:26:39 378

转载 阿里MVP数据库设计规范

基于阿里数据库设计规范扩展而来设计规范1.【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:不是频繁修改的字段。 不是 varchar 超长字段,更不能是 text 字段。正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存 储类目名称,避免关联查询。2.【推荐】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计2年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。3.【推荐】

2021-04-28 11:36:58 250

原创 脑图教你搞懂golang中GMP调度关系

2021-04-20 19:04:57 282

原创 常见的Tracing系统

StackDriver Trace (Google Cloud)-https://cloud.google.com/trace/ Zipkin(twitter-java) - https://github.com/openzipkin/zipkin Jaeger(uber-go) - https://www.jaegertracing.io/ Appdash(golang) https://github.com/sourcegraph/appdash X-ray(aws) https://aws.a

2021-03-18 14:28:02 249

原创 go mod报错at revision v0.0.6: unknown revision v0.0.6

mac版解决方法(windows同理)1.1 找到.gitconfigvim ~/.gitconfig1.2 增加相关标签[url "git@domain:"]insteadOf = https:/domain/domain替换成对应自己的域名如:[url "[email protected]:"]insteadOf = https:/git.baidu.com/

2021-02-04 10:06:10 2793 1

原创 go 之 Blank identifier妙用

暂时引入的包或者变量不使用如何不删除也能存在在Go中 如果导入了某个包 但是并有使用它 Go会认为这是个错误的状态 编译过不去 导入包 但是不用它 可能会出现意想不到的情况 而且给编译增加了不必要的麻烦 已经初始化过 但是没有使用的变量会浪费计算资源 并且时间久了之后 或者他人接受后 可能会不注意到这点 而导致严重的bug举例来说 在下面这段代码中 有两个导入的包 以及一个变量 没有被使用:package mainimport ( "fmt" "io")func main()

2020-12-04 16:24:23 377

原创 golang 代码检测工具之goimports

安装goimports下载包go get -g -v golang.org/x/tools/cmd/goimports生成bin包go install golang.org/x/tools/cmd/goimports配合IDE(如:以MAC goland为例)1.打开goland,打开Preferences(Command+,);2.打开tools中的File Watchers;3.添加goimports进去即可4.Apply后,ok,在goland菜单栏中找到Tool

2020-12-04 15:51:42 6012 1

原创 gin框架GetHeader报错concurrent map read and map write

一、gin框架GetHeader探究// CanonicalHeaderKey.type Header map[string][]stringfunc (h Header) Get(key string) string { return textproto.MIMEHeader(h).Get(key)}寻根我们发现GetHeader底层的数据存储在map中,就会存在并发读写map的问题二、解决方法在middleware层对数据进行预读取和存储ctx.Set("test","test"

2020-11-27 11:24:47 697 1

原创 golang查看gc是否有异常

# 一、gc分析命令```GODEBUG=gctrace=1 go run *.go```# 二、执行命令,分析内容如下```gc 1 @0.001s 13%: 0.004+2.5+0.023 ms clock, 0.019+0.18/1.7/2.3+0.094 ms cpu, 4->6->6 MB, 5 MB goal, 4 Pgc 2 @0.017s 6%: 0.002+4.1+0.020 ms clock, 0.009+0/3.4/5.6+0.0..

2020-11-24 17:29:05 451

原创 Kubernetes部署问题集锦

一、问题error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1[preflight] If you know what you are doi

2020-11-13 17:26:54 126

原创 MySql索引机制之磁盘I/O与磁盘预读

磁盘I/O与磁盘预读磁盘I/O先简单介绍一下磁盘I/O和预读,磁盘以扇区大小的块来读写数据,对扇区的访问时间主要有3个组成部分:寻道时间、旋转时间和传送时间。寻道时间为了读取某个扇区的内容,传动臂需要首先将读写头定位道包含目标扇区的磁道上,移动传动臂所需要的时间成为寻道时间。寻道时间依赖于读写头原本的位置和传动臂在磁盘上的移动速度,主流磁盘一般在3~9ms,最大寻道时间在20ms。旋转时间一旦读写头定位道了期望的磁道,驱动器等待目标扇区的第一个位旋转道读写头下,这个步骤的性能依赖于读写头到达目标

2020-10-16 16:16:24 1418

原创 数据结构相关时间复杂度和空间复杂度

一、时间复杂度和空间复杂度简介关于时间复杂度和空间复杂度的解释可以先看这篇文章:https://zhuanlan.zhihu.com/p/50479555二、跳跃表2.1 时间复杂度查找任意数据的时间复杂度为O(logn)插入的时间复杂度 O(logn)删除操作时间复杂 O(logn)2.2 空间复杂度空间复杂度为O(n)...

2020-08-29 21:54:36 118

原创 【leetcode算法题】消失的数字,异或解法

一、题目数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?二、分析2.1 异或规则A.1^0=1B.1^1=0C.1^2^2=12.2 题目分析根据规则我们来看一下[3,0,1]这个数组,分析一下看看如何做?我们的目旳是得到2.如何得到它呢?根据异或规则C,我们需要跟【0,1,2,3】 4个数做异或最后方能得到2?2.2.1 得到3的方法arr = [3,0,1]num = count(arr)2.2.2 得到【0,

2020-08-16 21:55:35 554

转载 HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

一、HTTP的历史早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但是到了 WEB2.0 以来,我们的页面变得复杂,不仅仅单纯的是一些简单的文字和图片,同时我们的 HTML 页面有了 CSS,Javascript,来丰富我们的页面展示,当 ajax 的出现,我们又多了一种向服务器端获取数据的方法,这些其实都是基于 HTTP

2020-08-03 18:01:51 398

原创 nginx+php环境访问显示access denied

解决方案将php.ini中cgi.fix_pathinfo从0改为1。

2020-07-07 15:43:42 2052

原创 深入解析gin框架路由设计

一、概述很多人都熟悉gin框架,但是很多人并没有更深层次的挖掘gin的路由设计。web框架的核心是什么?一个就是路由,所以想更深的了解这个框架,首先就要去深入了解gin框架的路由。二、源码2.1 Engine结构体type Engine struct { RouterGroup //定义了 GET,POST 等路由注册方法 ... trees methodTrees //路由逻辑 ...}2.2 treestype methodTrees

2020-06-09 20:22:40 1720 3

原创 leetcode算法题解法

一、动态规划

2020-06-05 18:53:46 148

原创 go mod问题解决

问题一go list -m: can't compute 'all' using the vendor directory (Use -mod=mod or -mod=readonly to bypass.)解决方法:目前根据提示,我们需要删除代码库下vendor目录才能解决问题rm -rf vendor问题二https://goproxy.cn,direc...

2020-06-01 14:44:49 5883 1

原创 golang版ip2long

func Ip2long(ipstr string) (ip uint32) { r := `^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})` reg, err := regexp.Compile(r) if err != nil { return } ips := reg.FindStringSubmatch(ipstr) if ips == nil { return }

2020-05-25 17:51:39 400

原创 golang gin框架学习

书单基础

2020-05-25 11:15:59 128

转载 golang阅读清单

Go 阅读清单此项目是一份关于Go的中文博客文章的阅读列表。 灵感来源于:gopher-reading-list。如果有新的文章也欢迎提交PR或issue。此项目只包含文章标题和链接,不会转载文章内容。由于能力、精力有限,提交的文章可能无法一一甄别,对于文章中有遗漏或笔误的地方,可以发起issue讨论。为避免列表过大,对于系列文章,建议只提交系列文章的目录。此列表将分为以下几个部分:基础基础代码组织与风格Web并发Go Modules中级代码设计并发测试Web工

2020-05-19 21:01:10 178

原创 golang面试专栏

一、Golang调度器GMP原理与调度全分析二、Golang多线程安全三、golang 上下文包作用四、

2020-05-12 10:57:19 218

转载 性能监控的95分位值含义以及意义

真实数据最近优化有了一些效果,就正好借着具体的实例数据来看看95分位值的意义。看下面一张图:性能平均值:95分位值举例收集100个数据,从小到大排列,95分位值就是取出第95个用户的数据做统计。 50分位值就是第50个人的数据。95分位值意义第一点: 从上面图中可以看出,在性能统计中,95分位值的波动最明显,能够放大问题。平均值,50分位值的图形如果不是特别关注,波动其实并不明显。第二点: 从高T们的历史经验看,如果能够保证95分位值的稳定性,就能很好的体现系统的稳定性。...

2020-05-08 20:09:46 9243

原创 go好用的命令汇总

一、单测测试单个方法go test -v -run=TestDemo二、生成linux下可执行的bin包CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o bin/demo_go app/main.go三、grpc相关proto协议生成clientprotoc -I app/api/proto app/api/proto/*.pr...

2020-04-24 14:15:15 161

原创 Go Channel 面试题解析

有一道这样的面试题目:写代码实现两个 goroutine,其中一个产生随机数并写入到 go channel 中,另外一个从 channel 中读取数字并打印到标准输出。最终输出五个随机数。解决思路:package mainimport ( "fmt" "math/rand" "sync")func main() { output := make(chan int) va...

2020-04-23 21:57:47 1626

原创 go协程并发问题concurrent map read and map write

最近协程并发写map导致错误:concurrent map read and map write。直接把服务干挂了。原因:加锁锁相关详解请参考:https://blog.csdn.net/zf766045962/article/details/105431908type Demo struct{ Lock sync.RwMutex}go func() { d.Lock...

2020-04-22 22:17:19 3396

转载 golang锁知识之 sync.Mutex 和 sync.RWMutex

当我们的程序就一个线程的时候是不需要用到锁的,但是通常我们实际的代码不会是单个线程的,所有这个时候就需要用到锁了,那么关于锁的使用场景主要涉及到哪些呢?当我们多个线程在读相同的数据的时候则是需要加锁的当我们的程序既有读又有写的时候更是需要加锁的当我们有多个线程在写的时候同样也是需要加锁互斥锁互斥锁:同一个时刻只有一个线程能够拿到锁我们先通过一个例子来演示,如果当多个线程同时更改一个...

2020-04-10 13:52:18 621

原创 golang库之copier

github地址https://github.com/jinzhu/copier简介调用同名方法为字段赋值;以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情);将切片赋值给切片(可以是不同类型哦);将结构体追加到切片中。使用package mainimport ( "fmt" "github.com/jinzhu/copier"...

2020-04-04 08:22:33 2691

原创 golang之float类型保留小数点后2位

value, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", 0.2223), 64) fmt.print(value)

2020-04-04 08:18:15 14984 1

原创 golang之int、int6、float32、float64、string之间互转

package mainimport ( "fmt" "strconv")func main() { string := "123" int, err := strconv.Atoi(string) if err != nil { } //string到int64 int64, err := strconv.ParseInt(string, 10, 64) ...

2020-03-25 19:35:09 9836

原创 golang相关proto协议

protoc -I app/api/proto app/api/proto/*.proto --go_out=plugins=grpc:app/api/proto/

2020-03-24 20:42:01 414

原创 golang之crc32算法解密字符串

根据实验我们知道crc32算法比md5算法快4倍左右,所以研究了下golang的crc32的解密。package mainimport ( "fmt" "hash/crc32")func main() { intValue :=getIntvalKey("Hello,World!") fmt.Print(intValue)}func getIntvalKey(strKe...

2020-03-14 11:17:42 1643

原创 字符串哈希算法——BKDRHash之golang实现

package mainimport "fmt"func main() { hashValue := BKDRHash("Hello,World!") fmt.Print(hashValue)}func BKDRHash(str string) uint64 { seed := uint64(131) // 31 131 1313 13131 131313 etc.. has...

2020-03-14 10:41:28 1570 1

原创 Git忽略规则和.gitignore规则不生效的解决办法

Git忽略规则:在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如果没有这个文件,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如:# temp ignore*.log.idea# system ignore.DS_StoreThumbs.db.gitignore规则不生效的解决办法把某些目录...

2020-03-09 15:16:10 186

原创 Charles HTTPS抓包设置教程

安装根证书,选择Charles菜单Help->SSL Proxying->Install Charles Root Certificate,这样系统会自动安装根证书到电脑上,如图:根证书安装完毕后,到Keychain Access设置证书访问权限为“Always Trust”,如图:如果需要iOS模拟器抓包支持,需要安装iOS模拟器证书,选择Charles菜单Help-&gt...

2019-07-13 11:41:28 1434

转载 解决ssh_exchange_identification:read connection reset by peer 原因

服务器改了密码,试过密码多次后出现ssh_exchange_identification: read: Connection reset by peer可以通过ssh -v查看连接时详情OpenSSH_6.6.1, OpenSSL 1.0.1k-fips 8 Jan 2015debug1: Reading configuration data /etc/ssh/ssh_configde...

2019-06-22 21:26:24 11557

loadrunner11破解详解和安装详解

本文件详细讲解了loadrunner11的安装、以及lr11的破解,以及破解所取的文件。。

2011-09-22

人工智能习题答案(第2版) 王士同 主编

这里面包含了书后的所有习题,只有个别个么有答案

2010-06-08

空空如也

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

TA关注的人

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