热重启方式 使用负载均衡等技术分批次灰度机器 使用fork系统调用来实现平滑重启 go的平滑重启实现 具体原理就是子进程与父进程共享文件描述符,当开启子进程时文件描述符引用计数增加,父进程结束了引用计数减...
go
go框架之gin上传文件
创建接口: func main() { r := gin.Default() r.POST("/upload",upload) r.Run() } // upload 上传 func upload(c *gin.Context) { file, err := c.FormFile("file") if er...
golang 类似PHP中 http_build_query 方法
代码: func HttpBuildQuery(params map[string]string) (param_str string) { params_arr := make([]string, 0, len(params)) for k, v := range params { params_arr = append(params_a...
go DES加密解密
go DES加密解密 var PwdKey = []byte("DIS**#KKKDJJSKDI") //PKCS7 填充模式 func PKCS7Padding(ciphertext []byte, blockSize int) []byte { padding := blockSize - len(ciphertext)%blockSize //Re...
gin操作cookie
每次访问网页都会携带cookie,默认肯定会携带Cookie: gin_cookie=test //如果客户端没有cookie,则第一次访问,没有cookie,即err非nil //然后创建一个cookie给客户端 (响应cookie),下次访问携带 cookie, e...
pm2启动脚本的传入自定义参数
pm2 --后传任意参数启动golang执行文件,比如保护mysql密码不被泄露,启动时输入才mysql密码 pm2 start go_build_main_go.exe -- -pwd root 可以取到pwd :root 的参数
golang cgi调用golang 程序
代码如下 package main import ( "net/http" "net/http/cgi" ) func main() { http.HandleFunc("/", Handler) http.ListenAndServe(":8080", nil) } func Handler(w http.ResponseWriter, re...
golang获取命令行参数三种方法
最近在学习golang,结果遇到了golang如何获取命令行参数?的疑问,下面顺便分享给大家。 第一种方法:os库 os可以通过变量Args来获取命令参数,os.Args返回一个字符串数组,其中第一个参数就是执行文件...
如何优雅地重启go程序–endless篇
前言 当go语言开发的server应用已经在运行时,如果更新了代码,直接编译并运行,那么不好意思,端口已经在使用中: listen tcp :8000: bind: address already in use 看到这样的错误信息,我们通常都是一...
Asynq 高性能分布式任务队列实践
Asynq 是一个 Go 库,用于对任务进行排队并与工作人员异步处理它们。它由Redis提供支持,旨在可扩展且易于上手。开发自谷歌员工。 Asynq 工作原理的高级概述: 客户端将任务放入队列 服务器从队列中拉出任...