大数据-玩转数据-Kafka实战

news2024/10/7 4:30:21

一、kafka使用要点

要点一:Producer即生产者,向Kafka集群发送消息,在发送消息之前,会对消息进行分类,即Topic,topic1,topic2。Topic即主题,通过对消息指定主题可以将消息分类,消费者可以只关注自己需要的Topic中的消息。Consumer即消费者,消费者通过与kafka集群建立长连接的方式,不断地从集群中拉取消息,然后可以对这些消息进行处理。
要点二:kafka的存储,不得不提到分区,即partitions,创建一个topic时,同时可以指定分区数目,分区数越多,其吞吐量也越大,但是需要的资源也越多,同时也会导致更高的不可用性,kafka在接收到生产者发送的消息之后,会根据均衡策略将消息存储到不同的分区中。每个分区中,消息以顺序存储,最晚接收的的消息会最后被消费。生产者在向kafka集群发送消息的时候,可以指定分区来发送,也可以通过指定均衡策略来发送,或不指定,采用默认策略,将消息随机的存储到不同的分区中。
要点三:在消费者消费消息时,kafka使用offset来记录当前消费的位置,在kafka的设计中,可以有多个不同的group来同时消费同一个topic下的消息,如有两个不同的group同时消费,他们的的消费的记录位置offset各不相同,不互相干扰。对于一个group而言,消费者的数量不应该多余分区的数量,因为在一个group中,每个分区至多只能绑定到一个消费者上,即一个消费者可以消费多个分区,一个分区只能给一个消费者消费,因此,若一个group中的消费者数量大于分区数量的话,多余的消费者将不会收到任何消息。
要点四:Kafka是使用scala编写的运行与jvm虚拟机上的程序,虽然也可以在windows上使用,但是kafka基本上是运行在linux服务器上,因此我们这里也使用linux来开始今天的实战。首先确保你的机器上安装了jdk,kafka需要java运行环境,以前的kafka还需要zookeeper,新版的kafka已经内置了一个zookeeper环境,所以我们可以直接使用。

二、安装

1、jkd 安装

查看可安装的jdk版本

yum -y list java*

选择一版本安装

sudo yum install -y java-1.8.0-openjdk-devel.x86_64

检查安装结果

java -version

你如果好奇这个自动安装把jdk安装到哪里去了,其实你可以在usr/lib/jvm下找到它们

2、kafka安装

官网 http://kafka.apache.org/downloads下载到最新的kafka安装包,选择下载二进制版本的tgz文件,我们不选择带src的kafka-3.3.1-src,否则启动zookeeper会提示,这里下载kafka_2.13-3.3.1 , 拖到创建的/home/lighthouse/kafka目录,如果只需要进行最简单的尝试的话我们只需要解压到任意目录即可,这里我们将kafka压缩包解压到/home/lighthouse/kafka 目录

tar -zxvf kafka_2.13-3.3.1

3、kafka配置

在kafka解压目录下下有一个config的文件夹,里面放置的是我们的配置文件

  • consumer.properites 消费者配置,此处我们使用默认的即可
  • producer.properties 生产者配置,此处我们使用默认的即可
  • server.properties kafka服务器的配置,此配置文件用来配置kafka服务器,目前仅介绍几个最基础的配置
    broker.id 申明当前kafka服务器在集群中的唯一ID,需配置为integer,并且集群中的每一个kafka服务器的id都应是唯一的,我们这里采用默认配置即可
    listeners 申明此kafka服务器需要监听的端口号,如果是在本机上跑虚拟机运行可以不用配置本项,默认会使用localhost的地址,如果是在远程服务器上运行则必须配置,例如:
    listeners=PLAINTEXT:// 192.168.180.128:9092。并确保服务器的9092端口能够访问
    zookeeper.connect 申明kafka所连接的zookeeper的地址 ,需配置为zookeeper的地址,由于本次使用的是kafka高版本中自带zookeeper,使用默认配置即可
    zookeeper.connect=localhost:2181

三、使用

1、启动zookeeper

[lighthouse@VM-0-8-centos ~]$ cd kafka/kafka_2.13-3.3.1/
[lighthouse@VM-0-8-centos kafka_2.13-3.3.1]$ bin/zookeeper-server-start.sh config/zookeeper.properties

2、启动kafka

[lighthouse@VM-0-8-centos ~]$ cd kafka/kafka_2.13-3.3.1/
[lighthouse@VM-0-8-centos kafka_2.13-3.3.1]$ ./bin/kafka-server-start.sh ./config/server.properties

在这里插入图片描述

3、创建一个topic

Kafka通过topic对同一类的数据进行管理,同一类的数据使用同一个topic可以在处理数据时更加的便捷

[lighthouse@VM-0-8-centos ~]$ cd kafka/kafka_2.13-3.3.1/

创建一个名为sun_demo的topic

[lighthouse@VM-0-8-centos kafka_2.13-3.3.1]$./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic sun_demo

会报错:
在这里插入图片描述
需用新的方式创建主题:

[lighthouse@VM-0-8-centos bin]$ ./kafka-topics.sh --create --topic sun_demo --bootstrap-server localhost:9092

创建结果如图:
在这里插入图片描述
显示已经创建的topic

[lighthouse@VM-0-8-centos bin]$ ./kafka-topics.sh --list --bootstrap-server  localhost:9092

在这里插入图片描述

4、创建消息消费者

[lighthouse@VM-0-8-centos ~]$ cd kafka/kafka_2.13-3.3.1/bin
[lighthouse@VM-0-8-centos kafka_2.13-3.3.1]$ ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun_demo --from-beginning

在这里插入图片描述

5、创建消息生产者

创建消息生产者并输入消息内容

[lighthouse@VM-0-8-centos bin]$ ./kafka-console-producer.sh --broker-list localhost:9092 --topic sun_demo
>wo shi sunbo shoudao qing huida 

消息消费者收到内容如图
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/114668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工具-能写会看正则表达式【强烈建议收藏!】

正则表达式,很常用的一个技能点,但是一般的开发流程中都是这样的: 需要验证数据上网搜一下正则表达式CV 搞定!!!今天有时间回看了一下文档,简单整理了一下里面需要注意的点,并且通过分析几个常见的正则表达式,下次遇到正则争取不再只依靠 CV 大法! 基础部分 基本语法 …

初识指针(9)

目录 1、指针是什么? 2、指针和指针类型 1、指针- 整数 2、指针的解引用 3、野指针 1、野指针成因 2、如何规避野指针 4、指针运算 1、指针- 整数 2、指针- 指针 3、指针的关系运算 5、指针和数组 6、二级指针 7、指针数组 1、指针是什么?…

04-Hystrix

服务熔断Hystrix 1. Hystrix是什么 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库…

SpringBoot-2 读取properties;自动加载127个类原理总结;全部加载,按需配置

读取properties 方式一:非配置类填写:ComponentConfigurationProperties 1)建立bean: /只有在容器中的组件才拥有springboot提供的强大功能 Component ConfigurationProperties(prefix "mycar") public class Car {private Stri…

【机器学习】模型评估与选择

模型评估与选择 目录一、评估方法1、留出法2、交叉验证法3、自助法二、性能度量1、错误率与准确率2、查准率、查全率阈值对查准率、查全率的影响3、F1度量(基于查准率与查全率的调和平均)4、P-R Curve5、ROC CurvePRC和ROC的选用准则PRC和ROC的差异6、代…

python 中文转带音调的拼音

python 中文转带音调的拼音 前言python 中文转带音调的拼音1、1.1 安装pinyin模块1.2 试验1.3 效果图1.4 代码实现前言 今天整理中药材,每个药材上标上带音调的拼音,查了些,有的易形成乱码,如Shān Mi Dōnɡ,想到python自已动手转算了 python 中文转带音调的拼音 1、 …

(五)汇编语言——[bx]和loop指令

目录 [...]与(...) [...] (...) idata Loop指令 段前缀 总结 [...]与(...) [...] 这个我们其实见过,代表的是一个内存单元,段地址在DS中,偏移地址就是[bx]。 &am…

《图解TCP/IP》阅读笔记(第七章 7.4)—— RIP 路由信息协议

7.4 RIP RIP(Routing Information Protocol,路由信息协议),是一种距离向量算法,广泛用于LAN。 该协议将路由控制信息定期(30秒一次)向全网广播。如果没有收到路由控制信息,连接就会…

【1739. 放置盒子】

来源:力扣(LeetCode) 描述: 有一个立方体房间,其长度、宽度和高度都等于 n 个单位。请你在房间里放置 n 个盒子,每个盒子都是一个单位边长的立方体。放置规则如下: 你可以把盒子放在地板上的…

筛法(线性筛,厄拉多塞筛)

在前前前前前前…的博客中,我们主要谈了欧拉筛和埃氏筛. 今天我们主要来聊一聊线性筛和厄拉多塞筛(其实和埃氏筛和欧拉筛本质上没区别哎).其实在这两种筛法中厄拉多塞筛最好懂(就连本蒟蒻一看代码就明白了…别看这个名字,容易糊弄人) 首先是厄拉多塞筛"粉墨登场"::…

HRTransNet阅读理解

E. Dual-direction short connection fusion module HRFormer applies transformer blocks to enlarge receptive field of fused feature Frs, and uses exchange units to absorb the merits of multi-scales features. The process is described as: HRFormer使用TRM块来扩…

《教育的目的》笔记——如何让学生通过树木看见森林

目录 作者简介 个人感悟 经典摘录 1、学生所受的训练应该比他们最终投身的专业更为广泛 2、学习新语言用途 3、教师的责任 4、教育的主题 5、学到的有用之物 6、教育目的 7、所有事物都不是静态的、定型的,而是处于形成(becoming)过…

Merry Xmas | 用Matplotlib画个3D圣诞树送给你!~

1写在前面 Merry Christmas ! 🥳 过完圣诞就要跨年了,希望2023年自己可以一扫霉运,顺顺利利!!!😘 从网上抄了个英文的祝福语送给大家(主要是懒): 👇 I hope S…

【Unity】VideoPlayer实现视频播放

【Unity】VideoPlayer实现视频播放 背景:开发影院场景需要在荧幕上播放视频 环境:Unity2021.3 VideoPlayer的简单使用:http://t.csdn.cn/K8665 局限:上述方法会使得视频播放窗口强制在相机前; 需求:视频播…

怎么看懂单片机时序图?

本人没有上过单片机相关的专业课,是在《计算机系统结构》里遇见的时序图。由于看不懂加之老师没有专门讲,因此自行查阅了相关的视频和博客。(参考视频已放在文末) 网上资源贫瘠,不过我也不需要太过深入的知识。 大家…

spring事物使用示例及原理总结

目录 事务示例 示例一 示例二 示例三 示例四 示例五 示例六 事务原理 EnableTransactionManagement 执行代理对象目标方法 事务示例 示例一 在test()方法直接调用abc()方法,并在test()方法添加Transactional,test()和abc()方法分别会更新id…

力扣刷题笔记day10(树的子结构+二叉树镜像+对称的二叉树)

文章目录树的子结构题目思路代码二叉树镜像题目思路代码对称的二叉树题目思路代码树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 题目 思路 dfs(A, B) …

二叉树经典算法题目

1.二叉树的前中后序遍历(简单) 省略 2.二叉树的深度(简单) 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如&a…

Biotin-PEG-MAL,Maleimide-PEG-Biotin,生物素聚乙二醇马来酰亚胺

英文名称:Biotin-PEG-MAL,Maleimide-PEG-Biotin 中文名称:生物素聚乙二醇马来酰亚胺 Biotin-PEG-Mal,聚乙二醇化生物素对亲和素或链霉亲和素有很高的亲和力。生物素/亲和素体系在生物分子检测和分离中有着广泛的应用。马来酰亚胺…

Container Station搭建个人网盘Nextcloud(Mariadb)

目录 一、Container Station 二、MariaDB安装 三、phpMyAdmin安装及nextcloud对应数据库配置 (一)phpMyAdmin安装 (二)nextcloud对应数据库配置 四、Container Station中部署nextcloud (一)拉取镜像…