【发布时间】:2021-09-15 18:14:32
【问题描述】:
我试图了解单个数据摄取微服务与每个数据源的多个单独微服务的优缺点。
上下文: 从客户第一次注册到我的平台时,我需要获取多个数据源来检索客户数据;但是,每个来源,例如 Strava、Garmin、Endomondo(健身数据来源)都有不同的数据提取方法,其中一些方法比其他方法更复杂。
单一数据摄取的优点:
- 会出现更少的微服务,因此可能会减少集成问题
- 花在开发上的时间更少
- “更少”的团队需要负责,因为只有一项服务(如果我们遵循每个服务一个团队的规则)
单一数据摄取的缺点:
- 很难查明服务中的故障
- 所有数据源的可用性可能会受到影响,因为从技术上讲存在单点故障
- 随着未来出现更多来源,代码库变成了一个小型单体
当前决定 从利弊来看,从事实来看,为每个来源提供单独的服务似乎是一个更好的选择。如果我要继续,我正在考虑使用:
- API 网关模式,用于封装各个微服务。
- 共享数据库模式用于存储身份验证令牌,例如
- 异步消息传递模式将从源检索到的数据发送到最终目的地
我期待听到我是否遗漏了收养论点的任何利弊或一些反对点!
【问题讨论】:
标签: microservices api-gateway data-ingestion