golang
已收录文章:15篇
-
Go语言通过net包和goroutine实现高效网络编程,支持TCP/UDP通信。1.使用net.Listen创建TCP服务器,Accept接收连接,每个conn由独立goroutine处理,实现高并发;2.TCP客户端用net.Dial连接服务端,通过bufio读写数据,实现双向通信;3.UDP通过ListenUDP和DialUDP进行无连接通信,适用于低延迟场景;4.关键实践包括:利用goroutine轻量处理连接、设置读写超时、defer关闭资源、解决TCP粘包问题。Go的简洁语法与并发模型使其非常177 收藏
-
使用Protobuf定义Go接口需先编写.proto文件描述服务与消息,再通过protoc生成Go代码。示例中定义UserService服务及GetUser方法,包含请求响应消息结构;安装protoc-gen-go和protoc-gen-go-grpc插件后执行编译命令,生成user.pb.go和user_grpc.pb.go文件;服务端实现UserServiceServer接口并注册服务,客户端通过NewUserServiceClient调用远程方法。整个流程标准化,提升通信效率与契约一致性,适合微服务170 收藏
-
Go语言通过crypto/tls包实现安全通信,使用ListenAndServeTLS启动HTTPS服务器需配置证书和私钥;建议自定义tls.Config以禁用旧版本、启用强加密套件,并通过http.Transport配置客户端证书验证,生产环境应避免InsecureSkipVerify,使用可信CA签发证书确保安全。104 收藏
-
答案是使用reflect.MakeMap可动态创建map实例,需先获取或构造map的reflect.Type,再通过SetMapIndex添加键值对,典型应用于配置解析、通用框架等需运行时动态处理类型的场景。263 收藏
-
闭包能捕获并持续访问外层函数变量,如counter函数中count被递增且生命周期延长至堆;闭包引用变量而非值拷贝,循环中易因共享i导致所有闭包输出相同值。275 收藏
-
Go语言通过Goroutine和Channel实现HTTP并发控制,常用方法包括:1.使用带缓冲Channel作为信号量限制并发数;2.sync.WaitGroup协调批量子服务调用;3.rate包实现限流中间件防过载;4.合理配置Server超时与资源参数。184 收藏