首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以将一些键空间复制到某些节点上吗?

可以将一些键空间复制到某些节点上吗?
EN

Stack Overflow用户
提问于 2017-08-18 08:15:14
回答 2查看 50关注 0票数 0

我正在尝试构建多个API,我想用Cassandra存储数据。我正在设计它,就好像我会有多个主机一样,但是,我设想的主机有两种类型:受信任的和不受信任的。

正因为如此,我有某些数据,我不想最终复制到一组主机上,但其余的数据将被复制到任何地方。

我考虑简单地为公共数据创建一个节点,为受保护的数据创建一个节点,但这将要求受信任的主机运行两个节点,这也会使API与数据的交互方式复杂化。

我也是在一个码头容器中构建它的,我希望会有频繁的节点创建/销毁,既有信任的,也有不可信的。

我想知道是否可以使用键空间来实现我所需的复制策略。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-18 10:15:31

您可以有两个数据中心,一个拥有公共数据,另一个拥有私有数据。您可以将密钥空间复制配置为只将该数据复制到一个(或两个)DC。查看NetworkTopologyStrategy复制上的文档

但是,这里存在安全性问题,因为所有节点都需要能够通过流言协议相互联系,而且您的客户端应用程序可能需要在不同的读写过程中与两个DC联系。

我建议您考虑配置安全性,比如为初学者配置SSL,然后再配置内部认证。注意,Kerberos也是受支持的,但是这可能太复杂了,至少现在是这样。

您还可以考虑查看防火墙文档,以了解节点之间和客户端之间使用哪些端口,从而知道应该锁定哪些端口。

最后,正如上面的海报所提到的,经常破坏/创建节点并不是一个好的做法。Cassandra的设计是为了在运行时能够增长/缩小集群,但这可能是一项代价高昂的操作,因为它不仅涉及从被移除/添加的节点流数据,而且还涉及其他节点在令牌范围内移动以实现重新平衡。

您可以在docker容器中运行节点,但是请注意,您需要注意不要做像几个容器都访问相同物理资源这样的事情。Cassandra对io延迟非常敏感,例如,共享相同物理磁盘的几个容器可能会导致性能问题。

票数 3
EN

Stack Overflow用户

发布于 2017-08-18 08:54:14

简而言之:不,你不能。

cassandra集群中的所有节点都来自一个完整的环,您的数据将与所选的分区器一起分发。

您可以在cassandra中拥有多个密钥空间以及身份验证和授权,并将受信任和不受信任的数据拆分为不同的密钥空间。或者用两个集群来分割数据。

根据我的经验,你也不应该试图创建和摧毁卡桑德拉节点,作为你的日常事务。添加和删除节点成本很高,需要进行监视,因为您的集群需要维护副本等等。因此,将cassandra集群与api节点分离可能会更好。

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

https://stackoverflow.com/questions/45751803

复制
相关文章

相似问题

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