• 朋友圈,提供博客收录、文章聚合展示等功能,欢迎来这里发现有趣的博客并尝试与博主成为朋友!如果你拥有一个独立博客,就赶快申请加入吧,逾 0 位博友正在等你哦!

观察者模式

正向代理和反向代理实现

正向代理和反向代理实现 1. 两者基本概念 网络代理 : 控制和管理某个网络主机的访问 控制:客户端/服务端流量控制,黑/白名单,权限校验,URL重写 管理:流量控制,编解码,Header头转换,负载均衡,服务发现,连接池 访问流程: 用户访问代理服务器 请求通过网络代理完成转发等到目标服务器

Golang Option模式

Golang Option模式 1. 传统的结构体初始化方式 type Server struct { maxConn int id string tls bool } // NewServer 初始化Server func NewServer(maxConn int, id string,

Go 实现 Websocket服务以及代理

Go 实现 Websocket服务以及代理 1. 协议说明 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。Websocket 主要用在B/S架构的应用程序中,在 WebSocke

GO网络编程-RPC

GO网络编程-RPC 1. RPC RPC , Remote Procedure Call,远程过程调用。与 HTTP 一致,也是应用层协议。该协议的目标是实现:调用远程过程(方法、函数)就如调用本地方法一致

Redis 多线程和 BigKey

Redis 单线程和 Bigkey 1. Redis 单线程和多线程 首先 Redis 在 3.0 的单线程时代,依然性能很快的原因: 基于内存操作:Redis 的所有数据都存在内存中,因此所有的运算都是内存级别的,所以性能好

Golang 日志

Golang 日志 1. Logger Logger 用来记录程序运行的中间状态,通常用于排查、定位问题和业务数据的统计 Logger 应该具备的功能: 分级,DEBUG、INFO、WARN、ERROR,方便定位问题、屏蔽低级别日志 日志里需要显示时间以及输出日志的文件名和行号

Go网络编程-UDP编程

UDP 编程 1. UDP 简单介绍 UDP 是 User Datagram Protocol 的简称,中文名是用户数据协议 UDP 是 一种五连接的不可抗靠的传输协议,( 不需要进行三次握手和四次挥手 ) 1. net 包支持的 UDP 函数 // 解析UDPAddr func ResolveUD

go-zero api 使用

go-zero api 1. api 语法 api 文件是对这个服务所有接口的描述,go-zero 会根据 api 文件自动生成代码 // 登录请求参数 type LoginRequest { Username string `json:"username"` Password string `

Golang 部署 web 项目

Golang 部署 web 项目 首先使用 gin 编写一个 WebDemo func main() { r := gin.Default() r.GET("/", func(context *gin.Context) { context.String(http.StatusOK, "He