操作Cassandra(1)-Snitch

Snitch

在cassandra中,snitch有两个功能:

  • 它指导Cassandra识别网络拓扑以有完成效地路由请求。
  • 它允许Cassandra在您的集群周围传播副本,以避免相关的故障。它通过将机器分组到“数据中心”和“机架”来实现这一点。Cassandra将尽最大努力在同一“机架”(实际上可能不是物理位置)上拥有多个副本。

动态snitching(Dynamic snitching)

动态snitch监视器延迟读取,以避免从已减速的主机读取。动态snitch使用cassandra.yaml上的以下属性进行配置:

  • dynamic_snitch:是否应启用或禁用动态路由。
  • dynamic_snitch_update_interval_in_ms:控制执行主机评分计算中较耗费资源部分的频率。
  • dynamic_snitch_reset_interval_in_ms:如果设置大于零,并且read_repair_chance <1.0,这将允许副本“锁定”到主机,以增加缓存容量。
  • dynamic_snitch_badness_threshold:恶性阈值将控制被锁定的主机在动态snitch偏向于其它副本之前要有多糟糕。该值通过一个表示百分比的double类型数字来代表,因此,值为0.2意味着Cassandra将继续偏好静态snitch值,直到被锁定的主机比最快的主机的20%还要差。

Snitch类(Snitch classes)

cassandra.yaml中的endpoint_snitch参数应设置为实现IEndPointSnitch的类,类将被动态snitch包装,并决定两个端点是否在同一数据中心或同一机架上。Cassandra提供了snitch实现:
GossipingPropertyFileSnitch
这应该是你的生产使用的。本地节点的机架和数据中心在cassandra-rackdc.properties中定义,并通过gossip传播到其他节点。如果存在cassandra-topology.properties,它将用作回退,从而允许从PropertyFileSnitch进行迁移。
SimpleSnitch
将战略顺序视为接近度。这可以在禁用读修复时提高缓存位置。仅适用于单数据中心部署。
PropertyFileSnitch
接近性由机架和数据中心决定,这些在cassandra-topology.properties中显式配置。
Ec2Snitch
从EC2 API加载当前区域和可用区域信息。当前区域被视为数据中心,可用区域被视为机架。仅使用私有IP,因此这不会在多个区域工作。
Ec2MultiRegionSnitch
使用公共IP作为broadcast_address以允许跨区域连接(因此,您应该将seed地址设置为公共IP)。您将需要打开公共IP防火墙上的storage_portssl_storage_port(对于区域内流量,Cassandra将在建立连接后切换到专用IP)。
RackInferringSnitch
接近性由机架和数据中心确定,假定它们分别对应于每个节点的IP地址的第3和第2个八位字节。除非这种情况符合您的部署约定,否则这最好用作编写自定义Snitch类的示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值