写点什么

kafka 也没那么难 --kafka 的安装与简单使用,mysql 引擎面试

作者:MySQL神话
  • 2021 年 11 月 27 日
  • 本文字数:2532 字

    阅读完需:约 8 分钟

这里需要说明的是,需要 jdk 环境,我直接装的 openjdk8,一样可以用。



安装包文件


====================================================================


我们解压后的 kafka 进文件夹,如下目录。我们主要用到的就是 bin 和 config 这两个目录。



bin 目录




bin 文件夹下都是一些执行的命令文件,我们暂时会用到图中圈出的这几个命令。具体用法后面再讲,先说说这几个分别干啥。



1 是消费者连接 topic 消费消息的命令。


2 是生产者连接 topic 推送消息的命令。


3 分别是启动和停止 kafka 服务的。


4 是操作 topic 的指令,比如查看 topic 列表或者删除 topic


5 分别是启动和停止 zookeeperd 服务,这里的 zookeeper 是 kafka 自带的。


config 目录




我们再来看看 config 里面的文件。我们主要就用到 server.propertie 和 zookeeper.properties


server.propertie

server.propertie 是启动 kafka 时加载的配置文件。点击去看看,基本要改的就是下面这两个地方。


每一个 broker 都需要一个标识符,使用 broker.id 来表示。它的默认值是 0,也可以被设置成任意其它整数。这个值在整个 kafka 集群里必须是唯一的。这个值可以任意选定。我这里设置的 broker.id=1



还有 kafka 默认启动服务的默认端口是 9092.如果我们想要修改的话,就需要在 server.propertie 中加上


port = 9093


当然改了这里,还得改其他对应配置文件的连接。这里是网上截图的。


zookeeper.properties

zookeeper.connect 主要配置 zookeeper 的链接。如果我们在其他地方安装的 zookeeper ,就需要修改这里的配置了。



zookeeper.properties 文件是启动 kafka 自带的 zookeeper 时加载的配置。


里面的配置就比较少了,主要是



libs 文件夹是 kafka 运行依赖的 jar 包,我们可以不用管,logs 是 kafka 运行产生的日志,我们排查问题时用到,暂时也不用管。


简单操作


===================================================================


zookeeper




我们按顺序来,因为 kafka 启动要依赖 zookeeper 服务。所以我们来看 zookeeper 的命令。

启动 zookeeper 服务

bin/zookeeper-server-start.sh ./config/zookeeper.properties

停止 zookeeper 服务

bin/zookeeper-server-stop.sh


kafka 服务




启动好 zookeeper 后,我们来启动 kafka 服务。


bin/kafka-server-start.sh ./config/server.properties


关闭 kafka 服务命令


bin/kafka-server-stop.sh


topic




启动好 kafka 服务后,我们就可以创建 topic 啦。创建 topic 的命令


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


这里可以看到创建 topic 的命令算是比较复杂的, --zookeeper localhost:2181 是指定 zookeeper 服务。-replication-factor 是指创建分区。


partitions 是创建备份。test1 是 topic 名称。


我们在创建一个 tpoic test2. 然后查看 topic 列表,需要指定 zookeeper 连接


bin/kafka-topics.sh --list --zookeeper localhost:2181



删除一个 topic,需要指定 zookeeper 和删除的 topic


bin/kafka-topics.sh --delete --topic quellanan --zookeeper localhost:2181



producer




我们已经创建了 topic 。接下来我们可以让生产者推送消息到这个 topic 上。


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


–broker-list localhost:9092 连接上指定的 kafka 服务器。



consumer




生产者生产了消息,接下来就需要消费者消费消息啦。


bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning


–bootstrap-server localhost:9092 是连接特定的 kafka 服务


–from-beginning 读取历史未消费的数据。



Springboot 整合使用 kafka


==================================================================================


上面哪些都是在服务器上操作的,所以接下来我们需要在我们代码中使用 kafka ,主要是推送消息和消费消息。


这里由于我们 kafka 部署在服务器上,不是我们本地,所以需要 kafka 配置文件中设置远程访问。主要修改 config/server.properties


listeners=PLAINTEXT://:9092


advertised.listeners=PLAINTEXT://192.168.1.51:9092


zookeeper.connect=192.168.1.51:2181



做如上修改就可以在远程访问啦。


produecer




准备工作做好了,我们现在创建一个 springboot 项目 ,名为 kafka-producer,作为 kafka 生产者。我这里 Springboot 版本是最新的 2.2.4。


在 pom.xml 文件中引入 kafka 依赖。


<dependency>


<groupId>org.springframework.kafka</groupId>


<artifactId>spring-kafka</artifactId>


</dependency>


在配置文件中,配置 kafka 连接


server.port=9000


spring.kafka.bootstrap-servers=192.168.1.51:9092


然后我们创建一个推动消息的接口。KafkaProducerController


内容如下:


@RestController


public class KafkaProducerController {


@Resource


private KafkaTemplate<String,String> KafkaTemplate;


@RequestMapping("/send")


public String sendMsg(@RequestParam(value = "topic")String topic,@RequestParam(value = "msg")String msg){


KafkaTemplate.send(topic,msg);


return "success";


}


}

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个 Github 上全面的 Java 面试题大全,就是这份面试大全助我拿下大厂 Offer,月薪提至 30K!


我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!一共有 20 个知识点专题,分别是:

Dubbo 面试专题


JVM 面试专题



Java 并发面试专题



Kafka 面试专题



MongDB 面试专题



MyBatis 面试专题



MySQL 面试专题



Netty 面试专题



RabbitMQ 面试专题



Redis 面试专题



Spring Cloud 面试专题



SpringBoot 面试专题



zookeeper 面试专题



常见面试算法题汇总专题



计算机网络基础专题



设计模式专题


![这个 GItHub 上的 Java 项目开源了,2020 最全的 Java 架构面试复习指南](https://upload-images.jianshu.io/upload_images/24195226-7719


《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享


4710f8862638?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

用户头像

MySQL神话

关注

还未添加个人签名 2021.11.12 加入

还未添加个人简介

评论

发布
暂无评论
kafka也没那么难--kafka的安装与简单使用,mysql引擎面试