美文网首页
kafka的搭建与入门

kafka的搭建与入门

作者: 知名乐天 | 来源:发表于2021-02-28 11:50 被阅读0次

引言

在平时,自己肯定很经常能碰到需要用到消息队列,除非你是一个刚入门的程序员,否则你肯定或多或少的要接触到像消息队列之类的技术。本篇章主要是帮助大家自己搭建好kafka的环境。

环境准备

  • Zookeeper的环境(这里不涉及zookeeper的搭建,可以自己起一个)
  • kafka的下载

下载链接

如果你懒,直接下载我提供的,或者自己可以去kafka的官网下载(最好养成这样的习惯,官网的才是最新的,并且最好下载beta版本,免去编译的步骤)
下载链接:

wget  https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.12-2.7.0.tgz

下载完毕之后请自行解压

启动服务

前提:启动前先到你的对应的目录下

// 启动kafka
bin/kafka-server-start.sh config/server.properties
// 新建一个topics
bin/kafka-topics.sh --create --topic quick-events--bootstrap-server localhost:9092
// 我再新建一个topics,这次不一样的是多了一些参数(partitions 和 replication-factor 参数比较重要,生产环境一般都要设置这个)
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic firsttest
// 检查下刚刚创建的是否生效
bin/kafka-topics.sh --describe --topic quick-events --bootstrap-server 127.0.0.1:9092
// 生产者写数据
bin/kafka-console-producer.sh --topic quick-events --bootstrap-server 127.0.0.1:9092
// 消费者读数据(根据是否需要从头开始读而决定是否加 --from-beginning)
bin/kafka-console-consumer.sh --topic quick-events --from-beginning --bootstrap-server localhost:9092  // 这种方式的话,是每次都从最新的开始取

做了上述的操作之后,基本上kafka的环境也已经通了,环境搭建也基本成功了。

更好的使用须知

问题一:如果我想用程序并行处理一个kafka的topics,并且不重复,如何做?

首先,你需要让你起的消费者服务都是同一个group,然后topics的partitions的配置不能为1,如果是1的话,即使你有两个服务,也只有一个服务能消费,另一个服务只有在上一个服务挂了之后才会接力。每个partition 都相当与一个有序队列,最多被同一个group中的一个消费者消费,因此避免了重复消费。

相关文章

网友评论

      本文标题:kafka的搭建与入门

      本文链接:https://www.haomeiwen.com/subject/slhgfltx.html