kafka 也没那么难 --kafka 的安装与简单使用,mysql 引擎面试
这里需要说明的是,需要 jdk 环境,我直接装的 openjdk8,一样可以用。

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

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

1 是消费者连接 topic 消费消息的命令。
2 是生产者连接 topic 推送消息的命令。
3 分别是启动和停止 kafka 服务的。
4 是操作 topic 的指令,比如查看 topic 列表或者删除 topic
5 分别是启动和停止 zookeeperd 服务,这里的 zookeeper 是 kafka 自带的。
我们再来看看 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 运行产生的日志,我们排查问题时用到,暂时也不用管。
===================================================================
我们按顺序来,因为 kafka 启动要依赖 zookeeper 服务。所以我们来看 zookeeper 的命令。
启动 zookeeper 服务
bin/zookeeper-server-start.sh ./config/zookeeper.properties
停止 zookeeper 服务
bin/zookeeper-server-stop.sh
启动好 zookeeper 后,我们来启动 kafka 服务。
bin/kafka-server-start.sh ./config/server.properties
关闭 kafka 服务命令
bin/kafka-server-stop.sh
启动好 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

我们已经创建了 topic 。接下来我们可以让生产者推送消息到这个 topic 上。
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test1
–broker-list localhost:9092 连接上指定的 kafka 服务器。

生产者生产了消息,接下来就需要消费者消费消息啦。
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test1 --from-beginning
–bootstrap-server localhost:9092 是连接特定的 kafka 服务
–from-beginning 读取历史未消费的数据。

==================================================================================
上面哪些都是在服务器上操作的,所以接下来我们需要在我们代码中使用 kafka ,主要是推送消息和消费消息。
这里由于我们 kafka 部署在服务器上,不是我们本地,所以需要 kafka 配置文件中设置远程访问。主要修改 config/server.properties
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://192.168.1.51:9092
zookeeper.connect=192.168.1.51:2181

做如上修改就可以在远程访问啦。
准备工作做好了,我们现在创建一个 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 面试专题

常见面试算法题汇总专题

计算机网络基础专题

设计模式专题

评论