营销导向网站建设流程,整站优化外包服务,杭州网站建设V芯ee8888e,响应式学校网站文章目录一、概述1.1、定义1.2、如何运作#xff1f;1.3、传统消息队列的应用场景1.4、消息队列的两种模式1.5、Kafka的基础架构二、安装#xff08;需要安装zookeeper#xff09;三、常用命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作一、概述…
文章目录一、概述1.1、定义1.2、如何运作1.3、传统消息队列的应用场景1.4、消息队列的两种模式1.5、Kafka的基础架构二、安装需要安装zookeeper三、常用命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作一、概述
1.1、定义 Kafka是一个分布式的基于发布/订阅模式的消息队列Message Quere。 发布/订阅消息的发布者不会将消息直接发送给特定的订阅者而是将发布的消息分为不同的类别订阅者只接受感兴趣的消息。 1.2、如何运作
Kafka是一个由服务器和客户端组成的分布式系统通过高性能TCP网络协议进行通信。它可以部署在本地和云中的裸机硬件、虚拟机和容器上环境。
服务器 Kafka作为一个或多个服务器的集群运行这些服务器可以跨越多个数据中心或云区域。其中一些服务器形成了存储层成为代理。其他服务器运行Kafka Connect以持续导入和导出数据作为事件流。用于将Kafka与现有的系统、其他Kafka集群集成。Kafka集群具有高度可扩展行和容错如果其任何服务器发送故障其他服务器将接管其工作以确保连续操作没有数据丢失。**客户端**它们允许编写分布式应用程序和微服务这些应用程序和微服务可以并行地、大规模地读取、写入和处理事件流并且即使在网络问题或机器故障的情况下也能以容错的方式进行。
1.3、传统消息队列的应用场景
缓存/消峰、解耦、异步通信 缓存/消峰有助于控制和优化数据流经过系统的速度解决生成消息和消费消息的处理速度不一致的情况。 解耦允许独立扩展或修改两边的处理过程只要确保它们遵守同样的接口约束。 异步处理允许用户把一个消息放入队列但并不立即处理它然后在需要的时候去处理它们。 1.4、消息队列的两种模式
点对点模式 消费者主动拉取数据消息收到后清除消息。 发布/订阅模式 可以有多个topic主题。消费者消费数据后不删除数据。每个消费者相互独立都可以消费到数据。
1.5、Kafka的基础架构
为方便扩展并提高吞吐量一个topic分为多个partition。配合分区的设计提出消费者组的概念组内每个消费者并行消费。为提高可用性为每个partition增加若干个副本。ZK中记录谁是leader Producer消息生产者就是向 Kafka broker 发消息的客户端。Consumer消息消费者向 Kafka broker 取消息的客户端。Consumer GroupCG消费者组由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据一个分区只能由一个组内消费者消费消费者组之间互不影响。所有的消费者都属于某个消费者组即消费者组是逻辑上的一个订阅者。Broker一台 Kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个broker 可以容纳多个 topic。Topic可以理解为一个队列生产者和消费者面向的都是一个 topic。Partition为了实现扩展性一个非常大的 topic 可以分布到多个 broker即服务器上一个 topic 可以分为多个 partition每个 partition 是一个有序的队列。Replica副本。一个 topic 的每个分区都有若干个副本一个 Leader 和若干个Follower。Leader每个分区多个副本的“主”生产者发送数据的对象以及消费者消费数据的对象都是 Leader。Follower每个分区多个副本中的“从”实时从 Leader 中同步数据保持和Leader 数据的同步。Leader 发生故障时某个 Follower 会成为新的 Leader。
二、安装需要安装zookeeper
下载安装包Kafka官网下载地址上传到服务器解压tar -zxf /opt/install/kafka_2.12-2.8.0.tgz -C /opt/soft/修改目录名mv /opt/install/kafka2_.12-2.8.0/ kafka212修改配置文件server.properties(下面修改前面为第几行注意地址改为自己的地址)vim /opt/soft/kafka212/config/server.properties21 broker.id036 advertised.listenersPLAINTEXT://xsqone144:909260 log.dirs/opt/soft/kafka212/data103 log.retention.hours1680123 zookeeper.connectxsqone144:2181/kafka137 delete.topic.enabletrue设置节点号echo 0/opt/soft/kafka212/data/myid修改配置文件vim /etc/profile# KAFKA_HOMEexport KAFKA_HOME/opt/soft/kafka212export PATH$PATH:$KAFKA_HOME/bin重新加载配置文件source /etc/profile测试启动Kafka# 先启动zookeeper
zkServer.sh start
kafka-server-start.sh -daemon /opt/soft/kafka212/config/server.properties三、常用命令行操作
3.1、主题命令行操作
查看消息队列
kafka-topics.sh --bootstrap-server xsqone144:9092 --list创建消息队列
kafka-topics.sh --bootstrap-server xsqone144:9092 --create --topic taibai --replication-factor 1 --partitions 1查看消息队列详情
kafka-topics.sh --bootstrap-server xsqone144:9092 --describe --topic taibai修改分区数注意只能增加不能减少
kafka-topics.sh --bootstrap-server xsqone144:9092 --alter --topic taibai --partitions 3删除消息队列
kafka-topics.sh --bootstrap-server xsqone144:9092 --delete --topic taibai 3.2、生产者命令行操作
发送消息
kafka-console-producer.sh --bootstrap-server xsqone144:9092 --topic xsqone查看生产者者offset信息
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list xsqone144:9092 --topic xsqone3.3、消费者命令行操作
消费消息队列中的数据
kafka-console-consumer.sh --bootstrap-server xsqone144:9092 --topic xsqone消费消息队列中所有数据
kafka-console-consumer.sh --bootstrap-server xsqone144:9092 --from-beginning --topic first查看消费者的offset信息最后的为消费者IDName
kafka-consumer-groups.sh --bootstrap-server xsqone144:9092 --describe --group 5第一列是groupid第二列是主题名第三列是分区第四列是偏移量第五列是生产者偏移量第六列偏移量落后