初识Kafka

1.初识kafka

        官网:Apache Kafka

        Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发并于2011年开源。它主要用于解决大规模数据的实时流式处理和数据管道问题。
        Kafka是一个分布式的发布-订阅消息系统,可以快速地处理高吞吐量的数据流,并将数据实时地分发到多个消费者中。Kafka消息系统由多个broker(服务器)组成,这些broker可以在多个数据中心之间分布式部署,以提供高可用性和容错性。
        Kafka的基本架构由生产者、消费者和主题(topic)组成生产者可以将数据发布到指定的主题,而消费者可以订阅这些主题并消费其中的数据。同时,Kafka还支持数据流的处理和转换,可以在管道中通过Kafka Streams API进行流式计算,例如过滤、转换、聚合等。
        Kafka使用高效的数据存储和管理技术能够轻松地处理TB级别的数据量。其优点包括高吞吐量、低延迟、可扩展性、持久性和容错性等。
        Kafka在企业级应用中被广泛应用,包括实时流处理、日志聚合、监控和数据分析等方面。同时,Kafka还可以与其他大数据工具集成,如Hadoop、Spark和Storm等,构建一个完整的数据处理生态系统。

2. 为什么要使用kafka

        我们通过一个经典的kafka使用场景--》日志聚合的应用场景来分析一下kafka的的特点。知道了产品的特点,我们也就知道了为甚么要用kafka。

        如下图所示,kafka可以汇集不同大量的日志,然后各系统根据所需获取对应的日志。想象一下,如果没有使用kafka,这些大量不同的日志与各个系统之间应该怎么样处理?

业务场景决定了产品的特点:

  1. 数据吞吐量很大: 需要能够快速收集各个渠道的海量日志。
  2. 集群容错性高:允许集群中少量节点崩溃。
  3. 功能不需要太复杂:Kafka的设计目标是高吞吐、低延迟和可扩展,主要关注消息传递而不是消息处理。所以,Kafka并没有支持死信队列、顺序消息等高级功能。
  4. 允许少量数据丢失:Kafka本身也在不断优化数据安全问题,目前基本上可以认为Kafka可以做到不会丢数据。

3. 单机服务搭建

1. 准备一台虚拟机

2.  安装jdk(zookeeper的运行环境是jdk8)

jdk安装可参考Linux环境下安装JDK-CSDN博客

3. 关闭防火墙(实验版本关闭防火墙,生产环境开启对应端口即可)

firewall-cmd --state 查看防火墙状态 
systemctl stop firewalld.service 关闭防火墙

第一步,下载kafka

下载地址:Apache Kafka

本文章使用的是3.2.0版本

         关于kafka的版本,前面的2.13是开发kafka的scala语言的版本,后面的3.4.0是kafka应用的版本。
        Scala是一种运行于JVM虚拟机之上的语言。在运行时,只需要安装JDK就可以了,选哪个Scala版本没有区别。但是如果要调试源码,就必须选择对应的Scala版本。因为Scala语言的版本并不是向后兼容的。
        另外,在选择kafka版本时,建议先去kafka的官网看下发布日志,了解一下各个版本的特性。 https://kafka.apache.org/downloads。 例如3.2.0版本开始将log4j日志框架替换成了reload4j,这也是应对2021年log4j框架爆发严重BUG后的一种应对方法。

 第二步:.tgz文件上传到服务器且解压 

第三步:启动zookeeper

下载下来的Kafka安装包不需要做任何的配置,就可以直接单击运行。Kafka的运行依赖于zookeeper,所以,接下来,启动kafka内置的zookeeper。

nohup bin/zookeeper-server-start.sh config/zookeeper.properties &

第四步: 启动kafka 

nohup bin/kafka-server-start.sh config/server.properties &

4. 如何发消息

5. 如何消费消息

6. 理解Kakfa的消息传递机制

内容完善中~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

杨中科 ASP.NET Core前后端分离开发

一、 前后端分离 1、传统MVC开发模式: 前后端的代码被放到同一个项目中,前端人员负责编写页面的模板,而后端开发人员负责编写控制器和模型的代码并且“套模板”。 缺点: 互相依赖,耦合性强,责任划分不清。 2、主流的“前后端分离…

西门子WinCC的C脚本——对象的事件任务

1、 全局脚本编辑器; 2、 对象的属性任务; 3、 对象的事件任务。 本文探讨一下用C脚本来实现对象的事件任务。 一、例程说明引文:博途工控人平时在哪里技术交流博途工控人社群 如图1所示,为本例程的运行画面。本例程实现以下…

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来

【MATLAB第89期】基于MATLAB的差分自回归滑动平均模型ARIMA时间序列预测模型含预测未来 往期文章 【MATLAB第82期】基于MATLAB的季节性差分自回归滑动平均模型SARIMA时间序列预测模型含预测未来 一、模型介绍 1、模型简介 差分自回归移动平均模型(Autoregressiv…

外包做了1个月,技术退步一大半了。。。

先说一下自己的情况,本科生,20年通过校招进入深圳某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【mysql】—— 事务

目录 (一)前言 (二)事务的理解 1、为什么会出现事务 2、什么是事务? 3、事务的版本支持 4、事务提交方式 (三)事务常见操作方式 1、正常演示 - 证明事务的开始与回滚 2、非正常演示…

CSAPP cache lab - Optimizing Matrix Transpose

CSAPP cache lab part B 矩阵转置 矩阵转置是一种操作,它将矩阵的行和列互换位置,即将原始矩阵的行变为转置矩阵的列,将原始矩阵的列变为转置矩阵的行。转置操作可以通过改变矩阵的布局来方便地进行某些计算和分析。 假设有一个mn的矩阵A&…

Qt读取文件对比:每次获取自定义的长度和使用系统的API,耗时对比

0. 前言 在编程过程中,经常遇到文件读写操作,太频繁了。每次也都写的不一样。 突发奇想,想测试下几种不同的读取文件的效率。 测试以下三种方式读取文件效率: 自定义读取文件耗时使用QFile类API读取文件耗时使用QTextStream类AP…

【BIAI】Lecture 5 - Auditory system

Lecture 5 - Auditory system 专业术语 auditory system 听觉系统 pinna 耳廓 auditory canal 耳道 tympanic membrane 鼓膜 cochlea 耳蜗 ossicles 听骨 auditory-vestibular nerve 前庭神经 oval window 椭圆窗 attenuation reflex 衰减反射 tensor tympani muscle 鼓膜张肌…

那些年听烂了的名词之“高可用“

那些年听烂了的名词之"高可用" 引言什么是可用性 ?哪些风险会影响系统的可用性 ?如何应对这些风险,从而确保系统的可用性 ?Phase: 设计做好容灾和多活处理做好容错设计做好资源隔离做好扩展性设计做好数据一致性处理 Phase: 预防做…

适配器Adapters

1.适配器作用 主要是对底层的东西进行改造 2.适配器种类:容器适配器,迭代器适配器,仿函数适配器 2.1容器适配器: stack,queue他们两的底层结构都为deque,deque有好多功能,而stack&#x…

如何将支持标准可观测性协议的中间件快速接入观测

前言 作为一名云原生工程师,如何将支持标准可观测性协议的中间件快速接入观测云呢?答案是只需要三步。 首先,需要确定您要观测的中间件类型。支持标准可观测性协议中间件可通过观测云的 DataKit 采集到中间件的关键指标。有些中间件自带可观…

文件系统与日志分析

一,文件系统 (一)inode 和block概述 1,文件数据包括元信息与实际数据 2,文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节 3,block (块) 连续的八个扇区组成一…

Java常用类---包装类

包装类 包装类简介 Java语言是典型的面向对象编程语言,但是其中的8种基本数据类型并不支持面向对象编程,基本类型数据不具备"对象"的特性,即:没有携带属性以及没有方法可以调用。 为了解决上述问题,java为…

【Dubbo3高级特性】「微服务云原生架构」带你从零基础认识搭建公司内部服务用户中心体系(实战指南-01)

基础服务-用户中心 什么是用户中心? 用户中心,在我们的概念里面范围比较的广泛,包含了用户信息、账号信息以及租户信息的管理控制,在我们的总体设计里面,如果设计的边界较为紧密,也可以将权限的部分功能R…

poium测试库介绍

poium测试库前身为selenium-page-objects测试库,我在以前的文章中也有介绍过:这可能是最简单的Page Object库,项目的核心是基于Page Objects实现元素定位的封装。该项目由我个人在维护,目前在公司项目中已经得到的应用。 ### poium的优势 Pa…

Unity中URP下使用屏幕坐标采样深度图

文章目录 前言一、Unity使用了ComputeScreenPos函数得到屏幕坐标1、 我们来看一下这个函数干了什么2、我们看一下该函数实现该结果的意义 二、在Shader中使用(法一)1、在Varying结构体中2、在顶点着色器中3、在片元着色器中 三、在Shader中使用&#xff…

微信小程序实战-01翻页时钟-1

文章目录 前言需求分析功能设计界面设计界面结构设计界面样式设计 逻辑设计 单页功能实现运行结果 前言 我经常在手机上用的一款app有一个功能是翻页时钟,基于之前学习的小程序相关的基础内容,我打算在微信小程序中也设计一个翻页时钟功能,J…

高校教务系统登录页面JS分析——河北农业大学教务系统

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文,你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习,勿用于非法用途。 一、密码加…

如何创建容器搭建节点

1.注册Discord账号 https://discord.com/这是登录网址: https://discord.com/ 2.点击startnow注册,用discord注册或者邮箱注册都可,然后登录tickhosting Tick Hosting这是登录网址:Tick Hosting 3.创建servers 4.点击你创建的servers,按照图中步骤进行