1.什么是kafka
1.kafka是一个高效的消息发布订阅消息中间件,具有高吞吐量,内置分区,冗余,容错等等的特点
2.他使用的是Scala语言编写完成的。
2.kafka有什么应用场景
1.用户行为跟踪
2.日志收集系统:ELKK
3.kafka的架构:
1.一个kafka包含会包含若干个producer(消息的生产者),若干个broker(支持kafka进行水平扩展),若干个consumer(消费者),groupId(分组的ID)
简要的文字说明:producer在发布消息的时候,会将消息push到broker上面,然后consumer订阅消息的时候,不是broker将消息推送到订阅端,而是consumer主动的去broker拉取数据(pull)
4.启动停止kafka
首先你需要修改配置文件:server.properties
./kafka-server-start.sh …/config/server.properties &(后台启动kafka)
5.kafka的基本操作
创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test (指定zookeeper,副本数,分区数)
Replication-factor 表示该topic需要在不同的broker中保存几份,这里设置成1,表示在两个broker中保存两份
查看topic
./kafka-topics.sh --list --zookeeper localhost:2181
查看某一个topic的具体信息:
./kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
发送消息
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
消费消息
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
搭建kafka集群
关键修修改配置文件:
1.修改server.properties. broker.id=0 (每个broker.id都是唯一的,不允许重复)
2.修改server.properties 修改成本机IP advertised.listeners=PLAINTEXT://192.168.11.153:9092
当Kafka broker启动时,它会在ZK上注册自己的IP和端口号,客户端就通过这个IP和端口号来连接
3.修改zookeeper配置地址