V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cookgo

Golang 微服务工程最佳实践问题

  •  
  •   cookgo · Mar 17, 2021 · 4275 views
    This topic created in 1867 days ago, the information mentioned may be changed or developed.

    各位老司机在使用 golang 开发微服务的时候,假设一个微服务一个 gomod,那么在使用 git 管理源代码的时候,是一个 git 仓库下一个微服务,还是多个微服务放在同一个仓库下?

    19 replies    2021-04-02 11:13:05 +08:00
    Mitt
        1
    Mitt  
       Mar 17, 2021
    一个微服务一个仓库,微服务之间是互相独立的
    mcfog
        2
    mcfog  
       Mar 17, 2021 via Android
    多对多,仓库是多个,每个仓库下也可以有多个(互相关联的)微服务
    huijiewei
        3
    huijiewei  
       Mar 17, 2021
    git sub tree
    linvon
        4
    linvon  
       Mar 17, 2021
    都可以。。。看服务间相关性吧,我们的代码太老导致重构完大量服务都是在一个仓库。但实际上还是建议能拉新仓库就拉新仓库,因为很有可能出现不同服务需要引用同一个三方库不同版本的问题
    xuanbg
        5
    xuanbg  
       Mar 17, 2021
    一个服务一个仓库
    goxy
        6
    goxy  
       Mar 17, 2021
    看维护的人力。我们小公司都在一个仓库里,然后不同目录。CI 、CD 不同 pipeline
    janxin
        7
    janxin  
       Mar 17, 2021 via iPhone
    单体仓库的话建议只有一个 go mod
    Leigg
        8
    Leigg  
       Mar 17, 2021 via Android
    最好同在一个项目下,分目录就行了,要是分仓库,那公共代码的管理能累死。
    kkbblzq
        9
    kkbblzq  
       Mar 17, 2021
    我觉得吧,如果连代码都拆不清楚,那还是别跟风整微服务了,所以我支持多仓库。
    AngryPanda
        10
    AngryPanda  
       Mar 18, 2021 via iPhone
    支持多仓库。清晰可控。


    @Leigg 可以专弄个 repo 管理公共代码库
    ifsclimbing
        11
    ifsclimbing  
       Mar 18, 2021
    大公司都是 monorepo,比如 google,就是一个 repo
    小公司,不复杂的话可以多个
    cookgo
        12
    cookgo  
    OP
       Mar 18, 2021
    还是感觉用 gitlab 一个项目组里分不同的子工程这样编写维护更方便:)
    Visionhope
        13
    Visionhope  
       Mar 18, 2021
    综合考虑吧, 楼上也说了很多优缺点. 我们公司就是准备从多个仓库迁移到一个仓库.
    dongtingyue
        14
    dongtingyue  
       Mar 18, 2021
    我是放一起,有些公用的可以提取出来。一个服务一个仓库感觉不是很方便。
    https://github.com/zarte/minirpc
    rahuahua
        15
    rahuahua  
       Mar 18, 2021
    说多个的你们服务是不是只有个位数~
    Leigg
        16
    Leigg  
       Mar 18, 2021 via Android
    @AngryPanda 就是这个方案的缺陷。
    davidyanxw
        17
    davidyanxw  
       Mar 18, 2021
    支持多仓库。
    单仓库的话,一个微服务发布,其他业务是不是也得同步更新?
    rapperx2
        18
    rapperx2  
       Mar 18, 2021
    支持单仓库
    sekfung
        19
    sekfung  
       Apr 2, 2021
    如果有权限要求,建议多仓库,比如不是该模块的开发人员,不允许修改提交。

    git 跟 svn 的区别在于,git 原生没有 svn 那样可以针对目录级别的权限控制,当然理论上服务端可以写 git hook 做到,但是麻烦得多
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5991 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 90ms · UTC 03:19 · PVG 11:19 · LAX 20:19 · JFK 23:19
    ♥ Do have faith in what you're doing.