工作中用到 golang 的同学能帮忙解答下问题吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hardtopickname
V2EX    问与答

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

  •  
  •   hardtopickname 2024 年 3 月 5 日 2130 次点击
    这是一个创建于 725 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    现在有几个问题:

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

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

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

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

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

    感谢大家的回复,综合考虑,决定用 go 啦,项目已启动。非常感谢大家
    关于     帮助文档     自助推广系统   &nbs; 博客     API     FAQ     Solana     2803 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 10:44 PVG 18:44 LAX 02:44 JFK 05:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86