1.启动zookeeper: ./bin/zkServer.sh start
2.查看zookeeper端口: telnet localhost 2181 输入srvr
3.启动kafka: ./bin/kafka-server-start.sh -daemon ./config/server.properties
4.创建topic: ./bin/kafka-topics.sh --create --zookeeper localhost 2181 --replication-factor 1 --partitions 1 --topic lucky ps: partitions指定topic分区数,replication-factor指定topic每个分区的副本数
5.发送消息: ./bin/kafka-console-producer.sh --broker-list 192.168.0.106:9092 --topic lucky ps:这里的hostname 要和配置文件中一致
6.查看topic为lucky的信息: ./bin/kafka-topics.sh --zookeeper localhost 2181 --describe --topic lucky
7.消费消息: ./bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic lucky --from-beginning
8. kafka Producer的配置图解:
9.broker配置详解:
参数 |
说明(解释) |
broker.id =0 |
每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况 |
log.dirs=/data/kafka-logs |
kafka数据的存放地址,多个地址的话用逗号分割/data/kafka-logs-1,/data/kafka-logs-2 |
port =9092 |
broker server服务端口 |
message.max.bytes =6525000 |
表示消息体的最大大小,单位是字节,默认值是1000000,就是1M,生产中发送消息大于此值,消息不会被接收且报错,消费者大小配置fetch.message.max.bytes需要大于服务器配置的消息大小,会导致消费阻塞 |
num.network.threads =4 |
broker处理消息的最大线程数,一般情况下不需要去修改 |
num.io.threads =8 |
broker处理磁盘IO的线程数,数值应该大于你的硬盘数 |
background.threads =4 |
一些后台任务处理的线程数,例如过期消息文件的删除等,一般情况下不需要去做修改 |
queued.max.requests =500 |
等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个数值,那么会停止接受外部消息,应该是一种自我保护机制。 |