在macOS上配置Apache Kafka的备忘录
Apache Kafka的更新速度很快,因此最好参考基本文档。
-> 阿帕奇卡夫卡
安装Apache Kafka
在Mac上进行安装
brew install kafka
目前安装的是v2.8.0版本。 de shì v2.8.0 .)
/usr/local/bin/ にkafka関連のコマンドがインスコされる
/usr/local/etc/kafka/ にコンフィグファイルなどが保存される
更改设置
在主目录下创建一个适当的文件夹,并将要使用的文件复制到其中。
mkdir kafka
mkdir kafka/config
cp /usr/local/etc/kafka/server.properties ./kafka/config
cp /usr/local/etc/kafka/zookeeper.properties ./kafka/config
以便我还想要更改日志文件等的保存位置,因此需要创建保存目录。
mkdir kafka/data
mkdir kafka/data/zookeeper
mkdir kafka/data/kafka-logs
将./kafka/config/server.properties文件中的log.dirs修改
log.dirs=/Users/yhirai/kafka/data/kafka-logs
将./kafka/config/zookeeper.properties中的dataDir进行更改。
dataDir=/Users/yhirai/kafka/data/zookeeper
开动
启动Zookeeper
zookeeper-server-start ./kafka/config/zookeeper.properties
经纪人的启动
kafka-server-start ./kafka/config/server.properties
关于主题的内容
创建一个话题
kafka-topics --zookeeper 127.0.0.1:2181 --topic first_topic --create --partitions 3 --replication-factor 1
确认所创建的话题
kafka-topics --zookeeper 127.0.0.1:2181 --topic first_topic --describe
主题列表
kafka-topics --zookeeper 127.0.0.1:2181 --list
删除主题
kafka-topics --zookeeper 127.0.0.1:2181 --topic second_topic --delete
当一个主题被标记为“待删除”,最终什么时候会被移除?删除时似乎会出现各种问题,也许这个页面可以提供一些参考。
记事
有关发送的消息处理
当制作人发送消息时,
该消息将按照轮询方式分配到分区中。
因此,当消费者接收消息时,
根据所选择的分区来确定消息,
不能保证按照发送消息的顺序进行处理。
关于发送邮件时使用的密钥
如果将 Key 添加到消息中,
具有相同 Key 的消息将被保存在同一个分区中。
感谢
如果不想丢失数据的话,
准备足够的代理人,并将数据同步到同步副本(ISR)。
在制片人的设置中,将acks设置为all。
幂等生产者
当Kafka版本>=0.11时,
在发生网络错误或Broker的ACK请求未能到达生产者的情况下,
通过从生产者端重新发送请求来避免重复提交消息。
安全的制作人设置 de
如果 Kafka < 0.11
-
- acks-all
-
- min.insync.replicas=2
-
- retries=MAX_INT
- max.in.flight.requests.per.connection=1
卡夫卡版本需大于等于0.11。
-
- enable.idempotence=true
-
- min.insync.replicas=2
- aks-all,retries=MAX_INT,max.in.flight.requests.per.connection=5(default)
消息压缩
compression.type的默认值为none,可以选择gzip、lz4、snappy等。
消费者的交付语义
-
- At most once: メッセージロストの危険性あり
- At least once: メッセージが処理されてからコミットする。ただ、重複してデータを読み取る可能性があるのでメッセージの処理がidempotentであるようにする。
安全
-
- Encryption
-
- Authentication
- Authorization
使用Confluent CLI操作Kafka
请参考 Confluent Platform CLI 官方文档中的以下链接进行安装:https://docs.confluent.io/confluent-cli/current/install.html