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