我正在学习微服务架构,但是现在有些迷茫。
情况
- 有 4 个项目是用
golang
编写的- 订单服务
- 用户服务
- 工具
- web(转发
HTTP
请求)
orderService
,userService
,web
通过grpc
进行通信- 所有通过
web
的api请求转发到orderService
或userService
orderService
和userService
有自己独立的数据库- 它们都在
docker
容器中
困惑
当我想测试一个请求时,我必须执行以下步骤:
cd orderService
govender update +vendor
go build
cd userService
govender update +vendor
go build
cd web
govender update +vendor
go build
docker-compose build
docker-compose up
当我更改一些代码时,我必须再次执行此步骤。
我认为这是不科学和不正常的。我想知道是否所有这些步骤都是在 docker 中集成测试四个微服务所必需的。
最佳答案
如果你改变了 Go 代码,你必须重新编译;那不是不正常的。 Go 代码编译速度很快,所以这通常不是什么大问题。
我不确定您为什么要反复运行 govendor。如果您正在处理依赖项,则通常更容易暂时取消供应。
为了加快速度,不要在开发过程中使用 Docker;至少不是 Go 代码。由于 Go 本身没有任何依赖项,因此这样做没有任何优势。您仍然可以在 Docker 中运行支持服务(例如数据库),但您不必一直重建和重启它。
关于docker - 如果有多个微服务,我应该如何集成测试它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992237/