首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >红人,蒙戈还是哈泽尔卡斯特?

红人,蒙戈还是哈泽尔卡斯特?
EN

Stack Overflow用户
提问于 2012-01-09 12:14:06
回答 3查看 3.7K关注 0票数 11

我们有一个JAVA应用程序,它使用postgres(单数据库和从数据库)来存储所有重要的数据。

我们现在从一个服务器设置转移到多个服务器,因此我需要做一些更改来满足新的需求。

1)用于负载平衡和分区容限的非粘性会话ids。

2)从所有web服务器访问的频繁读取数据的缓存(在内存/Memcache替代中)。

3)队列(电子邮件、SMS、要在集群上执行的任务)。通常,所有这些都必须通过xml或屏幕抓取来执行。

避免重复处理任务是很重要的,但有时会发生:-)

4) API请求和响应的持久存储( XML多,行多,列少)。(可能是通过删除旧的请求和响应来保存数据集)。

5)到共同的地方进行伐木。这张桌子还会继续增长。此外,我需要一个工具来访问生产日志而不停止它们。某种类型的搜索应该可以基于时间和或搜索字符串。

我想要一个单一的解决方案来解决所有这些要求,并将redis、mongo和hazelcast(按我个人的喜好排列)视为可能的替代方案。

其他重要的考虑因素: 1)减少对我们代码的入侵。2)简单的备份/复制策略。至少奴隶主人。3)可管理性、社区性和测试性(在生产中运行)。

哪些功能和需求能够执行全部或大部分功能?

编辑-我所做的

  1. 支持tomact的会话管理器。
  2. 用于缓存的Redis
  3. Jesque (Respue的java版本)得到了redis的支持。
  4. 波斯特格斯
  5. SLF4J得到Log4j2的支持
EN

回答 3

Stack Overflow用户

发布于 2012-01-09 19:46:27

我可以从MongoDB的角度来解决其中的一些问题。

我注意到的第一件事是,您将从一个服务器安装程序转移到多个服务器安装程序。MongoDB使设置、复制和分片变得非常容易。反过来,复制和分片,再加上Mongo的一些其他特性,可以帮助您完成许多您想要做的事情。

首先,先看一下文档,以了解一下:

复制集切分

基于您的需求的其他一些想法:

  • 相对于其他不同数据存储的定标方法,mongo的商品硬件水平缩放方法在设置、缩放和维护上都非常简单。这意味着你可以花更多的时间来构建你的应用程序,而不是DBA。
  • 如果使用mongo,也可以跳过缓存层。MongoDB使用内存映射文件,这意味着如果您的工作集可以保存在物理内存中,那么基本上已经有了内存缓存。
  • MongoDB非常适合日志记录。用户通常不需要对这类应用程序进行安全写入,因此,如果您坚持使用默认的即插即用模型来编写,那么性能将是优秀的。
  • 但是,与典型的对象关系映射程序相比,与典型的对象关系映射器相比,Mongo对数据的侵扰性要小得多。它能够将数据存储在它的自然可用状态,对象!

希望这有帮助,干杯。

票数 4
EN

Stack Overflow用户

发布于 2012-01-09 20:59:35

我会说使用sql。因为你想要所有的东西,关系数据库已经完善多年了。据我所见,您需要一个数据解决方案,而不是为了“特定”目的(这正是NOSQL试图涵盖的),而是为了“全部一体”的场景。这就是SQL的用途。

如果您想从要命名的3种数据中进行选择,Mongodb将是最近的数据存储区,但请再说一遍:使用sql

票数 2
EN

Stack Overflow用户

发布于 2013-05-30 12:42:03

您是正确的,Redis将解决前3项需求--非粘性会话、缓存和队列。

至于集中式日志记录,这不是一个简单的用例,而是可以在Redis上完成的,下面是一个说明如何实现的博客帖子。注意,NoSQL大师Alex对这个职位中的方法提出了一些保留意见。

至于持久性,这里是关于Redis.io of 持久化选项的概述--有一些问题,但是可行的。

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

https://stackoverflow.com/questions/8788270

复制
相关文章

相似问题

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