开源Kafka Cassandra连接器配置示例及相关使用问题咨询
问题描述
目前通过PerimeterX提供的Cassandra Logstash输出插件,将Logstash采集的事件(日志)写入Apache Cassandra。当前该插件最大吞吐量仅为8K/秒,因它仅与Cassandra建立2个连接,而Cassandra本身的数据消费吞吐量远高于该值,实际系统需要支撑30K/秒及以上的吞吐量。
注:此处吞吐量指消费传入事件的能力,单位为条/秒
因此计划在链路中引入Kafka,经测试Logstash输出到Kafka的吞吐量可达45K/秒。
此前已参考相关解决方案完成连接器JAR包配置,但缺乏清晰的配置指引,运行Kafka后指定主题对应的插件未被触发调用。
希望能够获得正确的配置示例,或是Cassandra键空间相关的文档说明。
Kafka Connect Cassandra Sink 配置示例
以下为可直接复用的standalone模式配置模板,分布式模式可将对应参数放入REST请求体提交即可:
# 连接器基础配置 name=cassandra-log-sink connector.class=com.datastax.oss.kafka.sink.CassandraSinkConnector tasks.max=6 topics=log-event-topic # Cassandra 连接配置 contactPoints=192.168.1.10,192.168.1.11,192.168.1.12 port=9042 loadBalancing.localDc=datacenter1 auth.username=cassandra auth.password=你的Cassandra密码 # 主题与Cassandra表映射配置 topic.log-event-topic.log_keyspace.event_table.mapping=id=value.id,event_time=value.timestamp,content=value.content,source=value.source topic.log-event-topic.log_keyspace.event_table.consistencyLevel=LOCAL_QUORUM # 吞吐量优化配置 maxConcurrentRequests=150 maxBatchSize=1000 flushIntervalMs=500
提示:若要实现30K/秒以上的写入能力,可对应调高
tasks.max(最大值不超过Kafka主题分区数)、maxBatchSize参数。
Cassandra 键空间配置说明
- 键空间创建命令参考
CREATE KEYSPACE IF NOT EXISTS log_keyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'datacenter1': 3} AND durable_writes = true;
- 键空间配置注意事项
- 复制策略需和Cassandra集群部署模式匹配,多数据中心场景需要对应补充各数据中心的副本数配置
- 副本数建议设置为3,兼顾数据可靠性与写入性能
- 若日志数据允许小概率丢失,可将
durable_writes设为false,进一步提升写入速度
连接器未触发排查要点
- 确认
tasks.max设置值不大于对应Kafka主题的分区数,否则会出现任务无法分配的情况 - 确认Cassandra集群的9042端口对所有Kafka Connect节点开放,使用的账号拥有对应键空间的写入权限
- 查看Kafka Connect服务运行日志,排查是否存在配置字段拼写错误、依赖包版本不兼容的报错
内容的提问来源于stack exchange,提问作者Ameya
相关产品推荐
相关产品推荐

