Kafka 消息中间件

1. 配置说明

1. 可靠性

request.required.acks 设置数据可靠性级别

# =0 时,生产者不需要等待 Broker 确认收到消息;可靠性低;
request.required.acks=0

# =-1 时,生产者需要确认 Broker 收到消息,才算发送成功;可靠性较高;
request.required.acks=-1
# 此时需要配合设置最小副本数使用;可靠性高;
min.insync.replicas=3

2. 发送模式

默认为同步:producer.type=sync

设置为异步,提高 Broker 性能,提升效率,但增加可靠性风险

# 异步模式时可配置的选项

## 默认5000毫秒;
## 作用:生产者缓存消息的时间,默认缓存5秒的数据,再统一发送出去;
## 极大增加 Broker 吞吐量的同时,也会造成时效性的降低。
queue.buffering.max.ms=5000

## 默认10000条;
## 生产者缓存队列里最大缓存的消息数量;
## 如果超过这个值,生产者则会阻塞,或者丢弃消息。(参考下一条配置项)
queue.buffering.max.message=10000

## 默认-1毫秒;
## 当达到最大缓存数量时,生产者阻塞等待的时间;
## 设置为 0,则生产者不会阻塞,直接丢弃消息;
## 设置为 -1,则生产者会被阻塞,不会丢弃消息。
queue.enqueue.timeout.ms=-1

## 默认200条;
## 每次批量发送的消息数量;
## 达到此数值时,生产者才会发送消息。
batch.num.messages=200

3. 消息传输保障机制

  • At most once
    • 消息可能会丢失,但不会重复传输
  • At least once
    • 消息绝不会丢失,但可能重复传输
  • Exactly once
    • 每条消息被传输一次,且仅传输一次
    • 通过 GUID 消息去重机制,实现精确传输

2. Kafka Shell 使用

启动服务端

# 读取配置文件,启动 Kafka
bin/kafka-server-start.sh config/server.properties

创建 Topic

# 查看可用命令
bin/kafka-topics.sh

# 创建 topic
## --create                             创建命令
## --zookeeper                      指定 zookeeper
## --topic                              指定 topic

## (以下为可选项)
## --replication-factor     指定副本数
## --partitions                     指定分区数
bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --topic mykafka --replication-factor 1 --partitions 1

查看 Topics

bin/kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181

创建生产者

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka

创建消费者

## --from-beginning             从最初未消费的消息开始处理
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mykafka --from-beginning

你可能感兴趣的:(Kafka 消息中间件)