阅读时间:5分钟
现货实例可以节省你大量现金,但是如果你有一个有状态的服务如NoSQL数据库?面临的主要挑战是,集群中的每个节点必须有时维护它的整个状态(IP、数据和其他配置)
这个博客描述了“锡拉”集群可用于AWS的EC2现货不失一致性的帮助下SpotInst的预测技术和先进状态特性
“锡拉”是什么?
“锡拉”是一个开源的分布式NoSQL数据库。它设计的兼容Apache Cassandra而实现更高的吞吐量和更低的延迟。它还支持Apache Cassandra相同的协议和文件格式。然而,“锡拉”是一个完全重写实现c++编程语言,不像Apache Cassandra在Java中。“锡拉”也用海星构建框架,它是一个异步编程库,代替线程,共享内存映射文件和其他典型的Linux编程技术。“锡拉”还提供了一个独一无二的磁盘I / O调度器也有助于提高性能。
基准由工程师ScyllaDB和第三方证明了“锡拉”优于Apache Cassandra高达10倍!
“锡拉”节点之间复制数据如何
“锡拉”提供了一个不间断的可用性。自动故障转移和复制跨多个节点和数据中心提供可靠的容错。
“锡拉”,如卡桑德拉,使用一种协议称为“八卦”交换元数据集群中的节点的身份和是否上升或下降。当然,因为没有单点故障,可以没有单一的注册中心节点的状态,所以节点必须共享信息。
如何在Spotinst运行“锡拉”
当设计一个新的“锡拉”集群,现货实例可能不会成为建筑师们的第一选择,因为他们的行为和事实,他们可以不一致终止通知2分钟内很难管理一个稳定的集群。这就是为什么Elastigroup这种环境是一个典型的选择。
Elastigroup提供100%的可用性服务在现货市场。通过选择合适的收购,历史和实时数据分析选择现货实例提供最低价格和最高寿命。使用预测算法,现货市场的变化确定提前15分钟,没有服务中断的触发点替换无缝。
作为状态特征的一部分,Elastigroup允许保留机器的数据量。任何EBS卷附加到实例将连续快照在机器运行时,将使用的块设备映射配置替换。
为了保持同一台机器上运行在失败的情况下,你需要记住几件事情:
私有IP——确保新机器有相同的私有IP的流言协议可以继续和与这台机器。
体积——必须连接到同一个节点存储和需要有相同的体积。如果不是,该服务将不可用。
配置文件- - - - - -scylla.yaml在默认情况下位于/etc/scylla/scylla.yaml。这必须配置的节点就会知道他们的配置信息。
在配置文件中,您将需要配置一些键值,如:
Cluster_name——集群的名称。这个设置可以防止集群在一个逻辑节点加入另一个。集群中所有节点必须有相同的值Listen_interface——“锡拉”结合的接口连接到其他节点种子——种子节点启动引导八卦过程期间使用,加入集群Rpc_address-为客户端连接接口的IP地址(节俭,CQL)Broadcast_address接口节点间连接的IP地址,从集群中的其他节点
架的考虑
为了更好的可用性数据,推荐节点a - z之间的传播。这个可以配置的值Ec2Snitch在scylla.yaml和cassandra-rackdc.properties文件。
假设你有一个集群中设置us-east-1地区。如果node1是在us-east-1a和node2us-east-1b,“锡拉”将考虑这些节点在两个不同的机架在同一个数据中心。Node1将被视为1架和node2 rack1b。
现在,我们将展示如何安装一个six-node集群。每个数据中心将包括三个节点和两个种子节点。IP的如下:
U。年代US-DC1
节点#私有IP
Node1 192.168.1.1(种子)
Node2 192.168.1.2(种子)
Node3 192.168.1.3
U。年代US-DC2
节点#私有IP
Node4 192.168.1.4(种子)
Node5 192.168.1.5(种子)
Node6 192.168.1.6
在每个“锡拉”节点,编辑scylla.yaml文件。下面是一个例子,一个节点/ DC:
U。数据中心1 - 192.168.1.1
cluster_name:“ScyllaDB_Cluster”
种子:“192.168.1.1,192.168.1.2,192.168.1.4,192.168.1.5”
endpoint_snitch: Ec2Snitch
rpc_address:“192.168.1.201”
listen_address:“192.168.1.201”
U。数据中心2 - 192.168.1.4
cluster_name:“ScyllaDB_Cluster”
种子:“192.168.1.1,192.168.1.2,192.168.1.4,192.168.1.5”
endpoint_snitch: Ec2Snitch
rpc_address:“192.168.1.4”
listen_address:“192.168.1.4”
在每个“锡拉”节点,编辑cassandra-rackdc.properties文件与相关架和数据中心信息:
节点1 - 3
dc = us-east-1a
架= RACK1
节点4 - 6
dc = us-east-1b
架= RACK2
Spotinst控制台配置
配置Elastigroup时,重要的是要使状态特性来保存您的数据和网络配置替换一个实例的中断。打开紧随其后的是有状态的特性和选择计算选项卡如下截图所示的特性。
我们也建议在我们运行“nodetool流失”命令关闭脚本部分冲提交日志和优雅地停止接受新的连接。
让我们看看这是如何工作的在现实生活中!
在下面图片中,你可以把“锡拉”集群3实例。所有的节点都运行在现场与我们的有状态的功能配置实例。
一旦中断的一个实例,我们有状态特性创建一个实例与私有IP和根/数据量。可以看到下面的实例返回到集群。

“锡拉”& Spotinst一起提供了一个强大的组合的极端性能和降低成本。
Apache Cassandra®, Apache®是Apache软件基金会的注册商标或商标在美国和/或其他国家。不支持通过隐含的Apache软件基金会是使用这些标志。
这篇文章也发表在“锡拉”的博客。



