黑马头条 Kafka

news2025/1/13 7:42:16

我是南城余!阿里云开发者平台专家博士证书获得者!

欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!

知识库链接:

黑马头条D1 · 语雀


参考文章:

【黑马头条之kafka及异步通知文章上下架】_黑马头条项目使用kafka的作用是什么-CSDN博客

黑马头条使用Kafka是为了实现文章管理端和APP端的文章状态(已发布、或点赞等数据量大的操作)进行及时性传递。

1. 消息中间件分类

2. Kafka安装

docker pull zookeeper:3.4.14
docker run -d --name zookeeper -p 2181:2181 zookeeper:3.4.14


docker pull wurstmeister/kafka:2.12-2.3.1

docker run -d --name kafka \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.200.130 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.200.130:2181 \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.200.130:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
--env KAFKA_HEAP_OPTS="-Xmx256M -Xms256M" \
--net=host wurstmeister/kafka:2.12-2.3.1

3. Kafka入门

设置多个组 可以满足一对多

4. Kafka分区

5. Kafka高可用设计

6. Kafka生产者

7. spring boot 集成kafka

在yml中同时配置序列化和反序列化(序列化在Java中,简单理解就是将对象转换为字节流,反序列化则相反,将字节流转化为Java对象)

8. Kafka的一些问题记录

8.1. kakfa的同步和异步有啥区别

同步会确认服务器的确认,确认完才能发送消息,异步则不需要!

在Apache Kafka中,同步(Synchronous)和异步(Asynchronous)通常是指生产者(Producer)发送消息到Kafka集群的方式。下面是它们的区别:

  1. 同步发送(Synchronous Sending):
    • 在同步发送中,生产者发送消息后会等待服务器的确认(acknowledgment)。
    • 生产者会等待直到收到对消息的确认,以确保消息已经成功写入Kafka集群的指定分区。
    • 这种方式可以提供更高的可靠性,因为生产者会等待直到Kafka确认接收到消息并将其写入至少一个分区。但同时,它可能会引入一些延迟,因为生产者需要等待确认。
  1. 异步发送(Asynchronous Sending):
    • 在异步发送中,生产者发送消息后不会等待服务器的确认,而是继续发送下一批消息。
    • 这种方式可以提供更高的吞吐量,因为生产者可以继续发送新消息而不必等待每个消息的确认。
    • 不过,这也意味着生产者不能立即得知消息是否成功写入Kafka。如果发生错误,可能需要通过回调函数或其他方式来处理。

选择同步还是异步发送取决于应用程序的需求和性能要求。同步发送通常用于对数据可靠性有更高要求的情况,而异步发送则适用于对延迟和吞吐量有更高要求的情况。在异步发送中,生产者可能需要实现一些方式来处理潜在的错误和重试机制,以确保消息最终被成功写入。

8.2. Kafka的分区,主题有啥区别

分区是物理上的,主题是逻辑上的,两者其实属于同一纬度,是人们为了更好的区分。

在Apache Kafka中,分区(Partition)和主题(Topic)是两个核心的概念,它们在消息传递和存储中起到关键作用。

  1. 主题(Topic):
    • 主题是消息发布和订阅的逻辑容器。它是一种逻辑概念,用于组织和分类消息。你可以将主题看作是消息的分类或主题的命名标识符。
    • 生产者将消息发送到特定的主题,而消费者则从特定的主题订阅消息。主题可以有多个订阅者,允许多个消费者独立地消费同一主题的消息。
    • 主题可以被配置为拥有多个分区,以便实现水平扩展和提高并行性。
  1. 分区(Partition):
    • 分区是主题的物理子集,每个分区是一个有序且不可变的消息序列。每个消息都属于一个特定的分区。
    • 分区允许Kafka在集群中并行处理和存储消息。它们是Kafka实现高吞吐量和水平扩展性的关键因素之一。
    • 每个分区在物理上存储在不同的地方,并且可以在不同的机器上。这有助于分散负载和提高容错性。
    • 消费者可以独立地从每个分区读取消息,这提高了并发性。

关键区别:

  • 主题(Topic)是逻辑概念,用于组织和分类消息;而分区(Partition)是主题的物理子集,用于实现水平扩展和并行处理。
  • 主题可以包含一个或多个分区,每个分区存储特定范围的消息。
  • 消费者订阅主题,但实际上消费者是从分区中读取消息的。

总体而言,主题提供了逻辑上的组织和分类,而分区则允许在分布式环境中高效地存储和处理消息。

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

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

相关文章

SpringBoot-基础篇03

之前搭建了整个开发环境实现了登录注册,springBoot整合mybatis完成增删改查,今天完成分页查询,使用阿里云oss存储照片等资源,后期会尝试自己搭建分布式文件系统来实现。 一,SpringBootMybatis完成分页查询 1&#xff…

选择大语言模型:2024 年开源 LLM 入门指南

作者:来自 Elastic Aditya Tripathi 如果说人工智能在 2023 年起飞,这绝对是轻描淡写的说法。数千种新的人工智能工具被推出,人工智能功能被添加到现有的应用程序中,好莱坞因对这项技术的担忧而戛然而止。 甚至还有一个人工智能工…

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略

LLMs之miqu-1-70b:miqu-1-70b的简介、安装和使用方法、案例应用之详细攻略 目录 miqu-1-70b的简介 miqu-1-70b的安装和使用方法 1、安装 2、使用方法 miqu-1-70b的案例应用 miqu-1-70b的简介 2024年1月28日,发布了miqu 70b,潜在系列中的…

Java面向对象 创建类 创建对象

目录 创建类类的属性类的方法实例分析 创建对象创建Test类测试分析 创建类 类的属性 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。 属性定义格式: [修饰符] 属性类型 属性名 [默认值] ;类的方法 方法用于定义该类或该类实例…

【ARM 嵌入式 编译系列 2.7 -- GCC 编译优化参数详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 GCC 编译优化概述常用优化等级-O1 打开的优化选项-O2 打开的优化选项-O3 打开的优化选项-Os 打开的优化选项优化技术使用优化选项的注意事项GCC 编译优化概述 GCC(GNU Compiler Collection)包含了用于C、C++、Objective-C、Fort…

大模型综述

1.概念 大模型是指人工智能预训练大模型,具有海量参数和复杂架构,用于深度学习任务的模型,拥有强大的处理能力和表征能力,以数据算力为支撑,借助数据管理、模型训练、评估优化、服务平台、插件等辅助工具,…

Windows显示空的可移动磁盘的解决方案

123  大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式…

macbookpro和macbookair的区别?cleanmymac 怎么清理mac空间

苹果mac air和pro区别有:1、air采用了轻薄的设计,重量相对较轻,便于携带,而pro更加注重性能,所以比较重;2、air通常搭载较低功耗的处理器内存和存储容量相对较小,而pro配备了更强大的处理器、更…

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了(源码错了,顺带升级了)

【最佳实践】el-admin多表CRUD最佳实践,不允许你只会搞单表CRUD了,(源码错了,顺带升级了) 一、el-admin前端通用核心组件二、如何使用?2.1 新建组件2.2 修改对象属性标记2.3 修改四类组件引用标记2.4 生效 …

HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)

预览效果 部分代码 开发语言 HarmonyOS 鸿蒙 ArkTS语言 (Stage模型) 备注 一键生成,自带证件照数集, 为开发者带来二次开发和学习体验, 在这祝福开发者们使用愉快。 使用方法 下载后通过DevEco Studio开发工…

HarmonyOS开发工具DevEco Studio安装以及汉化

HUAWEI DevEco Studio 面向HarmonyOS应用及元服务开发者提供的集成开发环境(IDE), 助力高效开发。 应用内共享HSP开发 支持在Stage模型和模块化编译方式下开发HSP,以及共享HSP给应用内其他模块使用;支持运行态共享HSP。Code Linter代码检查 支持ArkTS/T…

多模态论文串讲·上【论文精读·46】

大家好,今天我们就来过一下多模态的串讲,其实之前我们也讲了很多工作了,比如说clip,还有 ViLT 以及 clip 的那么多后续工作。多模态学习在最近几年真的是异常的火爆,那除了普通的这种多模态学习,比如说视觉…

【大数据】Flink 中的 Slot、Task、Subtask、并行度

Flink 中的 Slot、Task、Subtask、并行度 1.并行度2.Task 与线程3.算子链与 slot 共享资源组4.Task slots 与系统资源5.总结 我们在使用 Flink 时,经常会听到 task,slot,线程 以及 并行度 这几个概念,对于初学者来说,这…

爬虫工作量由小到大的思维转变---<第四十四章 Scrapyd 用gerapy管理多台机器爬虫>

前言: 之前讲过关于如何在gerapy中部署本地爬虫, 爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapydGerapy>_gerapy如何登录-CSDN博客 爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapydGerapy 部署爬虫项目&…

锦上添花!特征选择+深度学习:mRMR-CNN-BiGRU-Attention故障识别模型!特征按重要性排序!最大相关最小冗余!

适用平台:Matlab2023版及以上 特征选择方法:"最大相关最小冗余"(Maximal Relevance and Minimal Redundancy,简称MRMR)是一种用于特征选择的方法。该方法旨在找到最相关的特征集,同时最小化特征…

[UI5 常用控件] 06.Splitter,ResponsiveSplitter

文章目录 前言1. Splitter1.1 属性 2. ResponsiveSplitter 前言 本章节记录常用控件Splitter,ResponsiveSplitter。主要功能是分割画面布局。 其路径分别是: sap.ui.layout.Splittersap.ui.layout.ResponsiveSplitter 1. Splitter 1.1 属性 orientation &#x…

Meta开源大模型LLaMA2的部署使用

LLaMA2的部署使用 LLaMA2申请下载下载模型启动运行Llama2模型文本补全任务实现聊天任务LLaMA2编程Web UI操作 LLaMA2 申请下载 访问meta ai申请模型下载,注意有地区限制,建议选其他国家 申请后会收到邮件,内含一个下载URL地址,…

【python】绘制爱心图案

以下是一个简单的Python代码示例,它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先,请确保计算机上安装了Python和turtle模块。然后,将以下代码保存到一个.py文件中,运行它就可以看到爱心图案的绘制过程。 import turt…

【ArcGIS微课1000例】0101:删除冗余节点或折点

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

【webpack】优化提升

webpack优化提升 安装webpack相关内容向下兼容游览器-babel/polyfill进一步优化babel/polyfill模块联邦-共享模块如何提升构建性能通用环境下1,webpack更新到最新版本2,将loader应用于最少数量的必要模块3,引导(每个额外的loader/…