彩票网站建设开发,查网站服务器速度,详情页设计理念怎么写,做网站教程视频文章目录 简介重新想到go 小服务main.go部署测试 结束语 简介
golang的优势 响应速度#xff1a; Go Java Python 内存占用#xff1a; Go Java Python
从java转go#xff0c;然后go又转java#xff0c;感觉就是go虽然在编译、内存占用都强于java Go Java Python 内存占用 Go Java Python
从java转go然后go又转java感觉就是go虽然在编译、内存占用都强于java但是响应上并没有传说中那么离谱java完全打得过并且go语言的框架在20年的时候还不是很完善当时项目组的工程师亲自手写了一个kafka的生产和消费。。。
go语言给我最大的印象就是非常强悍的协程轻量化线程给人一种只要内存够用就好像能无限开大的感觉。
重新想到go
最近遇到一个问题其中一个解决方案就是部署一个非常小的实例实现http对接。 目前编程语言中rust最小然后是gorust语言没有接触过于是想到重拾go语言。
小服务
main.go
package mainimport (fmtnet/httpospath/filepathgithub.com/gin-gonic/gin
)func main() {// 创建 Gin 路由r : gin.Default()// 创建文件保存目录err : createFileDir()if err ! nil {fmt.Printf(创建文件目录失败: %v\n, err)return}// 文件上传接口r.POST(/addFile, func(c *gin.Context) {// 获取上传的文件file, err : c.FormFile(file)if err ! nil {c.JSON(http.StatusBadRequest, gin.H{error: 获取文件失败,})return}// 构建保存路径dst : filepath.Join(./file, file.Filename)// 保存文件if err : c.SaveUploadedFile(file, dst); err ! nil {c.JSON(http.StatusInternalServerError, gin.H{error: 保存文件失败,})return}c.JSON(http.StatusOK, gin.H{message: 文件上传成功,filename: file.Filename,})})// hello 接口r.GET(/hello, func(c *gin.Context) {c.String(http.StatusOK, hello)})// 启动服务器监听 8090 端口r.Run(:8090)
}// 创建文件保存目录
func createFileDir() error {return os.MkdirAll(./file, 0755)
}
部署
这里就一个文件快速部署
go mod init file-handler-servergo get -u github.com/gin-gonic/gingo run main.go测试
hello测试
curl http://localhost:8090/hello文件测试
curl -X POST http://localhost:8090/addFile -F file/path/to/your/file结束语
go语言这个文件2kb运行后也就几M内存消耗非常夸张如果java语言来写习惯spring框架的就直接带上这个沉重的包袱需要配置jdk配置maven部署速度也慢。 总体而言做一个小功能go很能打。