kafka

article/2025/10/7 5:20:14

Kafka是什么

在这里插入图片描述
Apache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。
Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,但是在设计实现上完全不同,此外它并不是JMS规范的实现。
Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受者称为Consumer,此外kafka集群有多个kafka实例组成,每个实例(server)成为broker。
无论是kafka集群,还是producer和consumer都依赖于
zookeeper**集群保存一些meta信息,来保证系统可用性

消息队列内部的实现原理

为什么需要消息队列

消息系统的核心作用就是三点:解耦,异步和并行
以用户注册的案列来说明消息系统的作用

用户注册的一般流程

在这里插入图片描述

问题:随着后端流程越来越多,每步流程都需要额外的耗费很多时间,从而会导致用户更长的等待延迟。

用户注册的并行执行

在这里插入图片描述

问题**:系统并行的发起了4个请求,4个请求中,如果某一个环节执行1分钟,其他环节再快,用户也需要等待1分钟。如果其中一个环节异常之后,整个服务挂掉了。在这里插入图片描述

用户注册的最终一致

在这里插入图片描述

Kafka架构,分布式模型

Topic :消息根据Topic进行归类
Producer:发送消息者,生产者
Consumer:消息接受者,消费者
broker:每个kafka实例(server)
Zookeeper:依赖集群保存meta信息。

在这里插入图片描述

Kafka的环境搭建

基础环境准备

安装前的准备工作(zk已经部署完毕)

l 关闭防火墙

chkconfig iptables off && setenforce 0

kafka单机版安装采用自带的zookeeper处理

1.校验一下java是否安装

​ [root@localhost Desktop]# java -version
​ java version “1.8.0_171”
​ Java™ SE Runtime Environment (build 1.8.0_171-b11)
​ Java HotSpot™ 64-Bit Server VM (build 25.171-b11, mixed mode)

如果没有安装,请先安装java环境 参考JDK安装方法 〜/ .bashrc文件(环境变量配置文件方式二)

2.上传kafka文件到虚拟机中kafka_2.12-2.2.0

3.解压安装kafka到/usr/local中
[root@localhost Desktop]# tar -zxvf kafka_2.11-1.0.0.tgz -C /opt/
3.1 重命名kafka的文件 :mv kafka_2.11-1.0.0 /opt/kafka

4.切换到kafka的配置文件目录
[root@localhost config]# pwd

       /opt/kafka/config

5.kafka安装目录下的config文件夹为其配置文件,我们需要修改的有 server.properties和zookeeper.properties。

​ [root@localhost kafka]# mkdir kafka-logs-0

​ server.properties: kafka的配置文件
​ log.dirs=/tmp/kafka-logs
​ 修改为
​ log.dirs=/opt/kafka1/kafka-logs-0

​ zookeeper.properties kafka自带的zookeeper的配置
​ dataDir=/tmp/zookeeper
​ 修改为
​ dataDir=/opt/kafka1/my_zookeeper

6.启动zookeeper
[root@localhost ~]# /opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties

7.启动kafka
[root@localhost Desktop]# /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties

8.创建主题 (让我们创建一个名为“test”的主题,它只包含一个分区,只有一个副本)
/opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic 1704D

            备注: 或者,您可以将代理配置为在发布不存在的主题时自动创建主题,而不是手动创建主题。

9.查看主题: 如果我们运行list topic命令,我们现在可以看到该主题
/opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181

10.发送一些消息
Kafka附带一个命令行客户端,它将从文件或标准输入中获取输入,并将其作为消息发送到Kafka集群。默认情况下,每行将作为单独的消息发送。运行生产者,然后在控制台中键入一些消息以发送到服务器。

​ /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic 1704D

​ >等待输入发送的消息

11.启动消费者
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.25.133:9092 --topic 1704D --from-beginning 从第一条开始接受
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.25.133:9092 --topic 1704D从现在生产者发送开始接受。]


http://chatgpt.dhexx.cn/article/BUaYFM0Q.shtml

相关文章

Kafka学习之一 Kafka是什么,主要应用在什么场景?

1、kafka是什么? Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。 2、产生背景 Kafka是一个消息系统,用作LinkedIn的活动流(Activity Stream&#…

kafka究竟是干嘛的?

kafka简介 一、维基百科二、消息队列2.1 什么是消息队列2.2 发布/订阅消息队列 三、kafka 简介 一、维基百科 维基百科kafka简介入口 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低…

Kafka是什么?为什么拥有异步、削峰、解耦?有哪些角色?

一、Kafka是什么? Kafka是一个分布式消息中间件,支持分区的、多副本的、多订阅者的、基于zookeeper协调的分布式消息系统。 通俗来说: kafka就是一个存储系统,存储的数据形式为“消息”; 它的主要作用类似于蓄水池,…

科普:Kafka是啥?干嘛用的?

来源 | http://r6d.cn/bdjdi Kafka简介 Kafka概述: Kafka由 linked-in 开源 。 kafka-高产出的分布式消息系统(A high-throughput distributed messaging system)。 Kafka是一个高吞吐、分布式、基于发布订阅的消息系统,利用Kafka技术可以在廉价的PC Ser…

Kafka 是什么?

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系 正文 Kafka 的诞生背景…

kafka是什么?主要用在什么场景

1、kafka是什么? Kafka是由LinkedIn开发的一个分布式基于发布/订阅的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。2、产生背景 Kafka是一个消息系统,用作LinkedIn的活动流(Activity Stream&#…

kafka是什么?

一、定义 Apache Kafka 是一款开源的消息系统。可以在系统中起到“肖峰填谷”的作用,也可以用于异构、分布式系统中海量数据的异步化处理。 系统包括四个主要API: Producer API 允许一个应用推送流记录通过一个或多个Kafka topics ;Consumer API 允许一个应用订阅一个或多个…

Kafka分区机制介绍与示例

Kafka中可以将Topic从物理上划分成一个或多个分区(Partition),每个分区在物理上对应一个文件夹,以”topicName_partitionIndex”的命名方式命名,该文件夹下存储这个分区的所有消息(.log)和索引文件(.index)&#xff0c…

Kafka介绍

1. Kafka的基本介绍 1.1 什么是Kafka? Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访…

什么是Kafka?

1 kafka 是什么   Apache kafka is a distributed streaming platform,即官方定义 kafka 是一个分布式流式计算平台。而在大部分企业开发人员中,都是把 kafka 当成消息系统使用,即它是一个分布式消息队列,很少会使用 kafka 的流…

Linux 之软连接

1.创建软连接 创建文件及文件夹 创建一个软连接 创建的语法:ln -s是必须的,然后后面跟一个目标文件夹,最后是一个当前目录的软连接名。 删除软连接 错误示范: 正确删除: 删除软连接时,要注意软连接的路…

Linux下如何创建和取消软连接

建立软连接: ln -s /usr/nodejs/bin/npm /usr/local/bin/ ln -s /usr/nodejs/bin/node /usr/local/bin/ 删除软连接: rm -rf /usr/local/bin/node注意:取消软连接最后没有/,rm -rf 软连接。加上/是删除文件夹 可以看到&#xf…

ubuntu 软连接建立

程序报错 /bin/sh: 1: /usr/bin/c: not found/usr/bin 主要放置一些应用软体工具的必备执行档例如c、g、gcc,一些软件的运行脚本,在目录中确实没有看到c,g问题应该出在这里 g -v报错Unable to exec g.real: No such file or directory 解决:…

windows系统下创建软连接

Windows系统创建软连接 为c:\Users\hp\.Pycharm2017.3\system\ 创建index文件软连接,被连接文件为D:\”deep learning”\bak\index

创建软连接和硬链接

前言 硬链接的原理:使链接的两个文件共享同样的文件内容,也就是同样的 inode。 硬链接有一个缺陷:只能创建指向文件的硬链接,不能创建指向目录的硬链接。但软链接可以指向文件或目录。 软链接的原理:就跟我们在windo…

软连接与硬链接

引入 1.硬链接与软连接 Linux 系统中有软链接和硬链接两种特殊的 "文件"2.inode是什么 ⛅要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode 这个东西 ⛅当划分磁盘分区并格式化的时候,整个分区会被划分为两个部分,即inod…

Linux建立软链接、硬链接

软链接 说明:软链接仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效。 1.软链接,以路径的形式存在。类似于Windows操作系统中的快…

软连接和硬链接

好多人对软件链接,硬链接不清楚,今天给大家介绍一下 一、软链接(Soft Link) 1.释义 又被叫为符号链接(symbolic Link),它包含了到原文件的路径信息。 2.特性 (1)软链…

【DEBUG】phpstudy启动mysql服务时候发现3306端口被占用

点击phpstudy之后启动mysql,发现3306端口被占用。打开sqlectron发现并不是sqlectron占用了端口。在命令行中显示3306端口被占用,试图强行结束该进程,但是失败,原因是拒绝访问。 进入phpstudy的info界面需要用户名和密码&#xff0…

数据库安装处理提示3306端口被占用

数据库安装提示3306端口被占用怎么处理? 方法1: 1、windows命令窗口输入services.msc进入服务管理 2、查找mysql服务,右键停止,即可正常安装。 方法2: 1:进入cmd,查看计算机当前进程&#…