1

目前有一个使用亚马逊队列服务之类的队列系统设置。现在我正在使用主管来阻止工人辞职。

试图提供一个可以接收 500-2K 请求/秒的前端,并且需要通过队列捕获数据。有时队列服务[基于 https] 出现故障,我目前正在运行 beanstalkd 作为备份队列,它获取相同的数据并发送到单独的一组工作人员并将该数据存储在单独的数据库中,但具有与主数据库相同的表结构D b。

我的想法是我将从备份中获取数据并将其与预期的实际数据进行比较并对其进行审核,任何差异都将被报告并可能添加到预期的数据集中。

这似乎是解决这个问题的一种实用方法,因为我试图确保我们捕获 99.99% 的数据。

下面的小“示范”帮你上图。

Endpoint A -- collects data(
    Queue1[amazon type queue]
    Queue2[beanstalkd]
)

Queue1 Worker sends data to DB1[used for reports]
Queue2 Worker sends data to DB2[storage --expect to have all data]

Audit Process compares data from DB2 to DB1 and reports the differences
If differences captured, tries to add them to DB1
4

1 回答 1

0

决定采纳 NB 的意见并应用不同的模型。我有一个主要的队列服务和一个辅助。如果第一个发送了 null 或错误的 http 响应,我会将消息发送到备份队列。队列工作者将从两个来源中提取并适当地运行它们。

这是最终结果的小图,因此您可以看到原始想法和最终想法之间的区别....

Endpoint A -- collects data(
    Queue1[amazon type queue]
    Queue2[amazon2 type queue]
)

Queue1 Worker sends data to DB1[used for reports]

If Queue1 fails, it auto sends data to Queue2, 
If Queue2 fails, it stores in database for later retrieval
于 2013-11-03T04:02:17.900 回答