hardtopickname
V2EX  ›  问与答

工作中用到 golang 的同学能帮忙解答下问题吗

  •  
  •   hardtopickname · Mar 5, 2024 · 2657 views
    This topic created in 978 days ago, the information mentioned may be changed or developed.

    背景: 目前几个小伙伴,准备做一个新的项目,我负责后端,项目启动资金靠自己,所以尽量节省成本; Java SpringBoot 应用启动一个大几百 m 的内存,听说 GoLang 内存占用小,所以打算用 Go 来实现我们的服务逻辑。

    现在有几个问题:

    1. 实现一个同样逻辑的服务,一般情况下 golang 进程是否会比 jvm 进程内存占用小呢(我目前的理解是的),为什么
    2. go 的世界,一般是怎么操作 mysql 数据库的,要手写 sql 吗?是否有类似 jpa 的工具能快速开发?
    3. 如果我要服务化,进程间通信,一般使用什么协议呢?有现成框架吗?如果没有这边可能会考虑 http

    希望能有经验的同学能帮忙解答下,非常感谢~

    kaifang
    kaifang
    Mar 5, 2024
    1
    1. 小,具体可百度
    2. 可通过 gorm
    3. grpc
    SethShi
    SethShi
    Mar 5, 2024
    2
    1. 小, 二进制运行, 不需要虚拟机
    2. mysql 连接池, gorm 可以, gogen
    3. go-zero, goframe 都可以
    march1993
    march1993
    Mar 5, 2024
    3
    1. 因为没有虚拟机层; 2. 也是靠 ORM ,比如 gorm ; 3. 不清楚,个人觉得 http 挺好,"net/rpc" 是个简单的实现,也可以考虑 gRPC
    yungo8
    yungo8
    Mar 5, 2024 via Android
    4
    内存不值钱,节省资金没省到关键点吧
    FarmerChillax
    FarmerChillax
    Mar 5, 2024
    5
    1. 小,编译运行
    2. jpa 这类工具叫 ORM ,可以自行搜索别的语言的 ORM ,go 中用的比较多的有 gorm 、ent 等
    3. 进行间通信属于操作系统知识,根据你的描述我猜你需要的是 rpc ,那么现成的框架有 grpc (不止 go 能用,Java 也可以),但是也是比较毛胚,完整点的可以考虑 kratos (完整的服务治理,当然也重很多)
    sunqb
    sunqb
    Mar 5, 2024 via Android
    6
    既然新项目,能省则省吧,直接用 java 生态别折腾了。用 go 你得🈶极客精神
    IndexOutOfBounds
    IndexOutOfBounds
    Mar 6, 2024
    7
    小项目直接简单点,http 呗
    singer
    singer
    PRO
    Mar 6, 2024
    8
    类似八股文了
    1. java 为什么大,首先是虚拟机,再一个是进程占用资源。请求大了线程多,资源占用多。go 没有虚拟机,go 处理请求用 goroutine ,每个 goroutine 默认占用 2kb 内存。goroutine 是用户态线程,上下文切换调度开销也小一点。
    2. gorm ,配合上 gormt 自动生成表,基本上不用写 sql 了。
    3. 语言不熟悉建议先 http 。等业务做上去了再考虑别的,不然踩了语言的坑就麻烦了。

    写 go 代码,请求处理过程中,尽量避开用请求可以修改的全局变量可以避免很多坑。
    lsk569937453
    lsk569937453
    Mar 6, 2024
    9
    java 换 golang 不会有任何提升。

    golang 只是启动内存小,压力上来了内存一样暴涨。性能方面更不用说了五五开。
    jonsmith
    jonsmith
    Mar 6, 2024 via Android
    10
    语言层能节省多少成本,Java 生态远优于 go ,开发效率更高。
    duluosheng
    duluosheng
    Mar 9, 2024
    11
    go 上手快,内存占用很小。常用的框架这些年已经丰富很多,不用担心生态问题。
    hardtopickname
    hardtopickname
    OP
    Mar 25, 2024
    12
    @kaifang
    @seth19960929
    @march1993
    @yeqizhang
    @FarmerChillax
    @sunqb
    @IndexOutOfBounds
    @singer
    @lsk569937453
    @jonsmith
    @duluosheng

    感谢大家的回复,综合考虑,决定用 go 啦,项目已启动。非常感谢大家🙏🙏
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   756 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 17:31 · PVG 01:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.