基于echo框架,搭建一个最好用的脚手架echo-scaffolding

关于我 一只孤独的饮酒客... 持续更新中,喜欢的可以点个star。欢迎贡献代码 github地址: echo-scaffolding echo-scaffolding 简介 Echo best scaffolding.Fllowing me. Let's go 基于echo框架,搭建一个最好用的脚手架。 目的及优势 快速上手、快速开发、快速交付 ...

Go实现随机、轮训、权重、哈希负载均衡

1 什么是负载均衡 负载均衡(Load Balance,简称 LB)是高并发、高可用系统必不可少的关键组件,目标是 尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性 负载均衡的主要作用: 高并发:负载均衡通过算法调整负载,尽力均匀的分配应用集群中...

Go 实现对返回的map进行分页

根据业务场景需要,API接口可能需要对一个map类型的数据进行json序列化返回给前端,当map中的key过多时,也是需要分页的。如何实现? Deomo代码: var data []map[string]string type Res struct { Total int `json:"total"` List []map[string]s...

Go 封装http请求包Get、Post

之前已经封装过leveldb包. 今天再把项目中经常会用到的一个技术封装成包,记录下来,仅供需要的小伙伴学习参考go如何封装包给别人和自己使用。有需要的小伙伴也可以在自己的项目中直接使用此包。 这里小编以github为例 (go的很多第三方包都在github上),其他平台大同...

Go 控制Goroutine的数量

Goroutine虽然体量很小(2kb),理论可以开启上百万个Goroutine。但也不是多多益善。一旦Goroutine过多,会占用大量的cpu 内存,可能导致服务器速度变慢甚至服务挂掉。 先看一下不控制Goroutine数量,看能跑多少 Cpu: 4 Mem: 16G tasks := math.MaxInt64 for...

Go实现udp服务

UDP 画dp 被称为用户数据报协议(UDP,User Datagram Protocol。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。 使用场景 音视频通话、游戏、工业物联网传感器等 Example udp_server: func main() { listen, err := net.ListenUDP(&qu...

Go 处理粘包拆包

1. 什么是粘包? 发送方发送的若干数据到接受放接受时粘成了一个包。接受方有一个缓冲区,在缓冲区中多条数据连在了一起。 2. 粘包发生在哪个协议中? 只有TCP有粘包现象,UDP没有 3. 为什么UDP没有粘包想象? 因为UDP无连接的不可靠的传输协议(适合频繁发送较小的数...