本部分介绍了 Cassandra 的定期维护任务。
反熵维护
Apache Cassandra 环节点需要定期维护,以确保所有节点的一致性。如需执行此维护,请使用以下命令:
nodetool -h localhost repair -pr
Apigee 建议在运行此命令时执行以下操作:
- 在每个 Cassandra 节点(跨所有区域或数据中心)上运行。
- 一次在一个节点上运行,以确保环中所有节点的一致性。
- 在工作负载相对较低的时段运行(该工具会给系统带来很大的负载)。
- 至少每 7 天运行一次,以消除与 Cassandra“忘记删除”相关的问题。
- 您可以在不同的日期在不同的节点上运行该脚本,也可以安排在每个节点上运行该脚本的时间间隔为几个小时。
- 使用
-pr选项(分区器范围)仅指定节点的主分区器范围。
如果您为 Cassandra 启用了 JMX 身份验证,则在调用 nodetool 时必须包含用户名和密码。例如:
nodetool -u username -pw password -h localhost repair -pr
如需了解详情,请参阅以下资源:
日志文件维护
Cassandra 日志存储在每个节点的 /opt/apigee/var/log/cassandra 目录中。默认情况下,最多可以创建 50 个日志文件,每个文件的大小上限为 20 MB;达到此上限后,系统会在创建新日志时删除旧日志。
如果您发现 Cassandra 日志文件占用过多空间,可以通过修改 log4j 设置来修改为日志文件分配的空间量。
- 修改
/opt/apigee/customer/application/cassandra.properties以设置以下属性。如果该文件不存在,请创建它:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- 使用以下命令重启 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart