我正在使用微服务架构创建一个系统。有两个微服务A
和B
,每个都存在于自己的存储库中。
有一个user.proto
包含 protobuf 定义和 gRPC 方法签名的文件。A
使用生成user.pb.go
作为服务器。B
用作user.pb.go
客户(的A
)。
构造它的一种方法是在 中出现 proto 定义A
,并B
具有对以下的代码依赖A
:
A
├── pb
│ ├── user.proto
│ └── user.pb.go
└── service.go
B
└── service.go
B-->A
另一种方法是拥有另一个P
包含 proto 定义的 repo,A
并B
取决于新的 repo:
A
└── service.go
B
└── service.go
P
├── user.proto
└── user.pb.go
A-->P
B-->P
或者新的 repo 可能只包含 proto 文件,并在 A 和 B 中生成代码:
A
├── service.go
└── pb
└── user.pb.go
B
├── service.go
└── pb
└── user.pb.go
P
└── user.proto
这里有什么更好的方法?