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

2021 年 3 月 17 日
 cookgo

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

4354 次点击
所在节点    Go 编程语言
19 条回复
Mitt
2021 年 3 月 17 日
一个微服务一个仓库,微服务之间是互相独立的
mcfog
2021 年 3 月 17 日
多对多,仓库是多个,每个仓库下也可以有多个(互相关联的)微服务
huijiewei
2021 年 3 月 17 日
git sub tree
linvon
2021 年 3 月 17 日
都可以。。。看服务间相关性吧,我们的代码太老导致重构完大量服务都是在一个仓库。但实际上还是建议能拉新仓库就拉新仓库,因为很有可能出现不同服务需要引用同一个三方库不同版本的问题
xuanbg
2021 年 3 月 17 日
一个服务一个仓库
goxy
2021 年 3 月 17 日
看维护的人力。我们小公司都在一个仓库里,然后不同目录。CI 、CD 不同 pipeline
janxin
2021 年 3 月 17 日
单体仓库的话建议只有一个 go mod
Leigg
2021 年 3 月 17 日
最好同在一个项目下,分目录就行了,要是分仓库,那公共代码的管理能累死。
kkbblzq
2021 年 3 月 17 日
我觉得吧,如果连代码都拆不清楚,那还是别跟风整微服务了,所以我支持多仓库。
AngryPanda
2021 年 3 月 18 日
支持多仓库。清晰可控。


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

git 跟 svn 的区别在于,git 原生没有 svn 那样可以针对目录级别的权限控制,当然理论上服务端可以写 git hook 做到,但是麻烦得多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/762593

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX