kafka使用记录

1.下载(官网)

http://kafka.apache.org/downloads

2.简要安装与配置

https://www.cnblogs.com/javabg/p/9592193.html

(1)

consumer.properites 消费者配置,此处我们使用默认的即可

producer.properties 生产者配置,此处我们使用默认的即可

server.properties kafka服务器的配置,此配置文件用来配置kafka服务器,目前仅介绍几个最基础的配置

broker.id 申明当前kafka服务器在集群中的唯一ID,需配置为integer,并且集群中的每一个kafka服务器的id都应是唯一的,我们这里采用默认配置即可

listeners 申明此kafka服务器需要监听的端口号,如果是在本机上跑虚拟机运行可以不用配置本项,默认会使用localhost的地址,如果是在远程服务器上运行则必须配置,例如:   listeners=PLAINTEXT:// 192.168.180.128:9092。并确保服务器的9092端口能够访问,如果想外部电脑上的程序也能访问此kafka,就必须指定ip地址,不然java中会报key为null的错误

zookeeper.connect 申明kafka所连接的zookeeper的地址 ,需配置为zookeeper的地址,由于本次使用的是kafka高版本中自带zookeeper,使用默认配置即可

    zookeeper.connect=localhost:2181

(2)

启动kafka自带Zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka服务
bin/kafka-server-start.sh config/server.properties &

3.使用示例

创建一个topic

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

创建一个消息消费者

创建一个消息生产者

类似。

4. kafka与zookeeper关系 

https://blog.****.net/nankiao/article/details/78553635

kafka与zookeeper:

kafka使用记录

    一个典型的Kafka集群中包含若干Produce,若干broker(一般broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。

1)Producer端直接连接broker.list列表,从列表中返回TopicMetadataResponse,该Metadata包含Topic下每个partition leader建立socket连接并发送消息.

2)Broker端使用zookeeper用来注册broker信息,以及监控partition leader存活性.

3)Consumer端使用zookeeper用来注册consumer信息,其中包括consumer消费的partition列表等,同时也用来发现broker列表,并和partition leader建立socket连接,并获取消息。

Zookeeper作用:管理broker、consumer

创建Broker后,向zookeeper注册新的broker信息,实现在服务器正常运行下的水平拓展。具体的,通过注册watcher,获取partition的信息。

Topic的注册,zookeeper会维护topic与broker的关系,通/brokers/topics/topic.name节点来记录。

Producer向zookeeper中注册watcher,了解topic的partition的消息,以动态了解运行情况,实现负载均衡。Zookeepr不管理producer,只是能够提供当前broker的相关信息。

Consumer可以使用group形式消费kafka中的数据。所有的group将以轮询的方式消费broker中的数据,具体的按照启动的顺序。Zookeeper会给每个consumer group一个ID,即同一份数据可以被不同的用户ID多次消费。因此这就是单播与多播的实现。以单个消费者还是以组别的方式去消费数据,由用户自己去定义。Zookeeper管理consumer的offset跟踪当前消费的offset。
5.应用程序使用

上面介绍了如何用命令行使用,在应用程序中该如何使用呢?

https://www.jdon.com/50613

介绍了在springcloud里如何配置,使用,还是很方便 的。