2017-08-20 52 views
0

我们正在考虑实施某种微服务架构。我们将有多个团队维护软件,我们将使用grpc和protobuf 3作为点对点通信的序列化机制。目标是一方面将业务逻辑与应用程序逻辑分离,另一方面允许UI跨越多个业务环境。微服务架构中常见的protobuf数据类型?

微服务有时必须处理与其他微服务处理的数据类似或相同的数据。

在这种情况下,建议提取那些常见的proto3数据类型,分别处理它们并将它们作为依赖项导入到每个微服务中?这样他们可以在多个服务中重用。或者是不是通过共享任何(共同的)数据类型(无共享体系结构)来关注微服务的去耦?

回答

1

什么应该让你想知道为什么多个微服务将处理相似或相同的数据。这可能意味着你在切片解决方案上做得太过分了。引用Sam Newman - “”有界上下文代表自治业务领域(即不同的业务能力),因此是确定微服务分界线的适当起点。“”。

所以我会说 - 应该有一个比业务领域更深的好的商业理由 - >微服务分离。

我最近读到的关于“共享库/组件”的一个很好的评论是,很快这个共享库/组件就成为你的瓶颈,你所做的任何更改都需要在整个团队中进行大量的回归测试,它可能会被维持它所需的努力所掩盖。

所以,你可以看到,如果你去微服务,我会投票支持无共享的方法;-)