背景: 目前几个小伙伴,准备做一个新的项目,我负责后端,项目启动资金靠自己,所以尽量节省成本; Java SpringBoot 应用启动一个大几百 m 的内存,听说 GoLang 内存占用小,所以打算用 Go 来实现我们的服务逻辑。
现在有几个问题:
希望能有经验的同学能帮忙解答下,非常感谢~
|      1kaifang      2024-03-05 20:00:47 +08:00 1. 小,具体可百度 2. 可通过 gorm 3. grpc | 
|  |      2SethShi      2024-03-05 20:07:47 +08:00 1. 小, 二进制运行, 不需要虚拟机 2. mysql 连接池, gorm 可以, gogen 3. go-zero, goframe 都可以 | 
|      3march1993      2024-03-05 20:27:31 +08:00 1. 因为没有虚拟机层; 2. 也是靠 ORM ,比如 gorm ; 3. 不清楚,个人觉得 http 挺好,"net/rpc" 是个简单的实现,也可以考虑 gRPC | 
|      4yeqizhang      2024-03-05 20:46:41 +08:00 via Android 内存不值钱,节省资金没省到关键点吧 | 
|      5FarmerChillax      2024-03-05 20:52:45 +08:00 1. 小,编译运行 2. jpa 这类工具叫 ORM ,可以自行搜索别的语言的 ORM ,go 中用的比较多的有 gorm 、ent 等 3. 进行间通信属于操作系统知识,根据你的描述我猜你需要的是 rpc ,那么现成的框架有 grpc (不止 go 能用,Java 也可以),但是也是比较毛胚,完整点的可以考虑 kratos (完整的服务治理,当然也重很多) | 
|      6sunqb      2024-03-05 22:09:39 +08:00 via Android 既然新项目,能省则省吧,直接用 java 生态别折腾了。用 go 你得🈶极客精神 | 
|      7IndexOutOfBounds      2024-03-06 00:01:07 +08:00 小项目直接简单点,http 呗 | 
|  |      8singer      2024-03-06 00:28:20 +08:00 类似八股文了 1. java 为什么大,首先是虚拟机,再一个是进程占用资源。请求大了线程多,资源占用多。go 没有虚拟机,go 处理请求用 goroutine ,每个 goroutine 默认占用 2kb 内存。goroutine 是用户态线程,上下文切换调度开销也小一点。 2. gorm ,配合上 gormt 自动生成表,基本上不用写 sql 了。 3. 语言不熟悉建议先 http 。等业务做上去了再考虑别的,不然踩了语言的坑就麻烦了。 写 go 代码,请求处理过程中,尽量避开用请求可以修改的全局变量可以避免很多坑。 | 
|  |      9lsk569937453      2024-03-06 09:36:26 +08:00 java 换 golang 不会有任何提升。 golang 只是启动内存小,压力上来了内存一样暴涨。性能方面更不用说了五五开。 | 
|      10jonsmith      2024-03-06 09:37:40 +08:00 via Android 语言层能节省多少成本,Java 生态远优于 go ,开发效率更高。 | 
|  |      11duluosheng      2024-03-09 19:27:12 +08:00 go 上手快,内存占用很小。常用的框架这些年已经丰富很多,不用担心生态问题。 | 
|  |      12hardtopickname OP @kaifang  @seth19960929 @march1993 @yeqizhang @FarmerChillax @sunqb @IndexOutOfBounds @singer @lsk569937453 @jonsmith @duluosheng 感谢大家的回复,综合考虑,决定用 go 啦,项目已启动。非常感谢大家🙏🙏 |