当前位置: 首页 > news >正文

消息队列与Kafka基础:从概念到集群部署

目录

一、消息队列

1.什么是消息队列

2.消息队列的特征

3.为什么需要消息队列

二、Kafka基础与入门

1.Kafka基本概念

2.Kafka相关术语

3.Kafka拓扑架构

4.Topic与partition

5.Producer生产机制

6.Consumer消费机制

三、Zookeeper概念介绍

1.zookeeper概述

2.zookeeper应用举例

3.zookeeper的工作原理是什么

4.zookeeper集群架构

5.zookeeper的工作流程

四、Zookeeper在Kafka中的作用

1.Broker注册

2.Topic注册

3.生产者负载均衡

4.消费者负载均衡

5.记录消息分区与消费者的关系

6.消息消费进度Offset记录

7.消费者注册

五、集群部署Kafka

1.资源清单

2.基础环境设置

3.安装Zookeeper

4.安装kafka

5.测试


一、消息队列

1.什么是消息队列

a.消息是指在应用间传输的数据

b.消息队列是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递

2.消息队列的特征

a.存储:

        与依赖于使用套节子的基本TCP和UDP协议的传统请求和响应系统不同,消息队列通常将消息存储在某种类型的缓冲区中,直到目标进程读取这些信息或将其从消息队列中显式移除为止

b.异步:

        与请求和响应系统不同,消息队列通过缓冲消息可以在应用程序中实现一定程度的异步性,允许源进程发送消息并在队列中累计消息,而目标简称可以挑选消息进行处理

        路由:消息队列还可以提供路由功能,其中多个进程可以在同一队列中读取或写入消息,从而实现广播或单播通信方式

3.为什么需要消息队列

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

b.冗余:消息队列把数据进行持久化知道它们已经被完全处理,通过这一方式规避了数据丢失风险。消息队列采用“插入-获取-删除”范式

c.扩展性:因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可

d.灵活性 & 峰值处理能力:使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃

e.可恢复性:消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统中恢复后被处理

f.顺序保证:大部分的消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理

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

h.异步通信:允许用户把一个消息放入队列,但并不处理它

二、Kafka基础与入门

1.Kafka基本概念

a.Kafka是一种高吞吐量的分布式发布/订阅消息系统

b.Kafka是Apache组织下的一个开源系统,它的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop平台的数据分析、低延时的实施系统storm/spark流式处理引擎

2.Kafka相关术语

a.Broker:Kafka集群包含一个或多个服务器,每个服务器被称为broker(经纪人)

b.Topic:每条发布到Kafka集群的消息都有一个分类,这个类别被称为Topic(主题)

c.Producer:指消息的消费者,从kafka broker拉取数据,并消费这些已发布的消息

d.Consumer:指消息的消费者,从kafka broker拉取数据,ing消费这些已发布的消息

e.Partition:是物理上的概念,每个Topic包含一个或多个Partition,每个partition都是一个有序的队列。partition中的每条消息都会被分配一个有序的id

f.Consumer Group:消费者组,可以给每个Consumer指定消费组,若不指定消费者组,则属于默认的group

g.Message:消息,通信的基本单位,每个producer可以向一个topic发布一些消息

3.Kafka拓扑架构

a.一个典型的kafka集群包含若干Producer、若干broker、若干Consumer Group、以及一个Zookeeper集群

b.典型的消息系统有生产者(Producer),存储系统(boker)和消费者(Consumer)组成

c.kafka支持消息持久化存储,持久化数据保存在kafka的日志文件中,在生产者生产消息后,kafka不会直接把消息传递给消费者,而是先要在boker中进行存储,为了减少磁盘写入的次数,broker会将消息暂时缓存起来,当消息的个数或尺寸、大小达到一定的贬职时,再统一写到磁盘上,这样不但提高了kafka的执行效率,也减少了磁盘IO调用次数

d.kafka中每条消息写到partition中,是顺序写入磁盘中的

4.Topic与partition

a.Kafka中topic(主题)是以partition的形式存放的,每个topic都可以设置它的partition数量,Partition的数量决定了组成topic的log的数量

b.Topic为什么要设置多个Partition? 因为kafka是基于文件存储的,通过配置多个partition可以将消息内容分散存储到多个broker上,这样可以避免文件尺寸达到单机磁盘的上限。同时,将一个topic切分成任意多个partitions,可以保证消息存储、消息消费的效率

c.再存储结构上,每个partiton再物理上对应一个文件夹,该文件夹下存储这个partition的所有消息和索引文件

d.再每个partition中有多个大小相等的segment数据文件,每个segment的大小相同的,但是每条消息的大小是不同的,因此segment<br/>数据文件消息数量不一定相等

5.Producer生产机制

a.Producer是消息和数据的生产者,他发送消息到broker时,会根据Parition机制选择将其存储到哪一个Partition

b.如果Partition机制设置的合理,所有消息都可以均匀的分布到不同的Partition里,这样可以实现数据的负载均衡

6.Consumer消费机制

a.Kafka发布消息的模式:队列模式和发布/订阅模式

b.Kafka中的Producer和consumer采用的时push、pull模式,即producer向broker进行push消息,comsumer从bork进行pull消息,push和pull对于消息的生产和消费时异步进行的

三、Zookeeper概念介绍

1.zookeeper概述

a.Zookeeper是一种分布式协调技术,主要是用来解决分布式环境当中多个进程之间的同步控制,让它们有序的去访问某种共享资源,防止造成资源竞争的后果

b.Zookeeper是一种分布式应用所设计的高可用、高性能的开源协调服务,它提高了一行基本服务:分布式锁服务,同时也提供了数据的维护和管理机制

2.zookeeper应用举例

a.什么单点故障问题?

就是再一个主从的分布式系统中,主节点负责任务调度分发,从节点负责任务的处理,而当主节点发生故障时,整个应用系统也就瘫痪了

b.传统的方式是怎么解决单点故障的?以及有哪些缺点?

传统的方式是采用一个备用节点,这个备用节点定期向主节点发送ping包,主节点收到ping包以后向备用节点发送恢复ACK信息,当备用节点收到回复的时候就会认为当前主节点运行正常,让它继续提供服务。当主节点故障时,备用节点就无法收到回复信息,此时,备用节点就任务主节点宕机,然后接替它成为新的主节点继续提供服务

3.zookeeper的工作原理是什么

a.master启动

在分布式系统中引入Zookeeper以后,就可以配置多个主节点,这里以配置两个主节点为例,假设它们时主节点A和主节点B,当两个主节点都启动后,它们都想Zookeeper中注册节点信息

b.master故障

如果主节点A发生了故障,这时候它在Zookeeper所注册的节点信息会被自动删除,而Zookeeper会自动感知节点的变化,发现主节点A故障后,会再次发出选举,这时候主节点B将在选举获胜,替代主节点A成为新的主节点

c.master恢复

如果主节点恢复了,它会再次向Zookeeper注册自身的节点信息,只不过这时候它注册的节点信息将会变成master0003,而不是原来的信息。Zookeeper会感知节点信息的变化再次选举,这时候,主节点B在选举中再次获胜,继续担任主节点,主节点A会担任备用节点

4.zookeeper集群架构

Server的三个角色

Leader:领导者角色,主要负责投票的发起和决议,以及更新系统状态

Follower:跟随者角色,用于接收客户端的请求并把返回结果给客户端妙哉选举过程中参与投票

observer:观察者角色,用户接收客户端的请求,并将写请求转发给leader,同时同步leader状态,但不参与投票。Observer目的是扩展系统,提高伸缩性

5.zookeeper的工作流程

a.Zookeeper修改数据的流程:Zookeeper集群中每个Server在内存中存储了一份数据,在Zookeeper启动时,将从实例中选举一个Server作为leader ,Leader负责处理数据更新等操作,当且仅当大多数Server在内存中成功修改数据,才认为数据修改成功

b.Zookeeper写的流程:客户端Client首先和一个Server或者Observe通信,发起写请求,然后Server将写请求转发给Leader,Leader再将写请求转发给其它Server,其它Server在接收到写请求后写入数据并响应Leader,Leader在接收到大多数写成功回应后,认为数据写成功,最后响应Cliect,完成一次写操作过程

四、Zookeeper在Kafka中的作用

1.Broker注册

a.Broker是分布式并且相互之间相互独立,但是需要有一个注册系统能够将整个集群中的Broker管理起来,此时就使用到了Zookeeper

b.在Zookeeper上会有一个专门用来进行Borker服务器列表记录的节点:/brokers/ids

c.Kafka使用了全局唯一的数字来指代每个Broker服务器,不同的Broker必须使用不同的Broker ID进行注册,创建完之后,每个Broker就会将自己的IP地址和端口号记录到该节点中

2.Topic注册

a.在Kafka中,同一个Topic的消息会被分成多个分区并将其分布在多个Broker上,这些分区信息及与Broker的对应关系也都是由Zookeeper在维护,由专门节点来记录:/brokers/topics

b.Kafka中每个Topic都会以/broker/topics/[topic]的形式被记录

3.生产者负载均衡

a.四层负载均衡

b.使用Zookeeper进行负载均衡

4.消费者负载均衡

Kafka中的消费者同样需要进行负载均衡来实现多个消费者合理的从对应Broker服务器上接收消息,每个消费者分组包含若干消费者,每条消息指挥发送给分组中的一个消费者

5.记录消息分区与消费者的关系

a.消费组下由多个消费者,

b.对于每个消费者组,Kafka会为其分配一个全局唯一的Group ID,Group内部的所有消费者共享该ID。

c.订阅的topic下的每个分区只能分配给你某个group下的一个consumer

d.Kafka为每个消费者分配一个Consumer ID 采用“Hostname:UUID”

e.在Kafka中,规定了每个消息分区只能被同组的一个消费者进行消费,因此需要在Zookeeper上记录消息分区域Consmer 之间的关系

6.消息消费进度Offset记录

在消费者对指定消息分区进行消息消费的过程中,需要定时的将分区消息的消费进度Offset记录到Zookeeper上,以便在该消费者进行重启或其它消费者重新接管该消息分区的消息消费后,能够从之前的进度开始继续进行消息消费

7.消费者注册

a.注册搭配消费者分组

b.对消费者分组中的消费者变化的注册监听

c.对Broker服务器变化注册监听

d.进行消费者负载均衡

五、集群部署Kafka

1.资源清单

主机

操作系统

IP地址

Kafka1

OpenEuler24.03

192.168.16.142

Kafka2

OpenEuler24.03

192.168.16.143

Kafka3

OpenEuler24.03

192.168.16.144

2.基础环境设置

a.修改主机名

hostnamectl set-hostname kafka1
hostnamectl set-hostname kafka2
hostnamectl set-hostname kafka3

b.添加地址映射

vi /etc/hosts 192.168.16.142  kafka1
192.168.16.143  kafka2
192.168.16.144  kafka3

3.安装Zookeeper

a.安装zookeeper

dnf -y install java tar
tar zxf apache-zookeeper-3.6.0-bin.tar.gz 
mv apache-zookeeper-3.6.0-bin /etc/zookeeper
cd /etc/zookeeper/conf/
mv zoo_sample.cfg zoo.cfg

b.编辑配置文件

vi /etc/zookeeper/conf/zoo.cfgdataDir=/etc/zookeeper/zookeeper-dataserver.1=192.168.16.142:2888:3888
server.2=192.168.16.143:2888:3888
server.3=192.168.16.144:2888:3888

c.新增数据目录

mkdir /etc/zookeeper/zookeeper-data

d.创建ID节点

#kafka1
echo '1' > /etc/zookeeper/zookeeper-data/myid
#kafka2
echo '2' > /etc/zookeeper/zookeeper-data/myid
#kafka3
echo '3' > /etc/zookeeper/zookeeper-data/myid

e.启动服务

cd /etc/zookeeper/
./bin/zkServer.sh start
./bin/zkServer.sh status
ss -nlpt

4.安装kafka

a.安装kafka

cd
tar zxf kafka_2.13-2.4.1.tgz 
mv kafka_2.13-2.4.1 /etc/kafka

b.配置kafka配置文件(三台21行、31行修改不同)

vi /etc/kafka/config/server.properties #修改21行,注意其它的两个ID分别为2和3
broker.id=1
#修改31行去#号,修改成各自节点的IP地址
listeners=PLAINTEXT://192.168.16.142:9092
#修改60行路径
log.dirs=/etc/kafka/kafka-logs
#65行分片数量
num.partitions=1
#123行,填写集群中各节点的地址和端口
zookeeper.connect=192.168.16.142:2181,192.168.16.143:2181,192.168.16.144:2181

c.启动kafka服务

mkdir /etc/kafka/kafka-logs
cd /etc/kafka
nohup ./bin/kafka-server-start.sh config/server.properties &
ss -nlpt

5.测试

a.修改脚本

 sed -i 's/egrep/grep -E/' bin/kafka-run-class.sh

 b.创建topic(任意一台)

bin/kafka-topics.sh --create --zookeeper kafka1:2181 --replication-factor 1 --partitions 1 --topic test

c.列出topic(任意一台)

bin/kafka-topics.sh --list --zookeeper kafka1:2181 

d.生产消息

bin/kafka-console-producer.sh --broker-list kafka1:9092 -topic test

e.消费消息

bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic test

相关文章:

消息队列与Kafka基础:从概念到集群部署

目录 一、消息队列 1.什么是消息队列 2.消息队列的特征 3.为什么需要消息队列 二、Kafka基础与入门 1.Kafka基本概念 2.Kafka相关术语 3.Kafka拓扑架构 4.Topic与partition 5.Producer生产机制 6.Consumer消费机制 三、Zookeeper概念介绍 1.zookeeper概述 2.zooke…...

计算机指令分类和具体的表示的方式

1.关于计算机的指令系统 下面的这个就是我们的一个简单的计算机里面涉及到的指令&#xff1a; m就是我们的存储器里面的地址&#xff0c;可以理解为memory这个意思&#xff0c;r可以理解为rom这样的单词的首字母&#xff0c;帮助我们去进行这个相关的指令的记忆&#xff0c;不…...

pcie phy-电气层-gen1/2(TX)

S IP物理层讲解 在synopsys IP中对于phy层的内容分离的比较多&#xff1a; cxpl中&#xff1a; u_cx_phy_logical&#xff1a;包含ts序列的解析&#xff08;smlh&#xff09;&#xff1b; pipe层协议的转换&#xff08;rmlh,xmlh)&#xff1b;pipe转dllp包&#xff08;rplh&…...

Baklib加速企业AI数据智理转型

Baklib智理AI数据资产 在AI技术深度渗透业务场景的背景下&#xff0c;Baklib通过构建企业级知识中台架构&#xff0c;重塑了数据资产的治理范式。该平台采用智能分类引擎与语义分析模型&#xff0c;将分散在邮件、文档、数据库中的非结构化数据转化为标准化的知识单元&#xf…...

深度学习驱动下的目标检测技术:原理、算法与应用创新

一、引言​ 1.1 研究背景与意义​ 目标检测作为计算机视觉领域的核心任务之一&#xff0c;旨在识别图像或视频中感兴趣目标的类别&#xff0c;并确定其在图像中的位置&#xff0c;通常以边界框&#xff08;Bounding Box&#xff09;的形式表示 。其在现实生活中有着极为广泛且…...

window 显示驱动开发-使用有保证的协定 DMA 缓冲区模型

Windows Vista 的显示驱动程序模型保证呈现设备的 DMA 缓冲区和修补程序位置列表的大小。 修补程序位置列表包含 DMA 缓冲区中命令引用的资源的物理内存地址。 在有保证的协定模式下&#xff0c;用户模式显示驱动程序知道 DMA 缓冲区和修补程序位置列表的确切大小&#xff0c;…...

《指针与整数相加减的深入解析》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、指针与整数相加的原理二、指针与整数相减的原理三、使用场景&#xff08;一&#xff09;数组操作&#xff08;二&#xff09;内存遍历 四、注意事项&…...

C++_STL_map与set

1. 关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、 forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身。那什么是…...

1949-2022年各省农作物播种面积数据(22个指标)

1949-2022年各省农作物播种面积数据&#xff08;22个指标&#xff09; 1、时间&#xff1a;1949-2022年 2、来源&#xff1a;各省年鉴、国家统计局、农业部、农业年鉴 3、范围&#xff1a;31省 4、指标&#xff1a;年度标识、省份编码、省份名称、农作物总播种面积、粮食作…...

汽车二自由度系统模型以及电动助力转向系统模型

汽车二自由度系统模型与电动助力转向系统&#xff08;EPS&#xff09;的详细建模方案&#xff0c;包含理论推导、MATLAB/Simulink实现代码及参数说明&#xff1a; 一、二自由度汽车模型 1. 模型描述 包含以下两个自由度&#xff1a; 横向运动&#xff08;侧向加速度&#xf…...

【学习笔记】计算机操作系统(四)—— 存储器管理

第四章 存储器管理 文章目录 第四章 存储器管理4.1 存储器的层次结构4.1.1 多层结构的存储器系统4.1.2 主存储器与寄存器4.1.3 高速缓存和磁盘缓存 4.2 程序的装入和链接4.2.1 程序的装入4.2.2 程序的链接 4.3 连续分配存储管理方式4.3.1 单一连续分配4.3.2 固定分区分配4.3.3 …...

51单片机的lcd12864驱动程序

#include <reg51.h> #include <intrins.h>#define uchar...

(03)数字化转型之库存管理:从进库到出库的数字化运营

在当今竞争激烈的商业环境中&#xff0c;高效的库存管理已成为企业降低成本、提高运营效率的关键。本文将系统性地介绍库存管理的全流程&#xff0c;包括进库、出库、移库、盘点等核心环节&#xff0c;帮助企业构建科学合理的库存管理体系。 一、进库管理&#xff1a;从计划到执…...

windows编程中加载DLL的两种典型方式的比较

文章目录 DLL定义头文件定义CPP实现DLL的调用代码直接使用通过LoadLibrary调用导入表的依赖LoadLibrary使用DLL库中的类DLL中定义工厂函数调用时的代码补充:为什么LoadLibrary不能直接导出类在windows的编程中,使用DLL是一个非常常见的操作。一般来说,有两种集成DLL的方式:…...

存储器上如何存储1和0

在计算机存储器中&#xff0c;数据最终以**二进制形式&#xff08;0和1&#xff09;**存储&#xff0c;这是由硬件特性和电子电路的物理特性决定的。以下是具体存储方式的详细解析&#xff1a; 一、存储的物理基础&#xff1a;半导体电路与电平信号 计算机存储器&#xff08;…...

【笔记】记一次PyCharm的问题反馈

#工作记录 最近更新至 PyCharm 社区版的最新版本后&#xff0c;我遇到了多个影响使用体验的问题。令人感到不便的是&#xff0c;一些在旧版本中非常便捷的功能&#xff0c;在新版本中却变得操作复杂、不够直观。过去&#xff0c;我一直通过 PyCharm 内置的故障报告与反馈机制反…...

logrotate按文件大小进行日志切割

✅ 编写logrotate文件&#xff0c;进行自定义切割方式 adminip-127-0-0-1:/data/test$ cat /etc/logrotate.d/test /data/test/test.log {size 1024M #文件达到1G就切割rotate 100 #保留100个文件compressdelaycompressmissingoknotifemptycopytruncate #这个情况服务不用…...

基于大模型的脑出血智能诊疗与康复技术方案

目录 一、术前阶段1.1 数据采集与预处理系统伪代码实现流程图1.2 特征提取与选择模块伪代码实现流程图1.3 大模型风险评估系统伪代码实现流程图二、术中阶段2.1 智能手术规划系统伪代码实现流程图2.2 麻醉智能监控系统伪代码实现流程图三、术后阶段3.1 并发症预测系统伪代码片段…...

P21-RNN-心脏病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、RNN 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称 RNN&#xff09;是一类以序列数据为输入&#xff0c;在序列的演进方向进行递归…...

懒汉式单例模式的线程安全实现

懒汉式单例模式的线程安全实现 懒汉式单例模式的核心特点是延迟实例化(在第一次使用时创建对象),但其基础实现存在线程安全问题。以下是不同线程安全实现方式的详细说明和对比: 1. 非线程安全的基础懒汉式 public class UnsafeLazySingleton {private static UnsafeLazyS…...

Java 常用的Arrays函数

文章目录 ArrayssorttoStringbinarySearchequalsfill 数组拷贝copyOfcopyOfRangearraycopy 二维数组定义遍历deepToString空指针异常 Arrays sort int[] array new int[]{1,20,3}; Arrays.sort(array);// 1 3 20toString 帮助数组转为字符串 int[] array new int[]{1,2,3…...

FEKO许可证与版本兼容性问题

随着电磁仿真技术的不断进步&#xff0c;FEKO软件不断更新迭代&#xff0c;为用户提供更强大的功能和更优秀的性能。然而&#xff0c;在升级过程中&#xff0c;FEKO许可证与版本兼容性问题往往成为用户关注的焦点。本文将为您详细解读FEKO许可证与版本兼容性问题&#xff0c;帮…...

HarmonyOs开发之——— ArkWeb 实战指南

HarmonyOs开发之——— ArkWeb 实战指南 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———合理使用动画与转场:CSDN 博客链接 一、ArkWeb 组件基础与生命周期管理 1.1 Web 组件核心能力概述 ArkWeb 的Web组件支持加载本地或在线网页,提供完整的生命周期回调体…...

冰箱磁力贴认证标准16CFR1262

在亚马逊平台&#xff0c;冰箱磁力贴这类可能被儿童接触到的产品&#xff0c;有着严格的规范哦。必须得遵守 16 CFR 1262 标准&#xff0c;还得有符合该标准的测试报告和 GCC 证书&#xff0c;不然产品就可能被禁止销售或者面临召回&#xff0c;那可就损失大啦&#xff01; ​ …...

Java中的锁机制全解析:从synchronized到分布式锁

在多线程编程中&#xff0c;锁是保证线程安全的核心工具。本文将详解Java中常见的锁机制及其实际应用场景&#xff0c;帮助开发者选择最合适的锁方案。 一、内置锁&#xff1a;synchronized 原理 通过JVM内置的监视器锁&#xff08;Monitor&#xff09;实现&#xff0c;可修…...

OptiStruct实例:3D实体转子分析

上一节介绍了1D转子的临界转速分析。在1D转子模型中&#xff0c;转子是以集中质量单元的形式建模的。此种建模方法不可避免地会带来一些简化和局部特征的缺失。接下来介绍OptiStruct3D实体转子的建模及临界转速分析实例。 3D实体转子建立详细的转子网格模型&#xff0c;然后将…...

简单记录坐标变换

以三维空间坐标系为例 rTt代表机械手末端相对robot root坐标系的变换关系 rTt dot p_in_tool 可以把tool坐标系下表示的某点转到root坐标系表示 其中rTt表示tool相对于root坐标系的平移和旋转 以二维图像坐标系为例说明 1坐标系定为图片坐标系左上角&#xff0c;横平竖直的…...

自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件

AutoHotkey 是一种适用于 Windows 的免费开源脚本语言&#xff0c;它允许用户轻松创建从小型到复杂的脚本&#xff0c;用于各种任务&#xff0c;例如&#xff1a;表单填充、自动点击、宏等。 定义鼠标和键盘的热键&#xff0c;重新映射按键或按钮&#xff0c;并进行类似自动更…...

【Android构建系统】了解Soong构建系统

背景介绍 在Android7.0之前&#xff0c;Android使用GNU Make描述和执行build规则。Android7.0引入了Soong构建系统&#xff0c;弥补Make构建系统在Android层面变慢、容易出错、无法扩展且难以测试等缺点。 Soong利用Kati GNU Make克隆工具和Ninja构建系统组件来加速Android的…...

显性知识的主要特征

有4个主要特征&#xff1a; 客观存在性静态存在性可共享性认知元能性...

STM32F407VET6实战:CRC校验

CRC校验在数据传输快&#xff0c;且量大的时候使用。下面是STM32F407VET6HAL库使用CRC校验的思路。 步骤实现&#xff1a; CubeMX配置 c // 在CubeMX中启用CRC模块 // AHB总线时钟自动启用 HAL库代码 c // 初始化&#xff08;main函数中&#xff09; CRC_HandleTypeDef …...

LeetCode 746 使用最小花费爬楼梯

当然可以&#xff01;LeetCode 746 是一道经典的动态规划入门题&#xff0c;我来用 C 为你详细解释。 题目描述 给定一个整数数组 cost&#xff0c;其中每个元素 cost[i] 表示从第 i 个台阶向上爬需要支付的费用。一旦支付费用&#xff0c;你可以选择向上爬 1 步 或 2 步。 你…...

隧道结构安全在线监测系统解决方案

一、方案背景 隧道是地下隐蔽工程&#xff0c;会受到潜在、无法预知的地质因素影响。随着我国公路交通建设的发展&#xff0c;隧道占新建公路里程的比例越来越大。隧道属于线状工程&#xff0c;有的规模较大&#xff0c;可长达几公里或数十公里&#xff0c;往往穿越许多不同环境…...

牛客网NC22000:数字反转之-三位数

牛客网NC22000:数字反转之-三位数 &#x1f50d; 题目描述 时间限制&#xff1a;C/C/Rust/Pascal 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C/Rust/Pascal 32M&#xff0c;其他语言64M &#x1f4dd; 输入输出说明 输入描述: 输入一个3位整数n (100 ≤ n ≤ 999)…...

等离子模块【杀菌消毒】

图片来源于网络&#xff0c;与任何公司或实验室无关。 洗衣机中的等离子模块&#xff0c;又叫等离子杀菌模块或等离子发生器&#xff0c;是一种利用等离子体技术进行杀菌消毒、除异味、净化空气的部件。 输出正高压&#xff1a;3.0KV~4.0KV 输出负高压&#xff1a;-3.…...

LlamaIndex 第九篇 Indexing索引

索引概述 数据加载完成后&#xff0c;您将获得一个文档对象(Document)列表&#xff08;或节点(Node)列表&#xff09;。接下来需要为这些对象构建索引(Index)&#xff0c;以便开始执行查询。 索引&#xff08;Index&#xff09; 是一种数据结构&#xff0c;能够让我们快速检索…...

PCIe Switch 问题点

系列文章目录 文章目录 系列文章目录完善PCIe Retimer Overview Document OutlineSwitch 维度BroadComMicroChipAsmedia 祥硕Cyan其他 完善 Functional block diagram&#xff0c;功能框图Key Features and Benefits&#xff0c;主要功能和优点Fabric 链路Multi-root PCIe Re…...

Linux》Ubuntu》安装Harbor 私有仓库

Harbor 下载Harbor地址 # 下载测试镜像 docker pull hello-world# 给镜像重新打标签 docker tag hello-world serverip/library/hello-world:latest# 登录进行上传 docker login serverip docker push serverip/library/hello-world:latest...

2025 Adobe Acrobat DC安装教程

Adobe Acrobat DC是由Adobe公司开发的一款PDF编辑软件&#xff0c;具有将各种文件扫描至PDF、转换PDF文档&#xff1b;编辑PDF、将PDF转换为Word、Excel、打印PDF&#xff1b;创建富媒体PDF文件等功能。 一.软件下载 点此下载 https://pan.xunlei.com/s/VOQDq6Tk1KUFmyCw9M1E…...

第八节第三部分:认识枚举、枚举的作用和应用场景

认识枚举 枚举的概述 枚举的特点 枚举的应用场景 代码&#xff1a; 代码一&#xff1a;认识枚举 A&#xff08;枚举&#xff09; package com.d6_enum;public enum A {//注意&#xff1a;枚举类的第一行必须罗列的是枚举对象的名字X,Y,Z;private String name;public String…...

WEB安全--Java安全--shiro721反序列化漏洞

一、前言 既然我把shiro721和shiro550分开写&#xff0c;就说明两者是有区别的 不过两者的概念和作用也是大相径庭的&#xff0c;这里就不再赘述 可以参考上一篇文章&#xff1a; WEB安全--Java安全--shiro550反序列化漏洞-CSDN博客 二、shiro721 2.1、原理 区别于shiro5…...

[Lc] 5.16 One question a day周总结

感受&#xff1a; 一个数据结构 表示不了&#xff0c;那就再用一个数据结构来帮助标识 逻辑清晰的分析出过程 就一定能写出来~ dp 逆构 依照上述 3 个条件&#xff0c;筛选字符串即可 历程 最开始一眼dp&#xff0c;后来发现要return string&#xff0c;看数据也不是很大&…...

【数据机构】2. 线性表之“链表”

- 第 97 篇 - Date: 2025 - 05 - 16 Author: 郑龙浩/仟墨 【数据结构 2】 续上一篇 线性表之“顺序表” 文章目录 3 链表(用指针来首位相连)① 基本介绍② 分类 与 变量命名1 &#xff09;分类&#xff1a;2 &#xff09;大体介绍不同结构&#xff1a; ③ “单链表” 的实现:*…...

《数字藏品APP开发:解锁高效用户身份认证与KYC流程》

开发一款数字藏品APP&#xff0c;要面对诸多复杂且关键的环节&#xff0c;其中&#xff0c;实现高效的用户身份认证与KYC&#xff08;了解你的客户&#xff09;流程&#xff0c;无疑是重中之重。这不仅关乎用户资产安全与平台合规运营&#xff0c;更是构建用户信任、保障平台可…...

问题 | 国内外软件定义卫星最新进展研究

软件定义卫星 **一、国内进展****二、国际进展****三、未来发展方向****总结** 软件定义卫星&#xff08;Software-Defined Satellite, SDS&#xff09;作为航天领域的重要技术革新方向&#xff0c;近年来在全球范围内发展迅速。其核心是通过开放式架构和动态软件配置实现卫星功…...

安全生产调度管理系统的核心功能模块

安全生产调度管理系统是运用现代信息技术构建的智能化管理平台&#xff0c;旨在实现生产安全风险的全面管控和应急资源的优化调度。该系统通过整合物联网、大数据、人工智能等前沿技术&#xff0c;建立起覆盖风险监测、预警预测、指挥调度、决策支持的全链条安全管理体系。 一…...

RNope:结合 RoPE 和 NoPE 的长文本建模架构

TL;DR 2025 年 Cohere 提出的一种高效且强大的长上下文建模架构——RNope-SWA。通过系统分析注意力模式、位置编码机制与训练策略&#xff0c;该架构不仅在长上下文任务上取得了当前最优的表现&#xff0c;还在短上下文任务和训练/推理效率方面实现了良好平衡。 Paper name …...

22、能源监控与优化 - 数据中心模拟 - /能源管理组件/data-center-energy-monitoring

76个工业组件库示例汇总 能源监控与优化组件 - 数据中心模拟 1. 组件概述 本组件旨在模拟一个典型数据中心的能源消耗情况&#xff0c;并提供实时的监控数据和基本的优化建议/警报功能。用户可以通过界面直观地了解数据中心总体功耗、PUE (电源使用效率)、各部分能耗构成、机…...

docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)

文章目录 前言引入docker 简介docker的应用场景docker的虚拟化技术VS虚拟机docker的优点docker架构Docker仓库Docker镜像linux操作系统的大致组成部分 Docker容器 docker安装与启动校验版本移除旧的版本安装依赖工具设置软件源安装docker验证 配置镜像加速器docker服务相关命令…...

突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌

随着DeepSeek在今年年初火爆全球&#xff0c;AI大模型市场的“百模大战”已迅速燃向AI一体机市场形成“百机大战”。近日&#xff0c;国际数据公司&#xff08;IDC&#xff09;发布的《中国AI大模型一体机市场分析与品牌推荐2025》报告显示&#xff0c;当前中国市场有100多家厂…...