首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于多队列系统技术堆栈

用于多队列系统技术堆栈
EN

Stack Overflow用户
提问于 2015-08-05 16:06:55
回答 1查看 58关注 0票数 0

我将描述我正在尝试构建的应用程序和我目前正在考虑的技术堆栈,以了解您的意见。

用户应该能够在任务列表中工作。这些任务来自一个包含所有相关信息的API : id、图像urls、描述等。该API仅在一个数据中心可用,为了避免延迟,例如在中国,任务被存储在一个队列中。

因此,根据您所在国家/地区,您将拥有不同的队列,一旦您完成任务,它将被发送到另一个队列,该队列稍后会将此信息写入原始数据中心

任务列表非常庞大,这就是为什么有一个API调用来获取任务(大约10k行),将其存储在队列中,用户可以根据队列所在的国家或地区对其进行操作。

对于这个系统,你可以有大约100个队列,我想使用redis来管理任务请求列表(例如:为China队列获取5k行,在写队列中写入500行,等等)。

API响应将以json对象列表的形式出现。例如,这10k行需要存储在某个地方。由于您需要能够在此队列中进行过滤,所以MySQL不是一个选项,至少我不会将json对象的每个字段存储为一个新行。首先,我认为是一个API,但我对过去的NoSQL不太满意,并且MongoDB响应不会有太多变化。就像我也需要关系表来做其他事情一样,我想的是PostgreSQL。它是一个关系数据库,您可以存储json并按它们进行过滤。

你认为如何?问我是不是有什么不清楚

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 17:02:52

您可以使用PostgreSQL中的HStore扩展来存储JSON,或者使用MariaDB中的动态列(MySQL克隆)。

如果你能把你的持久化堆栈转移到java上,那么有很多有趣的选择: mapdb (但它需要内存,而且它的api正在快速变化),persistit,或者mvstore (H2背后的引擎)。

所有这些都将允许存储具有良好性能的json。我建议你使用像lucene这样的全文搜索引擎,以避免以一种缓慢的方式搜索json内容。

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

https://stackoverflow.com/questions/31826808

复制
相关文章

相似问题

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