V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hardtopickname
V2EX  ›  问与答

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

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

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

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

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