在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

使用Docker配置Kafka开发环境

广告
将在 10 秒后关闭
bannerAds