如何在 Azure 上配置 Cassandra
Posted
技术标签:
【中文标题】如何在 Azure 上配置 Cassandra【英文标题】:How to configure Cassandra on Azure 【发布时间】:2015-04-14 07:12:56 【问题描述】:如何配置 Cassandra 以在 Azure 中运行?
根据下面链接的指南,您应该为每个 Cassandra 节点创建一个云服务,并在每个云服务上拥有一个虚拟机。这些虚拟机应该在同一个虚拟网络上。 http://blog.metricshub.com/2012/12/27/running-cassandra-on-azure-step-by-step-gotcha-by-gotcha/
这仍然是推荐的方式吗?
在此设置中,每个 VM 都使用来自云服务的公共 IP 公开,并且它们还具有用于虚拟网络的内部 IP。
您应该如何在 Cassandra yaml 配置文件中设置以下值?与集群联系的客户端与节点不在同一个虚拟网络上。并且集群只包含一个数据中心。
内部IP、外部IP、0.0.0.0、localhost等应该是什么?
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: ??
listen_address: ??
broadcast_address: ??
broadcast_rpc_address: ??
rpc_address: ??
endpoint_snitch: (SimpleSnitch?)
【问题讨论】:
【参考方案1】:这完全取决于您的 Cassandra 版本。 v2 的配置与 v3 不同。通常,不应使用 Azure 的经典部署模式设置 Cassandra,因为它始终面向 Internet,这会损害安全性。只有需要来自 Cassandra 的数据的 VM 才能连接到它。
如果您正在构建 Cassandra 集群,基本上不需要更改 yaml 配置,除非允许它监听以太网推断。 这样的配置是:
# listen_address:
listen_interface: eth0
如果您需要更多信息,blog post 描述了在 Azure 上设置 Cassandra 所需的所有内容。
【讨论】:
【参考方案2】:DataStax 与 Microsoft 合作制作了本指南,用于在 Azure 上设置 Cassandra: https://academy.datastax.com/content/deploying-datastax-enterprise-microsoft-azure-cloud
在本文档中,他们建议每个云服务使用更多 VM(节点)。 Azure 每个云服务最多支持 50 个 VM。
所有虚拟机都应位于同一可用性集中,以确保它们位于不同的更新域中。 Azure 将以循环方式自动将一个可用性集中的新节点分配给 5 个更新域之一。这些更新域应该映射到 Cassandra 中的 Rack 概念,方法是使用 GossipingPropertyFileSnitch 并在 cassandra-rackdc.properties 文件中指定 rack/update 域。 Azure 分配的更新域可以位于云服务实例概述下的 Azure 管理控制台中。
所有 VM 都应位于 Azure 中的同一 VNet 上,以使节点能够相互通信。 如果您的客户端不在此 VNet 上,您需要为每个 VM 分配实例级公共 ip。请参阅本指南: https://azure.microsoft.com/documentation/articles/virtual-networks-instance-level-public-ip/ 在为 VM 分配公共 ip 时,您需要为 Cassandra 添加某种安全性。用户身份验证和加密。
目前 2.0 分支是推荐用于生产的分支。上述设置中 2.0 的 cassandra.yaml 文件的设置为:
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
- seeds: '<<INTERNAL VNET IPS FOR THE SEED NODES>>'
listen_address: <<INTERNAL VNET IP FOR THE CURRENT NODE>>
broadcast_address: <<PUBLIC UP FOR THE CURRENT NODE>>
broadcast_rpc_address: <<NOT AVAILABLE IN Cassandra 2.0>>
rpc_address: 0.0.0.0
endpoint_snitch: org.apache.cassandra.locator.GossipingPropertyFileSnitch
【讨论】:
issues.apache.org/jira/browse/CASSANDRA-9387 (一旦可用,那么这可能是最佳实践(这样您就可以通过 azure 本身进行放大和缩小。以上是关于如何在 Azure 上配置 Cassandra的主要内容,如果未能解决你的问题,请参考以下文章
Bitnami在Azure上创建的Cassandra实例,连接失败
如何在 Quarkus 的配置中使用加密 Cassandra 密码凭据?
如何在 Azure Service Fabric 中的自托管 Web API 上配置 SSL
如何使用 CassandraAutoConfiguration 在 Spring Boot 应用程序和 cassandra 之间配置 ssl?