首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用微服务的多个实例存储和转发设计模式

使用微服务的多个实例存储和转发设计模式
EN

Stack Overflow用户
提问于 2019-06-24 14:40:34
回答 1查看 409关注 0票数 0

我正在设计一个服务,它将接收的请求,必须只执行一次(可以收到多次由于唯一的id存在)。

流程是:

外部世界-> HTTP -> Myservice -> HTTP ->供应商服务的实例集

因此,我正在通过HTTP接收一堆请求,我希望做一些转换,检查,将请求存储在数据库中,并通过HTTP发送给供应商服务。

我的问题是:

在我的服务中实现存储和转发模式的有效方法是什么?即接收请求并立即存储,因此立即将其发送到“外部世界”,然后在我的空闲时间将其转发到目标服务,并根据需要多次重试。

问题:

  • 如果myservice的一个实例在向供应商服务发送请求时关闭,该怎么办?
  • 如何监视是否有一堆尚未转发的请求?
  • 如何避免另一个编排服务?
  • 如何避免另一个单实例服务有效地监视数据库并转发任何尚未转发的请求。
  • 如何最小化外部依赖-例如,我知道这里的某种队列可能会对这个问题有所帮助,但我正在尝试是否可以避免这种情况。
EN

回答 1

Stack Overflow用户

发布于 2019-06-25 03:04:45

我建议不要出现NIH综合征,而要依赖一种成熟的技术,它可以满足您所有的可靠性要求。

Cadence Workflow能够以最小的努力支持您的用例。

Cadence提供了许多构建自定义任务编排解决方案所无法比拟的功能:

  • 构建了具有无限过期interval
  • Failure处理的指数级重试。例如,它允许执行一个任务,如果在长时间运行的心跳操作的配置interval.
  • Support期间两个更新都不能成功,则通知另一个服务,
  • 能够实现复杂的任务依赖关系。例如,为了在发生不可恢复故障(SAGA)的情况下实现调用或补偿逻辑的链接,
  • 提供了对更新当前状态的完全可见性。例如,当使用队列时,您都知道队列中是否有一些消息,并且需要额外的DB来跟踪整体进度。使用Cadence,每个事件都可以取消flight.
  • Distributed CRON support

中的更新

参见the presentation,它超越了Cadence编程模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56731051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档