12 2020 档案

go学习笔记 grpc-gateway和swagger
摘要:有关GPRC 的创建 大家 请参考 go学习笔记 Windows Go 1.15 以上版本的 GRPC 通信【自签CA和双向认证】,本文同样会用上文创建的证书。【注意我的环境是win7+go1.15.6】 1:将REST注释添加到API定义,我们必须安装grpc-gateway和swagger文档生 阅读全文

posted @ 2020-12-31 21:52 dz45693 阅读(3218) 评论(0) 推荐(0) 编辑

go学习笔记 http2.0使用【SAN 和双向认证】以及dotnetcore5.0的调用
摘要:简单说一下我的环境 win7+go1.15.6,GO1.15 X509 不能用了 ,需要用到SAN证书, 证书 需要用到SAN证书,下面就介绍一下SAN证书生成。首先需要下载 OpenSSL http://slproweb.com/products/Win32OpenSSL.html 第1步:生成 阅读全文

posted @ 2020-12-30 19:13 dz45693 阅读(2564) 评论(0) 推荐(0) 编辑

go学习笔记 Windows Go 1.15 以上版本的 GRPC 通信【自签CA和双向认证】
摘要:简单说一下我的环境 win7+go1.15.6,GO1.15 X509 不能用了 , 证书 需要用到SAN证书,下面就介绍一下SAN证书生成。首先需要下载 OpenSSL http://slproweb.com/products/Win32OpenSSL.html 第1步:生成 CA 根证书 ope 阅读全文

posted @ 2020-12-30 17:18 dz45693 阅读(1600) 评论(0) 推荐(0) 编辑

Go学习笔记 由数组和切片 引发的值类型和引用类型的思考
摘要:先看如下代码, 看看运行结果如何: func main() { var c = [3]int{1, 2, 3} //定义一个长度为3的int类型的数组 d := c //将数组c赋值给d d[1] = 100 //修改数组d中索引为1的值为100 fmt.Printf("c的值是%v,c的内存地址是 阅读全文

posted @ 2020-12-30 10:02 dz45693 阅读(1354) 评论(0) 推荐(0) 编辑

golang 使用pprof和go-torch做性能分析
摘要:软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。pprof有两个包用来分 阅读全文

posted @ 2020-12-29 18:10 dz45693 阅读(1452) 评论(0) 推荐(0) 编辑

go学习笔记 禁止拷贝noCopy
摘要:go中的copy,一般习惯来讲都是值拷贝,但是这种拷贝存在的问题是锁对象的“失效”,Go中没有原生的禁止拷贝的方式,所以如果有的结构体,你希望使用者无法拷贝,只能指针传递保证全局唯一的话,可以这么干,定义 一个结构体叫 noCopy ,要实现 sync.Locker 这个接口[我也是看锁的源码 里面 阅读全文

posted @ 2020-12-28 18:54 dz45693 阅读(1245) 评论(0) 推荐(0) 编辑

go学习笔记 sync/Cond源码
摘要:ond需要指定一个Locker,通常是一个*Mutex或*RWMutex。 func (c *Cond) Broadcast() 和 func (c *Cond) Signal() 唤醒因wait condition而挂起goroutine,区别是Signal只唤醒一个,而Broadcast唤醒所有 阅读全文

posted @ 2020-12-28 16:23 dz45693 阅读(1199) 评论(0) 推荐(0) 编辑

go学习笔记 sync/once源码 和 sync/WaitGroup源码
摘要:sync.Once.Do(f func())是一个挺有趣的东西,能保证once只执行一次,无论你是否更换once.Do(xx)这里的方法,这个sync.Once块只会执行一次。 package sync import ( "sync/atomic" ) // Once is an object th 阅读全文

posted @ 2020-12-28 14:43 dz45693 阅读(1165) 评论(0) 推荐(0) 编辑

go学习笔记 sync/RWMutex源码
摘要:RWMutex是一个读写锁,该锁可以加多个读锁或者一个写锁,其经常用于读次数远远多于写次数的场景.func (rw *RWMutex) Lock() 写锁,如果在添加写锁之前已经有其他的读锁和写锁,则lock就会阻塞直到该锁可用,为确保该锁最终可用,已阻塞的 Lock 调用会从获得的锁中排除新的读取 阅读全文

posted @ 2020-12-28 13:47 dz45693 阅读(1118) 评论(0) 推荐(0) 编辑

go学习笔记 sync/mutex源码
摘要:Mutex 是一个互斥锁,可以创建为其他结构体的字段;零值为解锁状态。Mutex 类型的锁和线程无关,可以由不同的线程加锁和解锁。 在一个goroutine获得 Mutex 后,其他goroutine只能等到这个goroutine释放该Mutex使用Lock() 加锁后,不能再继续对其加锁,直到利用 阅读全文

posted @ 2020-12-28 11:38 dz45693 阅读(1138) 评论(0) 推荐(0) 编辑

go学习笔记 Go的sync.Pool源码
摘要:Pool介绍# 总所周知Go 是一个自动垃圾回收的编程语言,采用三色并发标记算法标记对象并回收。如果你想使用 Go 开发一个高性能的应用程序的话,就必须考虑垃圾回收给性能带来的影响。因为Go 在垃圾回收的时候会有一个STW(stop-the-world,程序暂停)的时间,并且如果对象太多,做标记也需 阅读全文

posted @ 2020-12-28 09:50 dz45693 阅读(1214) 评论(0) 推荐(0) 编辑

go CBC 加密【AES 和DES的运用】
摘要:关于AES cbc的加密 在go AES 加密 和解密已经调到了, 这次主要涉及的内同时cbc 和ecb,刚好网上也有相应的说明, 我就一起整理一下 DES是以64比特的明文为一个单位来进行加密,并生成64比特的密文。由于它每次只能处理特定长度的一块数据,所以DES属于分组密码算法。cypto/de 阅读全文

posted @ 2020-12-25 20:40 dz45693 阅读(3005) 评论(0) 推荐(0) 编辑

使用Redis的SET实现锁机制【C# &Go&Python实现】
摘要:其实网上正确地使用Redis的SETNX实现锁机制 和 高并发1-Redis分布式锁setnx,setex连用 说的都对,只是现在的redis做了很多优化比如现在的Set 指令如下 set key value [EX seconds] [PX milliseconds] [NX|XX] EX sec 阅读全文

posted @ 2020-12-25 17:23 dz45693 阅读(1494) 评论(0) 推荐(0) 编辑

go activeMQ的简单封装
摘要:虽然个人也不怎么推荐activeMQ, 只是由于项目需要, 所以也做一个简单的整理, 在订阅的时候 ,一般我们的业务都是处理字符串,但有时候AckMode 设置为AckAuto不可以,客服端处理完业务后在发回确认,所以订阅封装了2个方法 utils.go如下: //Usage: // // //Se 阅读全文

posted @ 2020-12-24 18:34 dz45693 阅读(1403) 评论(0) 推荐(0) 编辑

dotnetcore5.0 session redis 使用 是否有阻塞
摘要:今天来尝试一下dotnetcore5.0 的session redis的用法, 顺便看看你是否有阻塞,在我以前的文章 你的项目真的需要Session吗?redis保存session性能怎么样? 和 asp.net mvc Session RedisSessionStateProvider锁的实现 有 阅读全文

posted @ 2020-12-24 08:43 dz45693 阅读(1211) 评论(0) 推荐(0) 编辑

beego Session redis源码解读
摘要:在文章beego Session redis存储以及是否阻塞 我们说到session 是无阻塞的,session的接口对用户来说是一个字典(C# diction, Go是map), 存储所有的ssion也是一个字典(类似于C# Dictionary<string【sessionid 用于区分用户】, 阅读全文

posted @ 2020-12-23 20:27 dz45693 阅读(1247) 评论(0) 推荐(0) 编辑

go的字符操作strings和strconv
摘要:在任何语言中字符串操作都是非常频繁的,那么go中主要用strings和strconv, 他们的主要api有哪些了 strings strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 。 strings.HasSuffix 阅读全文

posted @ 2020-12-23 13:28 dz45693 阅读(1176) 评论(0) 推荐(0) 编辑

在VS Code中配置GO开发环境并调试
摘要:1.安装Go 和VScode, 2.配置环境变量GOPATH 确保go root 和go path在系统变量path里面 ​ 3.VScode设置goroot 和gopath 下载一些必要的包 由于网络原因请设置代理 go env -w GO111MODULE=on go env -w GOPROX 阅读全文

posted @ 2020-12-23 11:48 dz45693 阅读(4866) 评论(0) 推荐(0) 编辑

go文件操作实践[读写zip tar xlsx文件]
摘要:这篇我接着实践zip,tar和xlsx文件的读写操作。简单介绍一下 tar吧: tar 是一种打包格式,但不对文件进行压缩,所以打包后的文档一般远远大于 zip 和 tar.gz,因为不需要压缩的原因,所以打包的速度是非常快的,打包时 CPU 占用率也很低。tar 的目的在于方便文件的管理,比如在我 阅读全文

posted @ 2020-12-23 10:30 dz45693 阅读(1257) 评论(0) 推荐(0) 编辑

go 文件操作实践[读写json xlm gob txt]
摘要:go常用操作文件有json,xml, gob 和txt,一般json,xml, gob 都是全部操作 很少修改一个部分快的内容, 所以一般采用 编码、解码实现,txt可能有追加所以相对难一点。 说说自己遇到的坑 1.验证文件或者目录是否存在 // 检查文件或目录是否存在 // 如果由 filenam 阅读全文

posted @ 2020-12-22 20:29 dz45693 阅读(1161) 评论(0) 推荐(0) 编辑

go inject 实践
摘要:nject 是依赖注入的Go语言实现,它能在运行时注入参数,调用方法,是 Martini 框架(Go语言中著名的 Web 框架)的基础核心。 demo1: package main import ( "fmt" "github.com/codegangsta/inject" ) type S1 in 阅读全文

posted @ 2020-12-22 17:03 dz45693 阅读(1224) 评论(0) 推荐(0) 编辑

go的反射reflect
摘要:我们项目中反射一般是在特定场合获取对象的信息, 然后动态调用对象方法 或者修改对象的属性,但是go里面还有指针【地址】一说法, 来看看是怎么用的 package main import ( "fmt" "reflect" ) func main() { var x float64 = 3.4 p : 阅读全文

posted @ 2020-12-22 15:13 dz45693 阅读(1082) 评论(0) 推荐(0) 编辑

go goroutine channel 和C# Task BlockingCollection 以及python该如何实现
摘要:首先说结论吧,个人感觉go的goroutine 和C# 的Task 相似,goroutine 和Task 可以近似理解为逻辑线程, 至于多个goroutine 或Task 对应操作系统几个物理线程 是底层决定的,我们可以不用太关心;但是一定是多对多【这个我们可以简单理解多对一, 一个或多个gorou 阅读全文

posted @ 2020-12-22 11:12 dz45693 阅读(1192) 评论(0) 推荐(0) 编辑

beego redis作为缓存
摘要:用redis来作为cach其实官网已经很详细了https://beego.me/docs/module/cache.md,只是我一般喜欢封装成通用方法直接上代码吧 redis.go作为通用工具类: package redis import ( "fmt" "time" "github.com/ast 阅读全文

posted @ 2020-12-20 17:12 dz45693 阅读(2382) 评论(0) 推荐(0) 编辑

beego Session redis存储以及是否阻塞
摘要:其实官网的讲解已经很详细了, 我这里只是演练一下,https://beego.me/docs/mvc/controller/session.md;分两部分1, 是redis session的使用,2是看看redis session 是否和其他语言一样 都阻塞 使用 1.首先需要在配置文件app.co 阅读全文

posted @ 2020-12-20 15:30 dz45693 阅读(1399) 评论(0) 推荐(0) 编辑

Beego generate自动生成代码 以及注解路由 @router
摘要:.使用bee generate 自动生成代码 bee generate scaffold user -fields="id:int64,name:string,gender:int,age:int" -driver=mysql -conn="root:123456@tcp(127.0.0.1:330 阅读全文

posted @ 2020-12-20 15:24 dz45693 阅读(3044) 评论(0) 推荐(0) 编辑

bee go用base64Captcha生成base64的验证码
摘要:废话不多说 直接 上代码:login.go package controllers import ( "fmt" "strings" "github.com/astaxie/beego" "github.com/mojocn/base64Captcha" ) var store = base64Ca 阅读全文

posted @ 2020-12-20 15:17 dz45693 阅读(2046) 评论(0) 推荐(0) 编辑

go rsa加密和解密 签名和验证
摘要:网上关于rsa的用法很多,尤其是 https://cloud.tencent.com/developer/section/1140761,但是上面的例子不全面 package utils import ( "bytes" "crypto" "crypto/rand" "crypto/rsa" "cr 阅读全文

posted @ 2020-12-20 15:15 dz45693 阅读(2533) 评论(0) 推荐(0) 编辑

go AES 加密 和解密
摘要:其实网上关于aes加密和解密的文章很多,尤其是 https://cloud.tencent.com/developer/section/1140748, 只是我个人喜欢用字符串形式,所以整理了一下: package utils import ( "crypto/aes" "crypto/cipher 阅读全文

posted @ 2020-12-20 15:14 dz45693 阅读(4154) 评论(0) 推荐(0) 编辑

beego XSRF
摘要:其实官网的介绍已经很详细了https://beego.me/docs/mvc/controller/xsrf.md, 我这里自己做一个demo来演练一下 srf(跨站请求伪造)防护: 定义:每个用户一个cookie,所有的请求都需要验证这个cookie,如果没有这个cookie,则被认为跨站请求伪造 阅读全文

posted @ 2020-12-20 15:11 dz45693 阅读(1316) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示