go

go如何热重启服务端进程

热重启方式 使用负载均衡等技术分批次灰度机器 使用fork系统调用来实现平滑重启 go的平滑重启实现 具体原理就是子进程与父进程共享文件描述符,当开启子进程时文件描述符引用计数增加,父进程结束了引用计数减...

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...

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 工作原理的高级概述: 客户端将任务放入队列 服务器从队列中拉出任...