Kafka 概述

Kafka

  • 为什么需要消息队列(MQ)
  • 使用消息队列的好处
    • (1)解耦
    • (2)可恢复性
    • (3)缓冲
    • (4)灵活性 & 峰值处理能力
    • (5)异步通信
  • 消息队列的两种模式
    • (1)点对点模式
    • (2)发布/订阅模式
  • Kafka 定义
  • Kafka 的特性
    • ●高吞吐量、低延迟
    • ●可扩展性
    • ●持久性、可靠性
    • ●容错性
    • ●高并发
  • kafka架构
  • filebeat+kafka数据流向

为什么需要消息队列(MQ)

主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。
我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队列常应用于异步处理,流量削峰,应用解耦,消息通讯等场景。

当前比较常见的 MQ 中间件有 ActiveMQ、RabbitMQ、RocketMQ、Kafka 等。

使用消息队列的好处

(1)解耦

允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

(2)可恢复性

系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

(3)缓冲

有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致的情况。

(4)灵活性 & 峰值处理能力

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

(5)异步通信

很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

消息队列的两种模式

(1)点对点模式

(一对一,消费者主动拉取数据,消息收到后消息清除)

(2)发布/订阅模式

(一对多,又叫观察者模式,消费者消费数据之后不会清除消息)

发布/订阅模式是定义对象间一种一对多的依赖关系,使得每当一个对象(目标对象)的状态发生改变,则所有依赖于它的对象(观察者对象)都会得到通知并自动更新。

Kafka 定义

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

Kafka 的特性

●高吞吐量、低延迟

Kafka 每秒可以处理几十万条消息,它的延迟最低只有几毫秒。每个 topic 可以分多个 Partition,Consumer Group 对 Partition 进行消费操作,提高负载均衡能力和消费能力。

●可扩展性

kafka 集群支持热扩展

●持久性、可靠性

消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

●容错性

允许集群中节点失败(多副本情况下,若副本数量为 n,则允许 n-1 个节点失败)

●高并发

支持数千个客户端同时读写

kafka架构

在这里插入图片描述

producer 生产者

副本 leader 领导者 follower 跟随者

consumer 消费者

borkers 服务器

partition 分区

topic 消息主题 或者表 或者键 存放 表和键的数据

replica 副本 有多个副本可以实现高可用 副本中有leader领导者 follwer 跟随者

leader 负责读写

follower 复制备份

kafka消息队列MQ 大数据实时处理 应用解耦 数据缓冲 流量晓峰 异步处理

发布/订阅模式(观察者模式,一对多,消费完不会清楚数据)

每个组只能有一个消费者分区

zookeeper负责监控寻找(offset记录信息)

filebeat+kafka数据流向

在这里插入图片描述

filebeat收集各个日志

到kafka

kafka传到logstash

logstash再给es(可以一台或多台)

传给kibana进行展示

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

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

相关文章

Http、SSE、Websocket的区别

从传输方向上看 http是客户端发送请求,然后服务端进行响应的单向通道网络传输协议; SSE( Server-sent Events )则相反,只能是服务器向客户端发送消息,如果客户端需要向服务器发送消息,则需要一…

掌握Python的X篇_30_使用python解析网页HTML

本篇将会介绍beutifulsoup4模块,可以用于网络爬虫、解析HTML和XML,对于没有接触过前端,不了解HTML是如何工作的,需要先解释一下什么事HTML。 1. HTML 网页中的各种布局等的背后都是非常简单的纯文本格式,那种格式称为…

【杨辉三角的两种解法——(超级详细)】

杨辉三角 1.杨辉三角简介🕵️ 杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600…

7.3 详解NiN模型--首次使用多层感知机(1x1卷积核)替换掉全连接层的模型

一.前提知识 多层感知机:由一个输入层,一个或多个隐藏层和一个输出层组成。(至少有一个隐藏层,即至少3层) 全连接层:是MLP的一种特殊情况,每个节点都与前一层的所有节点连接,全连接…

设计模式(6)原型模式

一、介绍 Java中自带的原型模式是clone()方法。该方法是Object的方法,native类型。他的作用就是将对象的在内存的那一块内存数据一字不差地再复制一个。我们写简单类的时候只需要实现Cloneable接口,然后调用Object::clone方法就可实现克隆功能。这样实现…

emqx-5.1.4开源版使用记录

emqx-5.1.4开源版使用记录 windows系统安装eqmx 去官网下载 emqx-5.1.4-windows-amd64.zip,然后找个目录解压 进入bin目录,执行命令启动emqx 执行命令 emqx.cmd start使用emqx 访问内置的web管理页面 浏览器访问地址 http://localhost:18083/#/dashboard/overv…

猿人学刷题系列(第一届比赛)——第二题( js 混淆 - 动态cookie 1)

题目:提取全部5页发布日热度的值,计算所有值的加和 地址:https://match.yuanrenxue.cn/match/2 思路分析 本题我们会简单说一下两种不同的方式去处理,一种是不还原混淆代码直接从源代码硬扣生成逻辑,另一种则是还原…

【golang】库源码文件

库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从Go语言规范的话)。 这里的“其他代码”可以与被使用的程序实体在同一个源码文件内,也可以在其他源码文件&#x…

Android JNI3--JNI基础

1,C预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preproc…

数据通信——VRRP

引言 之前把实验做了,结果发现我好像没有写过VRRP的文章,连笔记都没记过。可能是因为对STP的记忆,导致现在都没忘太多。 一,什么是VRRP VRRP全名是虚拟路由冗余协议,虚拟路由,看名字就知道这是运行在三层接…

Linux 基础(三)常用命令-文件目录

常用命令 man 和 --help文件(夹)文件补充命令 man 和 --help 查看命令帮助信息 man 命令命令 --helphelp 命令(适用于绑定在shell里面的一些基础命令) 文件(夹) mkdir -p dirrmdir -p dirrm -rf …cp […

Solr的入门使用

Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化,被很多需要搜索的网站中广泛使用。…

人员数量统计和跟踪的实现原理详细介绍,并提供完整实现代码

人数统计和跟踪项目的方法 目标是构建一个具有以下功能的系统。 读取视频中的帧。在输入框架上绘制所需的参考线。使用对象检测模型检测人员。标记检测到的人的质心。跟踪该标记质心的运动。计算质心移动的方向(向上还是向下移动)。计算进入或离开参考线的人数。根据计数,递…

C语言三子棋小游戏--数组的应用

注:在最后面,完整源码会以两种形式展现。在讲解时,以三个源文件的形式。 前言:三子棋,顾名思义,就是三个子连在一起就可以胜出。在本节我们要介绍的三子棋模式是这样子的:在键盘输入坐标&#x…

HTML详解连载(3)

HTML详解连载(3) 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽表单作用使用场景 input标签基本使用示例type属性值以及说明 input标签占位文本示例注意 单选框 radio代码示例 多选框-checkbox注意代码示例 文本域作用标签&#xff1…

【前端 | CSS】flex布局

基本概念 Flexible模型,通常被称为 flexbox,是一种一维的布局模型。它给 flexbox 的子元素之间提供了强大的空间分布和对齐能力 我们说 flexbox 是一种一维的布局,是因为一个 flexbox 一次只能处理一个维度上的元素布局,一行或者…

R语言4_安装BayesSpace

环境Ubuntu22/20, R4.1 你可能会报错说你的R语言版本没有这个库,但其实不然。这是一个在Bioconductor上的库。 同时我也碰到了这个问题,ERROR: configuration failed for package systemfonts’等诸多类似问题,下面的方法可以一并解决。 第…

Mr. Cappuccino的第61杯咖啡——Spring之BeanPostProcessor

Spring之BeanPostProcessor 概述基本使用项目结构项目代码运行结果源代码 常用处理器项目结构项目代码执行结果 概述 BeanPostProcessor:Bean对象的后置处理器,负责对已创建好的bean对象进行加工处理; BeanPostProcessor中的两个核心方法&am…

[内网渗透]CFS三层靶机渗透

文章目录 [内网渗透]CFS三层靶机渗透网络拓扑图靶机搭建Target10x01.nmap主机探活0x02.端口扫描0x03.ThinkPHP5 RCE漏洞拿shell0x04.上传msf后门(reverse_tcp)反向连接拿主机权限 内网渗透Target2(1)路由信息探测(2)msf代理配置&a…

LeetCode150道面试经典题--找出字符串中第一个匹配项的下标(简单)

1.题目 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 2.示例 3.思路 回溯算法:首先将…