golang专题下共有 11726 篇文章
-
- GolangTCP粘包处理:自定义协议拆包教程
- TCP粘包问题的解决核心在于自定义应用层协议以标识消息边界,并在接收端正确拆包处理。1.TCP粘包是其正常行为,由发送方合并小包、接收方读取慢或数据过大被分片等原因引起。2.协议设计要点包括:消息头包含固定长度字段(如int32)标识消息体长度,结构清晰易编解码。3.Golang实现拆包流程为:持续读取数据至缓冲区,判断是否含完整消息头和消息体,满足条件则提取处理,否则等待后续数据。4.实际开发建议使用bufio.Reader、成熟框架如gRPC,注意字节序一致、缓冲区管理及拆包逻辑独立运行,同时处理连接
- Golang· Go教程 | 3天 | golang TCP粘包 自定义协议 拆包 消息边界 489浏览 收藏
-
- Golang责任链模式与中间件实现解析
- 在Go语言中,责任链模式通过中间件实现,允许请求沿处理链传递。1.中间件是拦截器,可在请求前后执行通用操作如日志、权限验证;2.手动实现可通过定义Handler接口并串联处理逻辑;3.更常用的是函数式写法,中间件接收并返回http.HandlerFunc,形成包裹结构;4.使用applyMiddleware按顺序组合多个中间件,顺序影响执行流程,前置逻辑按顺序执行,后置逻辑逆序执行;5.核心思想是抽离通用逻辑,提升复用性与可维护性。
- Golang· Go教程 | 3天 | golang 中间件 责任链模式 函数式 http.HandlerFunc 369浏览 收藏
-
- Golang超时控制:context.WithTimeout详解
- context.WithTimeout是Golang中用于实现超时控制的核心工具,其通过创建带超时机制的上下文,在设定时间到达后自动取消操作。1.它的基本用法是传入父上下文和超时时间,如ctx,cancel:=context.WithTimeout(parentCtx,3*time.Second);2.在HTTP请求中使用时需显式构造请求并绑定上下文,以控制整个请求生命周期;3.WithTimeout与WithDeadline的区别在于前者设置最大持续时间,后者指定具体截止时间;4.使用时应注意及时调用c
- Golang· Go教程 | 3天 | golang 网络编程 context 超时控制 context.WithTimeout 269浏览 收藏
-
- Golangchannel实现发布订阅模式详解
- 使用channel实现发布订阅模式的核心在于维护订阅者列表并解耦发布者与订阅者。1.通过map存储主题与订阅者channel的对应关系,实现订阅和取消订阅操作;2.发布消息时遍历订阅者列表,并用goroutine发送以防止阻塞;3.防止channel阻塞可采用带缓冲的channel、加锁控制或丢弃策略;4.缓冲大小应根据发布与订阅速度差异选择,通常从保守值开始调整;5.处理订阅者掉线可通过超时机制检测并移除无效channel,结合心跳检测提升可靠性;6.若需保证顺序性,可通过单channel串行分发或为消
- Golang· Go教程 | 3天 | golang channel 并发 阻塞 发布订阅模式 482浏览 收藏
查看更多
课程推荐
-
- Golang深入理解GPM模型
- Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
- 474次学习
-
- Go语言课程Gin框架实战
- Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
- 338次学习
-
- Golang云原生架构师课程
- Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
- 204次学习
-
- Go编程基础视频教程
- Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
- 167次学习
-
- Golang进阶实战编程
- 本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
- 128次学习