【问题标题】:Are there any benefits of using hazel cast over Cassandra在 Cassandra 上使用 hazel cast 有什么好处吗
【发布时间】:2018-01-29 01:14:16
【问题描述】:

我想为我的 Web 应用程序实现会话存储。这是我的应用程序的配置文件。

  1. 与会话相关的信息变化不大,但 它有时会改变。
  2. 会话读取 (session.getAttribute()) 比写入 (session.setAttribute()) 更频繁。
  3. 我不想处理基于主节点的架构(如 redis)。
  4. 与会话相关的数据很少,但会话的数量可能很大。
  5. 查找始终采用键值的形式,如哈希映射。
  6. 我对最终的一致性感到满意。
  7. 我希望能够指定复制因子。即为给定会话保存数据的节点数
  8. 我只是在寻找不会产生上述功能许可费用的开源解决方案。
  9. 目前我希望存储多达 10,000 个会话,每个会话(平均)具有 10kb 数据,但最终我希望扩展到 100,000 个会话或更多!

在我的应用程序中,hazelcast 已被用于其他一些功能。但我不希望这成为决定因素。 Cassandra 似乎满足了我的所有要求,而且似乎很受欢迎。有什么理由我应该选择 hazelcast 而不是 cassandra?

【问题讨论】:

  • 注意第 1 点和第 2 点。会话的写入量很大。每次处理 Web 请求时,必须更新会话的上次访问时间,无论您访问会话属性是为了读取还是写入。
  • @NeilStevenson 感谢您指出上次访问时间。我差点错过了那部分。

标签: cassandra scalability hazelcast nosql


【解决方案1】:

免责声明:Hazelcast 员工

总的来说,我认为如果您可以将 Hazelcast 与 Cassandra 或 Cassandra 与 Hazelcast 交换,那么其中一种工具会被滥用。 我们有很多人将它们用作伴侣,这意味着 Cassandra 作为存储层,Hazelcast 作为缓存层,然而,Cassandra 不是缓存,Hazelcast 也不是数据库。

如果您想将存储持久化到磁盘,请使用 Cassandra(可能使用 Hazelcast 添加缓存),如果您只想分发,请使用 Hazelcast。后一种情况,尤其是如果您(出于某种原因)重新启动集群时偶尔丢失会话“并不重要”。

【讨论】:

    【解决方案2】:

    我们在我们的项目中同时使用它们。我们使用 Cassandra 作为持久存储,使用 Hazelcast 存储临时和频繁更改的数据(例如分布式队列和同步原语)。

    有什么理由我应该选择 hazelcast 而不是 cassandra?

    在我看来,从开发人员的角度来看,Hazelcast 更容易,并且它不需要像 Cassandra 那样在生产环境(深度配置和调整、repeair、重新启动......)上投入太多精力,因此 Hazelcast 的支持成本更低。

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2011-04-24
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 1970-01-01
      相关资源
      最近更新 更多