Golang
文章平均质量分 75
根据业务使用的一些go语言技巧
在成都搬砖的鸭鸭
这个作者很懒,什么都没留下…
展开
-
【Golang】用gorm实现分页的功能
可以根据在线sql转go结构体import ("time"TotalPage int `json:"total_page"` //总页数TotalCount int `json:"total_count"` //总条数Page int `json:"page"` //当前页PageSize int `json:"page_size"` //当前页数据量PrevPage bool `json:"prev_page"` //是否存在上页。原创 2024-10-21 17:36:25 · 633 阅读 · 0 评论 -
【Golang】go实现tlv协议
import ("bytes""fmt"Tag uint32// NewTLV//// @Description: 初始化tlv对象// @param opts 传入tag和value// @return *TLV 返回初始化后的tlv对象指针opt(tlv)return tlv// Encode//// @Description: 将TLV结构编码为二进制数据// @receiver t TLV对象// @return []byte 编码之后的二进制//写tagerr!原创 2024-10-15 16:24:38 · 465 阅读 · 0 评论 -
【Golang】使用gob格式存储数据到redis
/ 注册未知类型A intB stringC []intD []stringE interface{} //等会使用map[string]int{}类型测试F interface{} //等会使用map[string]string{}类型测试对于interface{}对应的未知类型,需要调用gob.Register()函数去注册,不然gob解码时会识别不出是什么类型,全局初始化一次就好。在工作中修改gob编码方式存储在redis之后,在数据量比较大的时候,相比json。原创 2024-10-12 17:57:32 · 534 阅读 · 0 评论 -
【Golang】网络传输protobuf格式数据
/protobuf版本//包名上文go中操作protobuf的步骤为:定义.proto文件、编译生成.go文件、进行序列化和反序列化,以及通过网络传输数据。protobuf还用于RPC协议中,使用protobuf可以定义RPC方法和消息结构,通过protoc编译后自动生成客户端和服务端代码,大大简化PRC系统的实现。谷歌就提供了高效的RPCgRPC。原创 2024-10-11 11:50:13 · 865 阅读 · 0 评论 -
【Golang】对cron进行二次封装实现指定时间执行定时任务
import ("fmt""sync""time"const (HOUR = 1MINUTE = 2SECOND = 3jobId cron.EntryID //执行的任务idjobMutex sync.Mutex //防止并发问题startTime time.Time //定时任务从此时间开始执行intervalTime uint32 //任务执行间隔时间,不设置默认8小时intervalType uint8 //任务执行间隔类型,1-时,2.分,3-秒,不设置默认单位为时。原创 2024-10-08 17:41:05 · 950 阅读 · 2 评论 -
【Golang】用go操作iptables和ipset设置黑白名单
/ ipset类型const (// ipset名称const (// iptables规则{"-m", "state", "--state", "ESTABLISHED,RELATED", "-j", "ACCEPT"}, //已建连接允许{"-i", "lo", "-j", "ACCEPT"}, //本地回环包运行{"-m", "set", "--match-set", WL_IP, "src", "-j", "ACCEPT"}, //对集合条目里的源ip允许。原创 2024-09-29 17:04:38 · 1261 阅读 · 1 评论 -
【Golang】双节点集群etcd未组成集群vip切换时序
上述vip从节点1切换到节点2之后,节点2上etcd相同key的版本为50,但是etcd服务端还是认为go_demo1和go_demo2的消费此key版本在100,在此key的版本不大于100之前都不会向go_demo1和go_demo2推送修改事件。在vip(虚拟ip)可以从一个节点切换到另一个节点,但etcd未组成集群的环境中,与etcd的连接会断开重连,但同一个key在不同节点的版本可能会不一样导致etcd服务器不向客户端推送数据,也就是客户端watch失效了,具体解决方法参考。原创 2024-09-26 20:12:00 · 514 阅读 · 0 评论 -
【Golang】用go解析国密pfx文件
函数来获取私钥和所有的证书,再通过证书里的颁发者和主题名等其它字段来获取我们想要的业务证书和ca证书。,下面会给出一个如何解析国密pfx文件的例子。对于包含多个证书和一个私钥的国密pfx文件,因此我们也可以直接使用。go的官方库已经支持。原创 2024-09-25 11:25:39 · 543 阅读 · 0 评论 -
【Golang】集群环境etcd未搭建集群进行手动重连
上述的场景适用于集群环境但etcd未组成集群的情况,通过检测到连接断开释放资源,新建连接重新watch来解决不同节点etcd因为不同而监听不到数据的情况。原创 2024-09-23 20:18:33 · 845 阅读 · 2 评论