现在线上服务多实例在滚动升级时总是会出现部分任务失败,尽管有失败任务交由其他实例重试的策略,但是有时候滚动升级较快,分配到的新实例又要升级,则导致二次失败,任务就彻底失败了。因为上线时总要注意下上...
go
go如何热重启服务端进程
热重启方式 使用负载均衡等技术分批次灰度机器 使用fork系统调用来实现平滑重启 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 看到这样的错误信息,我们通常都是一...