The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
cookgo

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

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


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

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