kafka介绍,kafka集群环境搭建,kafka命令测试,C++实现kafka客户端
目录
- kafka介绍
- kafka集群环境搭建
- zookeeper安装与配置
- kafka安装与配置
- kafka命令测试
- C++实现kafka客户端
- librdkafka库编译
- 新版本cmake编译
- cppkafka库编译
- C++实现kafka生产者和消费者客户端
kafka介绍
定义与概述
Apache Kafka 是一个开源的分布式流处理平台,最初由 LinkedIn 开发,后来贡献给了 Apache 软件基金会。它被设计用于处理实时数据流,能够以高吞吐量、低延迟的方式处理大量的消息。Kafka 本质上是一个消息队列,但它在传统消息队列的基础上进行了扩展,更适合处理大规模的实时数据。
Kafka特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔7天清理数据。
核心概念
- 主题(Topic):是 Kafka 中消息的逻辑分类,类似于数据库中的表或者文件系统中的文件夹。生产者将消息发布到特定的主题,消费者从主题中订阅并消费消息。
- 生产者(Producer):负责将消息发送到 Kafka 的主题中。生产者可以根据需要将消息发送到不同的主题,并且可以控制消息的分区。
- 消费者(Consumer):从 Kafka 的主题中读取消息。消费者通常以消费者组(Consumer Group)的形式存在,同一个消费者组中的消费者可以共同消费一个主题中的消息,从而实现负载均衡。
- 分区(Partition):每个主题可以被划分为多个分区,分区是 Kafka 实现分布式的基础。分区中的消息是有序的,但不同分区之间的消息顺序是不确定的。通过分区,Kafka 可以实现消息的并行处理,提高系统的吞吐量。
- 代理(Broker):Kafka 集群由多个代理组成,每个代理是一个独立的 Kafka 服务器。代理负责存储和管理消息,客户端(生产者和消费者)通过与代理进行通信来发送和接收消息。
应用场景 - 日志收集:Kafka 可以作为日志收集系统的核心组件,将各个服务产生的日志收集到 Kafka 中,然后由其他系统进行处理和分析。
- 消息系统:作为传统的消息队列使用,实现系统之间的解耦和异步通信。
- 流式处理:结合 Kafka Streams 等流处理库,对实时数据流进行处理和分析,例如实时计算、实时监控等。
Kafka 与 ZooKeeper 的关系
在早期版本的 Kafka 中,ZooKeeper 是 Kafka 集群的重要组成部分,Kafka 使用 ZooKeeper 来存储集群的元数据,如主题、分区、代理的信息,以及进行领导者选举等操作。但从 Kafka 2.8 版本开始,Kafka 引入了 KRaft 模式,该模式允许 Kafka 集群在不依赖 ZooKeeper 的情况下运行,不过目前很多生产环境依然在使用 Kafka 与 ZooKeeper 结合的部署方式。
kafka集群环境搭建
使用三个centos7虚拟机模拟集群,三个虚拟机修改主机名:
hostnamectl set-hostname node0
hostnamectl set-hostname node1
hostnamectl set-hostname node2
配置hosts: vim /etc/hosts
192.168.3.147 node0
192.168.3.146 node1
192.168.3.145 node2
zookeeper安装与配置
官网下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/
下载二进制文件包,这里下载:apache-zookeeper-3.9.3-bin.tar.gz
1、把压缩包拷贝到一个节点主机,比如node0主机,执行:
mkdir -p /opt/workspace
#压缩包拷贝到该目录
cd /opt/workspace
tar xvf apache-zookeeper-3.9.3-bin.tar.gz
mv apache-zookeeper-3.9.3-bin zookeeper
2、创建和修改配置文件:
cd /opt/workspace/zookeeper
# zookeeper数据存放路径
mkdir -p data/zkdata
# zookeeper日志存放路径
mkdir -p data/zklog
cp conf/zoo_sample.cfg conf/zoo.cfgvim conf/zoo.cfg
3、修改如下字段,注意字段后面不能带空格:
dataDir=/opt/workspace/zookeeper/data/zkdata
dataLogDir=/opt/workspace/zookeeper/data/zklogserver.1=node0:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
4、创建myid文件
cd /opt/workspace/zookeeper/data/zkdata/
vim myid
# 输入内容1,保存。
5、其他节点node1和node2创建工作目录
mkdir -p /opt/workspace
6、从node0节点把zookeeper文件夹拷贝到node1和node2
scp -r zookeeper/ root@node1:/opt/workspace/
scp -r zookeeper/ root@node2:/opt/workspace/
在node1和node2把myid文件内容分别修改为2和3.
7、三个节点配置zookeeper环境变量
vim /etc/profile
# 文件最下面添加如下内容
export ZOOKEEPER_HOME=/opt/workspace/zookeeper
export PATH=$ZOOKEEPER_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
8、启动zookeeper集群,分别在三个节点执行,start后等待一会再执行status查询状态
zkServer.sh start
zkServer.sh status
主节点
从节点
kafka安装与配置
下载地址:https://kafka.apache.org/downloads
下载安装包:kafka_2.12-3.9.0.tgz
1、部署到node0主机
cd /opt/workspace/
# 安装包拷贝到当前目录
tar xvf kafka_2.12-3.9.0.tgz
mv kafka_2.12-3.9.0 kafka
2、修改kafka配置
cd kafka/
mkdir logs
vim config/server.properties
重点修改下面3个参数
broker.id=1
log.dirs=/opt/workspace/kafka/logs
zookeeper.connect=node0:2181,node1:2181,node2:2181
3、拷贝到node1和node2主机,分别修改server.properties对应的broker.id为2、3
scp -r kafka root@node1:/opt/workspace
scp -r kafka root@node2:/opt/workspace
4、三个节点配置kafka环境变量
vim /etc/profile
# 文件最下面添加如下内容
export KAFKA_HOME=/opt/workspace/kafka
export PATH=$KAFKA_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
5、启动kafka集群
确保zookeeper集群已启动,然后三个节点执行:
kafka-server-start.sh -daemon /opt/workspace/kafka/config/server.properties &
停止kafka服务。
kafka-server-stop.sh
6、查看kafka进程
# 没有则安装jps
yum install -y java-1.8.0-openjdk-devel.x86_64
jps
7、查看zookeeper上的broker节点
# 进入zookeeper命令
zookeeper-shell.sh localhost:2181
# 查看broker结点情况
ls /brokers/ids
通过下图可知三个节点都已经注册到zookeeper。
kafka命令测试
Topic(主题)命令
# 查看Topic列表
kafka-topics.sh --bootstrap-server localhost:9092 --list
# 创建Topic
# –partitions:分区数量
# –replication-factor:副本数量,不能大于broker数量
kafka-topics.sh --bootstrap-server localhost:9092 --create --topic order --partitions 1 --replication-factor 3
# 查看Topic信息
kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic order
# 修改Topic,分区数只能增加,不能减少;副本数不支持修改。
kafka-topics.sh --bootstrap-server localhost:9092 --alter --topic order --partitions 3
# 删除Topic
kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic order
分区数量修改为3个:
生产者和消费者命令
# 生成消息
kafka-console-producer.sh --bootstrap-server localhost:9092 --topic order
# 消费消息,从最新的地方开始
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic order
# 消费消息,从头开始
kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic order
消费者组,执行命令自动创建消费组。
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic order --group group_1
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic order --group group_2
如果两个kafka-console-consumer.sh命令指定了相同的消费组,则同一个消息只会被一个kafka-console-consumer.sh命令消费一次。
如果两个kafka-console-consumer.sh命令指定了不同的消费组,则同一个消息会被两个kafka-console-consumer.sh命令各消费一次。
# 查看消费者Group列表
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
# 查看消费者Group详情
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group_1
# 删除消费者Group
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group_1 --delete
正在消费的group不能被删除。
C++实现kafka客户端
librdkafka、cmake、libcppkafka都是从源码编译,并且不安装到系统目录。
librdkafka库编译
1、从源码编译。
下载地址:https://github.com/confluentinc/librdkafka/releases
下载源码包:librdkafka-2.8.0.tar.gz
# librdkafka选择不依赖openssl(本次当依赖openssl编译后生成动态库,调用动态库时报错找不到SSL_CTX_use_cert_and_key)
tar xvf librdkafka-2.8.0.tar.gz
cd librdkafka-2.8.0/
./configure
make
# C的封装库在src文件夹,C++的封装库在src-cpp文件夹
2、直接安装(不推荐使用)
yum install librdkafka-devel
新版本cmake编译
cppkafka需要cmake版本3.9.2以上,可能需要编译较新版本cmake。
还是从源码编译,下载地址:https://cmake.org/download/
下载最新版本:cmake-3.31.5.tar.gz
# 可能需要安装依赖openssl,也可选择不依赖openssl
yum -y install openssl-devel
xvf cmake-3.31.5.tar.gz
cd cmake-3.31.5/
./bootstrap
make
# 在bin目录生成可执行文件cmake
cd bin/
./cmake --version# 需要安装到系统目录时执行
make install
cppkafka库编译
cppkafka依赖librdkafka库。
下载地址:https://github.com/mfontanini/cppkafka/releases
下载源码包:cppkafka-0.4.1.tar.gz
tar xvf cppkafka-0.4.1.tar.gz
cd cppkafka-0.4.1
mkdir build
cd build/
# 使用刚刚编译的新版cmake构建,指定librdkafka库路径和头文件路径
# 注意:指定的头文件目录里面还有一级目录,完整路径:/root/code/librdkafka/librdkafka/rdkafkacpp.h
/root/soft/cmake-3.31.5/bin/cmake -DRdKafka_LIBRARY_PATH=/root/code/librdkafka/lib/librdkafka++.so -DRdKafka_INCLUDE_DIR=/root/code/librdkafka ..
make
# 在cppkafka-0.4.1/build/src/lib64目录生成动态库libcppkafka.so.0.4.1
C++实现kafka生产者和消费者客户端
这里使用cppkafka自带的例子:cppkafka-0.4.1/examples/producer_example.cpp和consumer_example.cpp。
源码这里不贴了,地址在这里:
https://github.com/mfontanini/cppkafka/blob/master/examples/producer_example.cpp
https://github.com/mfontanini/cppkafka/blob/master/examples/consumer_example.cpp
简单写一个CMakeLists.txt:
cmake_minimum_required(VERSION 2.8) #设置cmake最低版本
project("consumer" CXX) #设置项目名称
SET(PREFIX ${CMAKE_CURRENT_SOURCE_DIR})#设置普通变量,CMAKE_CURRENT_SOURCE_DIR为当前cmake文件目录
SET(BINDIR ${PREFIX})
message (">>> pwd = ${PREFIX}")#打印变量# 添加依赖头文件目录
SET(INCDIR${PREFIX}/include
)
INCLUDE_DIRECTORIES(${INCDIR})SET(SRCS# ${PREFIX}/producer_example.cpp${PREFIX}/consumer_example.cpp
)#添加依赖库目录
SET(LIBDIR${PREFIX}/lib
)
LINK_DIRECTORIES(${LIBDIR})#添加依赖库
SET(LIB_SO# -lssl# -lcrypto-lrdkafka-lcppkafka-lboost_program_options
)SET(RUN_MAIN "consumer")
#设置C++编译选项
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11 -march=native -Wall")# 添加可执行文件,并配相关文件
ADD_EXECUTABLE(${RUN_MAIN} ${SRCS})TARGET_LINK_LIBRARIES(${RUN_MAIN} ${LIB_SO})#添加依赖库# 安装可执行文件到指定位置,并指定权限
INSTALL(TARGETS ${RUN_MAIN} DESTINATION ${BINDIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE WORLD_EXECUTE)
把编译好的rdkafka和cppkafka头文件和库文件拷贝过来,项目结构如下:
├── CMakeLists.txt
├── consumer_example.cpp
├── include
│ ├── cppkafka
│ │ ├── buffer.h
│ │ ├── clonable_ptr.h
│ │ ├── CMakeLists.txt
│ │ ├── configuration_base.h
│ │ ├── configuration.h
│ │ ├── configuration_option.h
│ │ ├── consumer.h
│ │ ├── cppkafka.h
│ │ ├── detail
│ │ │ ├── callback_invoker.h
│ │ │ └── endianness.h
│ │ ├── error.h
│ │ ├── event.h
│ │ ├── exceptions.h
│ │ ├── group_information.h
│ │ ├── header.h
│ │ ├── header_list.h
│ │ ├── header_list_iterator.h
│ │ ├── kafka_handle_base.h
│ │ ├── logging.h
│ │ ├── macros.h
│ │ ├── message_builder.h
│ │ ├── message.h
│ │ ├── message_internal.h
│ │ ├── message_timestamp.h
│ │ ├── metadata.h
│ │ ├── producer.h
│ │ ├── queue.h
│ │ ├── topic_configuration.h
│ │ ├── topic.h
│ │ ├── topic_partition.h
│ │ ├── topic_partition_list.h
│ │ └── utils
│ │ ├── backoff_committer.h
│ │ ├── backoff_performer.h
│ │ ├── buffered_producer.h
│ │ ├── compacted_topic_processor.h
│ │ ├── consumer_dispatcher.h
│ │ ├── poll_interface.h
│ │ ├── poll_strategy_base.h
│ │ └── roundrobin_poll_strategy.h
│ └── librdkafka
│ ├── rdkafkacpp.h
│ ├── rdkafka.h
│ └── rdkafka_mock.h
├── lib
│ ├── libcppkafka.so -> libcppkafka.so.0.4.1
│ ├── libcppkafka.so.0.4.1
│ ├── librdkafka.a
│ ├── librdkafka++.a
│ ├── librdkafka_cgrp_synch.png
│ ├── librdkafka-dbg.a
│ ├── librdkafka+±dbg.a
│ ├── librdkafka-dbg.so.1
│ ├── librdkafka+±dbg.so.1
│ ├── librdkafka.so
│ ├── librdkafka++.so
│ ├── librdkafka.so.1
│ ├── librdkafka++.so.1
│ ├── librdkafka-static.a
│ └── librdkafka-static-dbg.a
└── producer_example.cpp
编译:
# 当前在CMakeLists.txt目录
mkdir build
cd build
/root/soft/cmake-3.31.5/bin/cmake ..
make
# 当前目录生成consumer,修改CMakeLists.txt再次编译生成producer
生产者,指定brokers、topic、partition(可选)。
生产者命令行输入信息,消费者可以接收到消息。
消费者,指定brokers、topic、group。
相关文章:
kafka介绍,kafka集群环境搭建,kafka命令测试,C++实现kafka客户端
目录 kafka介绍kafka集群环境搭建zookeeper安装与配置kafka安装与配置 kafka命令测试C实现kafka客户端librdkafka库编译新版本cmake编译cppkafka库编译C实现kafka生产者和消费者客户端 kafka介绍 定义与概述 Apache Kafka 是一个开源的分布式流处理平台,最初由 Lin…...
DeepSeek的蒸馏技术:让模型推理更快
DeepSeek系列模型,如DeepSeek-R1-Distill-Qwen-7B,采用了知识蒸馏(Knowledge Distillation)技术,这是一种强大的模型压缩和优化方法。通过蒸馏,DeepSeek模型在保持甚至提升性能的同时,实现了更快…...
SAP-ABAP:dialog界面中的数据块Event Block详解举例
在SAP的Dialog程序开发中,Event Block(事件块)是屏幕流逻辑(Flow Logic)中的关键部分,用于定义屏幕在特定事件触发时执行的逻辑。Event Block通常与ABAP模块(Module)结合使用&#x…...
微信小程序 - 模版语法
声明和绑定数据 小程序页面中使用的数据均需要在 Page() 方法的 data 对象中进行声明定义 在将数据声明好以后,需要在 WXML 中绑定数据,数据绑定最简单的方式是使用 Mustache 语法(双大括号)将变量包起来。 在 {{ }} 内部可以做…...
mapbox进阶,添加绘图扩展插件,裁剪线
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️MapboxDraw 绘图控件二、🍀添加绘图扩…...
Dav_笔记14:优化程序提示 HINTs -2
优化方法和目标的提示 ALL_ROWS和FIRST_ROWS(n)提示允许您在优化方法和目标之间进行选择。如果SQL语句具有指定优化方法和目标的提示,则优化程序将使用指定的方法,无论是否存在统计信息,OPTIMIZER_MODE初始化参数的值…...
Oracle ORA-00054
ORA-00054: resource busy and acquire with NOWAlT specified or timeout expire 错误 ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired 是 Oracle 数据库中常见的一个错误,通常发生在尝试获取一个已经被其他会话占用的资源时。这…...
ABB能源自动化选用宏集Cogent DataHub避免DCOM问题,实现高效、安全的数据传输
案例概况 ABB能源自动化公司通过宏集Cogent DataHub软件将电厂设施的数据实时传输到公司办公室,实现了OPC隧道/镜像解决方案,在电厂和公司网络之间建立了一个安全、可靠的连接,确保数据传输的高度安全,减少入侵风险。 ࿰…...
IP地址有哪些类型?
IP地址是计算机网络中用来识别和查找设备的唯一标识符。根据其作用和使用范围,IP地址可分为以下几种类型: 1.局域网IP地址 局域网IP地址又称内网IP地址,是局域网内用来识别和查找局域网设备的地址。局域网是一个相对较小的网络,…...
网络安全评估:保障设备与系统安全的关键
保障网络安全离不开对入网设备的安全评估,这种评估运用了多种技术和手段,对网络中的设备与系统进行详尽的检查。它能迅速发现并排除潜在的安全风险,对网络系统的安全稳定运行具有极其关键的作用。 测评目的 确保网络系统的安全与稳定是网络…...
一竞技瓦拉几亚S4预选:YB 2-0击败GG
在2月11号进行的PGL瓦拉几亚S4西欧区预选赛上,留在欧洲训练的YB战队以2-0击败GG战队晋级下一轮。双方对阵第二局:对线期YB就打出了优势,中期依靠卡尔带队进攻不断扩大经济优势,最终轻松碾压拿下比赛胜利,以下是对决战报。 YB战队在天辉。阵容是潮汐、卡尔、沙王、隐刺、发条。G…...
管式超滤膜分离技术在茶澄清浓缩领域的创新应用
管式超滤膜分离技术在茶澄清浓缩领域展现出广阔的前景,其独特优势和应用效果正逐渐改变着茶饮料行业的生产方式。以下是几个关键点,说明了这一技术为何具有如此积极的发展潜力: 1. 高效澄清与保留风味 管式超滤膜具有高精度的过滤能力&#x…...
maven web项目如何定义filter
在 Maven Web 项目中定义一个 Servlet 过滤器(Filter),需要遵循 Java Servlet 规范,并利用 Maven 来管理项目结构和依赖。下面是如何在 Maven Web 项目中定义和配置一个过滤器的基本步骤: 1. 创建过滤器类 首先&…...
如何在MacOS上查看edge/chrome的扩展源码
步骤 进入管理扩展页面点击详细信息复制对应id在命令行键入 open ~/Library/Application Support/Microsoft Edge/Default/Extensions/${你刚刚复制的id} 即可打开访达中对应的更目录 注意 由于原生命令行无法直接处理空格 ,所以需要加转义符\,即:open ~/Librar…...
【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】CSS样式解析:行内、内部与外部样式的区别与优先级分析
简介 2025年计算机视觉研究进展与应用(ACVRA 2025)将于2025年2月28-3月2日在中国广州召开,会议将汇聚世界各地的顶尖学者、研究人员和行业专家,聚焦计算机视觉领域的最新研究动态与应用成就。本次会议将探讨前沿技术,…...
redis记录用户在线状态+活跃度
1.记录用户在线状态 redis的Bitmap记录用户在线状态 使用一个大的Bitmap,每个bit位对应一个用户IDbit值1表示在线,0表示离线用户ID与bit位的映射关系: bit位置 用户ID % bitmap容量 具体实现: # 用户上线时,设置对应bit为1 SETBIT online_users {user_id} 1# 用户下线时,设…...
vmware安装win7
1、版本说明 vmware workstation 16 win7 X64 2、安装步骤 安装步骤有点独特,先配置虚拟机,然后再虚拟机的虚拟光驱里添加下载的win7。 配置完了之后,点击要运行的虚拟机,然后一直往下走就可以完成系统的安装。 3、配置系统以解…...
OpenAI推出的Computer Use智能体:Operator是什么
OpenAI推出的Computer Use智能体:Operator是什么 是一款能像人一样与图形用户界面交互来操作计算机的AI智能体。以下是其核心原理及举例说明: 核心原理 感知: 屏幕截图获取:利用高性能屏幕捕获模块,如基于WebRTC的截图技术,以极低延迟获取高清晰度页面图像,为后续分析…...
[FastAdmin] 上传图片并加水印,压缩图片
1.app\common\library\Upload.php 文件 upload方法 /*** 普通上传* return \app\common\model\attachment|\think\Model* throws UploadException*/public function upload($savekey null){if (empty($this->file)) {throw new UploadException(__(No file upload or serv…...
二、k8s项目的生命周期
项目的生命周期 创建-----------》发布-----------》更新--------》回滚----------》删除 kubectl create deployment nginx1 --imagenginx:1.22 --replicas3 基于deployment控制器创建pod 控制器的名称是nginx1 pod使用的镜像:nginx:1.22 --replicas3 pod的数量有多少 3个…...
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 基础篇 part 10
第10章_创建和管理表 DDL:数据定义语言。CREATE \ALTER\ DROP \RENAME TRUNCATE DML:数据操作语言。INSERT \DELETE \UPDATE \SELECT(重中之重) DCL:数据控制语言。COMMIT \…...
python自动化测试之Pytest框架之YAML详解以及Parametrize数据驱动!
一、YAML详解 YAML是一种数据类型,它能够和JSON数据相互转化,它本身也是有很多数据类型可以满足我们接口 的参数类型,扩展名可以是.yml或.yaml 作用: 1.全局配置文件 基础路径,数据库信息,账号信息&…...
deepseek的CoT优势、两阶段训练的有效性学习笔记
文章目录 1 DeepSeek的CoT思维链的优势1.2 open-r1的CoT训练数据1.3 ReAct任务与CoT任务适用场景 2 AI推理方向:deepseek与deepmind的两条路线的差异2.1 PRM与ORM的两大学派分支的差异2.2 DeepSeek-R1的两阶段训练概述 1 DeepSeek的CoT思维链的优势 DeepSeek跟之前…...
计算机网络-MPLS转发原理
在上一篇关于 MPLS 基础的文章中,我们了解了 MPLS 的基本概念、术语以及它在网络中的重要性。今天,我们将深入探讨 MPLS 转发的原理与流程,帮助大家更好地理解 MPLS 是如何在实际网络中工作的。 一、MPLS 转发概述 MPLS 转发的本质是将数据…...
本地部署DeepSeek R1并搭建Web UI实现可视化交互的笔记
经过多天的挣扎和卸载了一些软件,终于下定决心在本地部署DeepSeek R1模型。部署和搭建过程非常简单和方便。 一、下载Ollama 进入Ollama官方网站(https://ollama.com),进入下载下载Ollama页面(https://ollama.com/download) 根据电脑的操作…...
港中文腾讯提出可穿戴3D资产生成方法BAG,可自动生成服装和配饰等3D资产如,并适应特定的人体模型。
今天给大家介绍一种名为BAG(Body-Aligned 3D Wearable Asset Generation)的新方法,可以自动生成可穿戴的3D资产,如服装和配饰,以适应特定的人体模型。BAG方法通过构建一个多视图图像扩散模型,生成与人体对齐…...
JUC并发—1.Java集合包底层源码剖析
大纲 1.为什么要对JDK源码剖析 2.ArrayList源码一:基本原理以及优缺点 3.ArrayList源码二:核心方法的原理 4.ArrayList源码三:数组扩容以及元素拷贝 5.LinkedList源码一:优缺点和使用场景 6.LinkedList源码二:双…...
使用Java爬虫获取京东商品评论API接口(JD.item_review)数据
一、引言 在电商领域,商品评论是用户决策的重要参考依据,也是商家优化产品和服务的重要数据来源。京东作为国内领先的电商平台,提供了丰富的API接口供开发者使用,其中JD.item_review接口可以获取商品的评论数据。通过这些数据&am…...
问卷数据分析|SPSS实操之单因素方差分析
适用条件: 检验分类变量和定量变量之间的差异 分类变量数量要大于等于三 具体操作: 1.选择分析--比较平均值--单因素ANOVA检验 2. 下方填分类变量,上方为各个量表数据Z1-Y2 3. 点击选项,选择描述和方差齐性检验 4.此处为结果数…...
【自然语言处理】TextRank 算法提取关键词、短语、句(Python源码实现)
文章目录 一、TextRank 算法提取关键词 [工具包]二、TextRank 算法提取关键短语[工具包]三、TextRank 算法提取关键句[工具包]四、TextRank 算法提取关键句(Python源码实现) 一、TextRank 算法提取关键词 [工具包] 见链接 【自然语言处理】TextRank 算法…...
Git的常用命令及常见问题处理方法
目录 一、介绍二、常用 Git 命令1. 配置用户信息2. 初始化仓库3. 克隆远程仓库4. 查看状态5. 添加文件到暂存区6. 提交更改7. 查看提交历史8. 查看文件差异9. 查看分支10. 切换分支11. 合并分支12. 处理冲突13. 远程操作14. 标签管理15. 撤销操作 三、常见问题处理方法1. 无法推…...
第6章 6.1 ASP.NET Core MVC 项目
6.1.1 ASP.NET Core MVC 项目的搭建 进入VS环境,创建新的项目,选择【ASP.Net Core Web 应用(模型-视图-控制器)】如下图所示 编写项目名称 点击创建,进入项目后结构如下所示 wwwroot 文件夹为图片、JS、CSS等静态文件…...
ios通过xib创建控件
之前写过ios动态创建控件及添加事件,纯手工代码写控件,虽然比较灵活,但是就是代码量比较多。这次我们通过xib来创建app下载列表项 AppView.xib。一个imageview,一个label,一个button构成 1.创建AppView.xib 2.再创建xib对应的mode࿰…...
缓存组件<keep-alive>
缓存组件<keep-alive> 1.组件作用 组件, 默认会缓存内部的所有组件实例,当组件需要缓存时首先考虑使用此组件。 2.使用场景 场景1:tab切换时,对应的组件保持原状态,使用keep-alive组件 使用:KeepAlive | Vu…...
SAP ABAP调用DeepSeek API大模型接口
搜索了一下DeepSeek,发现有人已经实现了SAP的对接, 不登录网页,SAP如何使用DeepSeek快速编程,ABAP起飞啦~ 按照对应的注册流程和方法。总算做出了第一个能够直连DeepSeek的API abap程序。 效果不错。 report ZTOOL_ABAP_CALL_D…...
大数据与大模型:数字时代的共生力量
引言:大数据与大模型的崭新时代 在数字化浪潮汹涌澎湃的当下,大数据与大模型无疑是最为耀眼的两颗明星 ,深刻地改变着我们的生活、工作和思维方式。大数据,作为信息时代的宝藏,蕴含着无尽的价值。从电商平台的海量交易…...
服务器使用宝塔面板Docker应用快速部署 DeepSeek-R1模型,实现Open WebUI访问使用
Deepseek这段时间非常火,最新推理模型Deepseek R1,都想装上试一试,特别是部署到服务器教程网上一堆教程好像没几个部署成功靠谱的,先说服务器上下载Ollama就难倒一堆人,每次都超时。今天终于在宝塔看到一篇 应用安装文…...
Qt - 地图相关 —— 3、Qt调用高德在线地图功能示例(附源码)
效果 作者其他相关文章链接: Qt - 地图相关 —— 1、加载百度在线地图(附源码) Qt - 地图相关 —— 2、Qt调用百度在线地图功能示例全集,包含线路规划、地铁线路查询等(附源码) Qt - 地图相关 —— 3、Qt调用…...
Idea集成deepseek生成代码
今天我带大家在idea上安装CodeGpt插件,这个插件可以根据我们的提示词生产代码,我们一起试试。 1、安装插件 打开idea,再点击setting菜单,按以下步骤操作。 安装完成后,一定要点击第四步“ok”。再次点击菜单setting…...
HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
HTTP 请求方式总结:application/x-www-form-urlencoded 与 application/json 在前后端交互中,客户端发送数据到服务器的常见方式有两种:application/x-www-form-urlencoded 和 application/json。本文将详细介绍这两种请求方式的特点、使用方…...
开发指南099-同时传递文件和参数
平台后台接口一般情况下要求传递一个json对象(对应后台需要一个继承RequestInfo的dto类),某些情况下需要同时传递文件和参数,该如何处理呢? 1、前端 const formData new FormData(); formData.append(file, this.f…...
【Pycharm+Git+Gitlab】安装部署(粗糙版)
1、安装Git 2、安装Pycharm(这里选择的是社区版) 3、桌面右键打开Git Bash 1)设置全局用户名(准备连接的Gitlab仓库的访问用户名) git config ---global user.name "username"2)设置全局邮箱&…...
k8s中部署nginx的pod
在当今数字化的浪潮中,容器编排技术成为了构建和管理应用程序的核心力量。Kubernetes(简称 k8s)作为容器编排领域的佼佼者,凭借其强大的自动化部署、扩展和管理能力,深受开发者和运维人员的青睐。而 Nginx 作为一款高性…...
kafka生产者之发送模式与ACK
文章目录 Kafka的发送模式Kafka的ack机制发送模式与ack的关联重试次数总结 在Kafka中,发送模式与ack机制紧密相关,它们共同影响着消息发送的可靠性和性能。 Kafka的发送模式 发后即忘(Fire and Forget):生产者发送消息…...
Clion使用jlink进行程序下载
1. 打开首选项(Preference)的Build, Execution, Deployment里的Toolchains,新建MinGW分别选择arm-none-eabi-gcc、arm-none-eabi-g、arm-none-eabi-gdb选择对应的可执行文件。 具体可以参考进行前期配置https://blog.csdn.net/iyt2017/article/details/132411792 2…...
Go 1.4操作符指针理解
对于初学者来说操作符指针类型、指针、取地址容易混淆,多练就好了。 只需要记住两个符号:&(取内存地址)和*(解引用)。 定义和使用:你可以使用 & 操作符获取一个变量的内存地址&#x…...
MATLAB 生成脉冲序列 pulstran函数使用详解
MATLAB 生成脉冲序列 pulstran函数使用详解 目录 前言 一、参数说明 二、示例一 三、示例二 总结 前言 MATLAB中的pulstran函数用于生成脉冲序列,支持连续或离散脉冲。该函数通过将原型脉冲延迟并相加,生成脉冲序列,适用于信号处理和系统…...
Windows 安装 DeepSeek 教程和open webui 图形化部署(非docker)
Windows 安装 Ollama : 步骤 1:下载并安装 Ollama 官网:奥拉马 点击下载 选择windows版本。 双击安装包 点击【Install】(注意:安装包是直接安装在C盘的,并不支持更改路径,因此C盘的空间必须要至少大于5…...
本地部署DeepSeek-R1(Ollama+Docker+Dify知识库)
安装Ollama 打开 Ollama官网 https://ollama.com/下载安装 部署DeepSeek R1模型 下载模型,自行选择1.5b、7b、8b、14b、32b、671b在终端输入: ollama pull deepseek-r1:1.5b运行模型 ollama run deepseek-r1:1.5b下载嵌入模型,嵌入模型…...
vcredist_x64.exe 是 Microsoft Visual C++ Redistributable 的 64 位版本
vcredist_x64.exe 是 Microsoft Visual C++ Redistributable 的 64 位版本,它提供了运行基于 Visual C++ 编写的应用程序所需的库文件。许多 Windows 应用程序都依赖这些库来正常运行,特别是使用 Visual Studio 编译的程序。 用途和重要性: 运行时库:vcredist_x64.exe 安装…...