Kafka 入门

一、定义

Kafka是一个分布式的基于发布/订阅模式的消息队列(message Queue),主要用于大数据实时处理领域。

  • 发布订阅模式:消息的发布者不会将消息直接发送给特定的订阅者,而是将消息分为特定的类别,订阅者只接受感兴趣的消息。
  • 最新定义:Kafka是一个开源的分布式事件流平台(Event Streaming Platform),被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用。

1.1 、应用场景

传统的消息队列的主要应用场景有:缓存/消峰、解耦、异步通信。

  • 缓存/消峰:控制和优化数据流经系统的速度,解决生产和消费消息的处理速度不一致的情况。
    Kafka 入门_第1张图片
  • 解耦:允许你独立的扩展和修改两边的处理过程,只需要确保他们遵守同样的接口约束。
    Kafka 入门_第2张图片
  • 异步通信:允许用户把一个消息放入队列,单并不立即处理,然后在需要的时候去处理它。
    Kafka 入门_第3张图片

1.2、消息队列模式

  • 点对点
    消费者主动拉取消息,消息收到后清除信息。
    Kafka 入门_第4张图片
  • 发布订阅
    可以有多个topic主题,生产者生产消息提交到特定的主题,消费者从特定的主题中消费消息,消息消费后不被清除,每个消费者相互独立,都可以消费消息。
    在这里插入图片描述

1.3 、基础架构

Kafka 入门_第5张图片

二、ubuntu20.04安装单机kafka

2.1 安装zookeeper

  • 下载:地址
  • 上传至linux服务器
1.上传至/opt/
2.解压tar -zxvf apache-zookeeper-3.8.0.tar.gz
3.将解压后的文件复制到/usr/local目录下,并重命名为zookeeper
cp zookeeper-3.4.10 /usr/local/zookeeper -r
4.conf目录下,重新复制一份zoo_sample.cfg文件并命名为zoo.cfg
5.修改配置文件:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
admin.serverPort=8082#不然会出现端口被占用的情况,因为默认是和Apache.Tomcat使用的8080端口
5.配置环境变量
vi /etc/profile
export ZOOKEEPER=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER/bin
source /etc/profile、
6.启动
[root@localhost ~]# zkServer.sh start //启动
[root@localhost ~]# zkServer.sh status  //查看运行状态
7.启动异常
查看日志报错: java.lang.ClassNotFoundException: org.apache.zookeeper.server.quorum.QuorumPeerMain
进入zookeeper-server文件夹下,使用maven打包。
mvn package -Dmaven.test.skip=true
8.再次启动

单机启动成功:
Kafka 入门_第6张图片

2.2 安装kafka

1.下载kafka,并上传至服务器。
2.解压: tar -zxvf kafka_2.13-3.1.0.tgz 
3.复制:cp kafka_2.13-3.1.0 /usr/local/kafka
4.进入/usr/local/kafka/config
5.修改配置文件server.properties
**broker.id=1** //--使用单机模式可以不修改
**listeners=PLAINTEXT://:9092**  //--使用单机模式可以不修改
**advertised.listeners=PLAINTEXT://host_ip:9092** //--使用单机模式可以不修改
**log.dirs=/usr/local/kafka/kafka_logs**
6.启动:在kafka目录下:
bin/kafka-server-start.sh config/server.properties
7.验证:
//创建主题
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
//发送消息
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
//接收消息
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092
8.安装成功

三 、Topic命令

四、porducer生产者

你可能感兴趣的:(Kafka,kafka)