kafka

【Kafka】Kafka-Eagle 和 Kafka-UI 的安装使用 Kafka Eagle 提供了完善的管理页面,可以监控 Kafka 集群的整体运行情况,很方便的去管理和可视化 Kafka 集群的一些信息,例如 Broker 详情、性能指标趋势、Topic 集合、消费者信息等,在生产环境中经常使用。 阅读详情

Producer(生产者)
生产者是 Kafka 的数据来源,负责将消息发送到 Kafka 的某个 topic 中。

如何发送消息:

生产者可以为每条消息指定一个 key,这个 key 通常用于决定消息的分区(partition)。Kafka 根据 key 的哈希值决定消息应该发送到哪个分区,确保同一个 key 的消息总是发送到同一个分区中。

生产者发送消息时,可以选择不同的确认方式(acks)来保证消息的可靠性。比如:

acks=0:不等待任何确认,这样吞吐量最高,但可靠性最低,可能丢失数据。

acks=1:只等待 leader 分区的确认,即消息成功写入 leader 即算成功,但 follower 副本尚未同步。

acks=all:等待所有副本同步成功,确保最高的可靠性。

生产者通过批量发送(batching)和压缩(compression)来提高发送效率。批量发送会将多条消息合并成一个批次,减少网络请求次数。

Broker(代理)
Kafka 集群由多个 broker 组成,每个 broker 都是一个 Kafka 实例,处理存储、读写消息等任务。

Broker 的分工:

每个 broker 负责存储多个 topic 的分区,分区数据以日志文件的形式存储在磁盘上。

每个分区都有一个 leader,处理生产者的写请求和消费者的读请求。其余副本是 follower,负责从 leader 同步数据,用于故障恢复。

Broker 故障恢复:

当某个 broker 故障时,Kafka 集群会重新分配分区的 leader,通过 Zookeeper 选举新的 leader,确保系统的高可用性。

Topic(主题)
Topic 是 Kafka 中用来分类和存储消息的逻辑概念。可以将其看作是一个消息通道,不同的应用可以将不同类型的消息发送到不同的 topic。

消息存储和顺序:

Topic 可以有多个分区,分区是 Kafka 中的实际存储单元。每个分区内的消息是有序的,生产者按顺序写入消息,消费者按顺序读取。

每条消息在分区内都有一个唯一的偏移量(offset),Kafka 不会主动删除消息,而是依赖配置的保留策略(例如按时间或大小删除旧消息)进行清理。

横向扩展:

Topic 的分区设计使得 Kafka 天然支持水平扩展,不同的分区可以分布在不同的 broker 上,多个生产者和消费者可以并行处理同一个 topic 的消息。

Partition(分区)
分区是 Kafka 存储消息的基本单元,topic 下的每个分区可以分布在不同的 broker 上,帮助 Kafka 实现横向扩展和并行处理。

分区与负载均衡:

分区的数量决定了 Kafka 系统的并发处理能力。生产者发送消息时,根据消息的 key 或者轮询策略将消息分配到不同的分区。

消费者组内的消费者会均匀地分配分区进行消费,每个消费者负责一个或多个分区的消息,从而实现负载均衡。

消息有序性:

分区内的消息是有序的,因此如果某个消费者订阅了一个分区,它读取的消息会保持顺序。这是 Kafka 保证分区级别有序性的关键。

Consumer(消费者)
消费者是 Kafka 的终端,负责从 topic 中读取消息。

独立消费者:

独立消费者可以单独从某个 topic 的某个分区中读取消息,使用偏移量(offset)来标记每次读取的位置。

如果消费者断开连接,下次重新连接时,可以从上次保存的偏移量继续读取。

消费者组:

多个消费者可以组成一个消费者组,组内的每个消费者会自动分配不同的分区来处理,从而实现并行消费。消费者组内的每个分区只能由一个消费者读取。

通过消费者组可以实现多个不同系统并行消费相同的消息流。

Zookeeper
Zookeeper 是 Kafka 集群管理的重要组件,负责维护 Kafka 集群的元数据和进行 leader 选举。

元数据管理:

Zookeeper 保存了 Kafka 集群的所有元数据信息,比如哪些 broker 在线,topic 的分区和副本分布情况,消费者的消费偏移量等。

Leader 选举:

当某个 broker 发生故障时,Zookeeper 负责监控,并发起 leader 选举。Kafka 中每个分区的 leader 由 Zookeeper 管理,选举过程通过投票完成。

Consumer Group(消费者组)
消费者组是 Kafka 中实现负载均衡和高效消费的机制。

分区消费分配:

每个消费者组中的消费者会分配到不同的分区,确保每个分区只能被组内一个消费者消费。这样可以在分布式系统中充分利用资源,提高并行处理能力。

偏移量提交:

消费者组会定期将每个分区的消费偏移量提交到 Kafka 中(通常通过 Zookeeper)。如果某个消费者故障,Kafka 可以从上次提交的偏移量继续消费。

消息持久化与复制
Kafka 通过日志文件将消息持久化到磁盘中,确保消息不会因为 broker 故障而丢失。

日志存储结构:

Kafka 将每个分区的数据存储为日志文件,日志中的每条消息都有一个唯一的偏移量。Kafka 通过分段(segment)管理日志文件,旧的日志文件会根据配置的策略(如时间或空间)进行清理。

副本机制:

Kafka 提供副本机制,每个分区可以有多个副本。每个分区有一个 leader 和多个 follower,leader 负责读写请求,follower 跟随 leader 同步数据。当 leader 发生故障时,Kafka 可以选举新的 leader 来继续服务。

消息顺序和偏移量
Kafka 的每个分区内的消息都是有序的,消费者通过偏移量来标记每次消费的位置。

偏移量管理:

消费者组会定期提交偏移量,确保如果消费者发生故障,可以从上次的位置继续消费。

消息顺序:

同一个分区内的消息是严格有序的,消费者按照消息写入的顺序读取消息。这是 Kafka 保证数据有序性的关键。

零拷贝机制
Kafka 使用操作系统的零拷贝技术来提高消息的读写性能。

工作原理:

在传统的 I/O 操作中,数据需要从磁盘拷贝到用户态,再从用户态拷贝到网络栈。而 Kafka 使用零拷贝,数据直接从磁盘拷贝到网络栈,绕过用户态,减少了 CPU 和内存的使用,提高了吞吐量。

高吞吐量设计
Kafka 的高吞吐量得益于多种优化措施,包括批量发送、压缩、零拷贝和顺序写入等。

批量发送:

Kafka 支持将多条消息打包成一个批次发送,减少每次请求的网络开销。生产者和消费者都可以以批处理的方式操作消息,极大地提高了吞吐量。

压缩:

Kafka 支持多种压缩算法(如 gzip、lz4、snappy),生产者可以对消息进行压缩,减少传输和存储的大小。

顺序写入:

Kafka 将消息顺序写入磁盘,这种顺序写入的模式比随机写入要快得多,因为它减少了磁盘寻道时间。

消费模式
Kafka 采用拉取模式(pull)和发布订阅模式来实现消息消费。

拉取模式:

消费者主动从 Kafka 中拉取消息。这种模式给了消费者很大的灵活性,可以根据自身的处理能力调整消费速率。消费者可以选择拉取一条消息或一批消息来处理。

发布订阅模式:

消费者可以通过消费者组实现发布订阅模式。每个消费者组内的消费者共同订阅一个 topic,但每个分区的消息只能被组内一个消费者消费,多个组可以并行订阅同一个 topic。

Leader 选举
Kafka 通过 Zookeeper 实现 leader 选举,保证Kafka 系统的高可用性和容错性。

故障处理:

当某个 broker 发生故障时,Zookeeper 会监控到该 broker 的不可用状态,并启动 leader 选举过程。系统会根据当前可用的副本状态(follower 的状态)来选择新的 leader,确保仍然有副本能够提供服务。

选举过程:

Zookeeper 会根据各个副本的状态投票,选举出一个新的 leader。这个过程是自动的,无需人工干预,确保了系统在出现故障时能够迅速恢复。

数据可靠性
Kafka 提供多种机制以确保消息的可靠性,尤其是在网络故障和 broker 故障的情况下。

确认机制:

生产者发送消息时,可以配置 acks 参数控制消息的确认方式。这使得用户能够根据业务需求在吞吐量和可靠性之间进行权衡。

日志压缩:

Kafka 还支持日志压缩策略,可以保留每个 key 的最新消息,减少存储占用,同时保证数据的一致性和完整性。

数据丢失保护:

Kafka 允许配置分区的副本数(replication factor),通过副本机制防止数据丢失。即使 leader 发生故障,只要有一个 follower 副本存活,系统也能恢复数据。

扩展性
Kafka 的设计允许用户轻松扩展系统以应对更大的负载。

横向扩展:

当需要处理更多消息时,用户只需增加 broker 的数量,Kafka 会自动在新的 broker 上重新分配分区,以实现负载均衡。

分区调整:

Kafka 提供了动态分区扩展的功能,可以在运行时增加 topic 的分区数量。这样可以提高并发处理能力,但需要注意调整后数据的顺序性和消费者的消费负载。

监控与管理
Kafka 提供多种工具和 API 用于监控和管理集群状态。

JMX(Java Management Extensions):

Kafka 提供 JMX 监控,可以监控 broker、topic、分区的状态,包括消息生产和消费的速率、延迟、存储使用等。

管理工具:

Kafka 自带了一些管理工具(如 kafka-topics.sh、kafka-consumer-groups.sh),可以用来创建、删除 topic,查看消费者组的状态和偏移量等。

安全性
Kafka 提供多种安全机制以保护数据的隐私和完整性。

认证:

Kafka 支持多种认证机制,包括 SASL 和 SSL,确保只有经过认证的用户和应用程序能够访问 Kafka 集群。

授权:

Kafka 提供基于角色的访问控制(ACL),可以根据用户的身份对不同的 topic 和操作(如读、写)进行权限管理。

数据加密:

使用 SSL/TLS 加密传输中的数据,确保数据在网络中的安全性。

集成与生态
Kafka 具有良好的生态系统,能够与多种流处理框架和数据存储系统集成。

流处理框架:

Kafka Streams 是 Kafka 提供的流处理库,允许开发者直接在 Kafka 中实现实时数据处理。

与 Apache Flink、Apache Spark 等流处理框架的集成也非常常见,可以用于复杂事件处理和分析。

数据存储系统:

Kafka 可以与多个数据存储系统(如 HDFS、Elasticsearch、Cassandra)集成,实现数据的持久化和查询。

应用案例
Kafka 被广泛应用于各种场景,尤其在需要处理实时流数据的场合。

日志聚合:

Kafka 常被用作日志聚合平台,将多个系统和服务的日志数据集中到一个地方,便于后续分析和监控。

实时数据分析:

在金融、广告、物联网等领域,Kafka 支持对实时数据流进行分析,帮助企业做出及时决策。

事件驱动架构:

Kafka 适合实现事件驱动架构,应用程序可以基于事件的发生进行反应,增加系统的解耦性和灵活性。

数据集成:

Kafka Connect 是 Kafka 提供的工具,用于快速集成外部系统,如数据库、文件系统等,实现数据的实时流转。

总结
Kafka 作为一种强大的分布式消息系统,其设计理念围绕着高吞吐量、可扩展性和容错性,使其在现代数据架构中占据重要地位。通过将生产者、消费者、broker、topic 和 Zookeeper 等组件有机结合,Kafka 能够高效地处理实时数据流,满足企业对数据处理和分析的需求。无论是日志聚合、流处理,还是事件驱动架构,Kafka 都能提供可靠的解决方案。

docker部署kafka监控服务kafka-exporter 1、kafka需要zookeeper管理,所以需要先安装zookeeper。 下载docker pull wurstmeister/zookeeper:latest版本 docker pull wurstmeister/zookeeper 启动镜像生成容器 docker run -d --restart="always" --name zookeeper -p 2181:2... 阅读详情

相关推荐

Kafka【三】Windows下安装Kafka集群

如果启动过程报错,主要是因为zookeeper和kafka的同步问题,请先执行cluster-clear.cmd文件,再执行cluster.cmd文件即可。集群启动命令后,会打开多个黑窗口,每一个窗口都是一个kafka服务,请不要关闭,一旦关闭,对应的kafka服务就停止了。因为kafka内置了ZooKeeper软件,所以此处将解压缩的文件作为ZooKeeper软件使用。将kafka1文件夹复制两份,改名为kafka2,kafka3。修改文件夹名为kafkazookeeper。

小小默:进无止境 3014

安装配置Kafka,并使用Java集成Kafka

Kafka 是Java 语言编写的,因此需要在安装 Kafka 之前先安装 Java 运行环境。Kafka 支持 Java 8 及以上版本。可以通过以下命令检查 Java 运行环境的版本Kafka 的运⾏环境依赖于 ZooKeeper,Kafka 使用 ZooKeeper 进行分布式协调,因此在安装 Kafka 之前,需要先安装 ZooKeeper。

m0_73799407的博客 4315

Kafka监控工具Kafka Manage

kafka监控工具有 KafkaOffsetMonitor 、Kafka Manager、Capillary、Kafka Eagle等等。。。 其中Kafka Manager是最常用也是最好用的,下面主要讲一下Kafka Manager的安装与使用: (一) Mac安装Kafka Manager 下载Kafka Manager # 以管理员身份下载kafka-manager...

qq_38412833的博客 1891

kafka实战

1. kafka介绍 1.1. 主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能:   1:It lets you publish and subscribe to streams of records.发布和订阅消息流,这个功能类似于消息队列,这也是kafka归类为消息队列框架的原因   2:It lets ...

weixin_30614109的博客 6744

Kafka监控之KafkaOffsetMonitor和Kafka Manager

一. KafkaOffsetMonitor KafkaOffsetMonitor是Kafka的可视化管理与监控工具,可以为Kafka的稳定运维提供高效、可靠、稳定的保障。且程序以jar包的方式运行,部署较为方便。 官网下载jar包(https://github.com/quantifind/KafkaOffsetMonitor) 打开虚拟机并在/usr/local/cluster下创建kafka...

weixin_45568872的博客 1617

【Kafka】Kafka认证与授权

Kafka的认证机制 概述 GSSAPI:使用的Kerberos认证,可以集成目录服务,比如AD。Kafka最小版本 0.9 PLAIN:使用简单用户名和密码形式,Kafka最小版本 0.10 SCRAM:主要解决PLAIN动态更新问题以及安全机制,Kafka最小版本 0.10.2 OAUTHBEARER:基于OAuth 2认证框架,Kafka最小版本 2.0 配置SASL\PLAIN 创建kafka_server_jaas.conf文件 这个文件是配置Broker服务端的JAAS,进入Kafka程序目录的

九师兄 7616

Kafka:浅谈对Kafka的认识

消息系统都致力于让Consumer以最大的速率最快速的消费消息,一些消息系统比如Scribe和Apache Flume采用了Push模式,将消息推送到下游的Consumer。更进一步的性能优化是零拷贝的使用,也就是从磁盘日志到消费者客户端的数据传递,因为Kafka是MQ,对于msg不具备加工处理,所以得以实现。物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个Broker上,但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处。注意:ack的默认值就是1。

王小二(海阔天空) 3261

【Kafka】Kafka 配置 SCRAM认证

PLAIN认证有个问题,就是不能动态新增用户,每次添加用户后,需要重启正在运行的Kafka集群才能生效。为此,在生产环境,这种认证方式不符合实际业务场景。而SCRAM不一样,使用SCRAM认证,可以动态新增用户,添加用户后,可以不用重启正在运行的Kafka集群即可进行鉴权。 本篇文档中使用的是自己部署的zookeeper, zookeeper无需做任何特殊配置 1.准备 使用SASL / SCRAM进行身份验证,请先在不配置任何身份验证的情况下启动Kafka 2.创建SCRAM Credentials.

九师兄 3184

Kafka + Kafka-UI

✅ 使用不需要 Zookeeper 的 Kafka—— 那就是Kafka KRaft 模式从 Kafka 2.8+ 起官方支持,3.3+ 开始默认推荐。去掉 zookeeper 依赖简化部署,性能更高更符合现在 Kafka 的新一代标准架构。

Bruce__taotao的博客 3435

避开内存陷阱:手把手教你用RKNN零拷贝接口正确管理输入输出Tensor

本文深入解析RKNN零拷贝接口在边缘计算中的高效内存管理策略,通过YOLOX实例演示如何避免内存对齐错误和数据错位。详细介绍了`rknn_tensor_mem`系列API的正确使用方法,包括内存创建、绑定、释放全流程,以及性能优化技巧如内存池技术和多核NPU负载均衡,帮助开发者提升推理效率并避开常见陷阱。

weixin_33686714的博客 159

FlinkCDC数据同步Bug——同步性能由于写入并行度限制无法提升问题的解决

使用FlinkCDC进行数据同步时,出现增量阶段写入并行度强制为1导致整体同步性能无法提升问题的解决方案

csdn_lan的博客 2077

使用Kafka UI管理Kafka

在使用Kafka进行开发时,有个可视化的管理界面有助于提高开发效率。目前已经有很多Kafka的管理界面实现。本文介绍的Kafka UI是一个新的实现。 该界面的GitHub地址是provectus/kafka-ui。GitHub - provectus/kafka-ui: Open-Source Web GUI for Apache Kafka ManagementOpen-Source Web GUI for Apache Kafka Management. Contribute to provectu

成富的专栏 1万+

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 544

Kafka——应该选择哪种Kafka?

Kafka——应该选择哪种Kafka?

从知识输入到知识输出 2341

Python爬取上市公司年报并进行财务比率分析:基于异步爬虫与数据挖掘的实战

在当今数据驱动的投资时代,获取并分析上市公司财务数据对于投资者、分析师和研究人员至关重要。中国证监会指定的上市公司信息披露网站——巨潮资讯网,包含了所有A股上市公司的年报、季报及其他公告信息。本项目将展示如何使用Python最新技术栈爬取巨潮网的年报数据,提取关键财务指标,并进行深入的财务比率分析。本文将采用异步爬虫技术提高数据采集效率,使用现代解析库处理PDF和HTML文档,并结合pandas进行数据分析和可视化。整个过程将遵循合规合法的爬虫伦理,尊重网站robots.txt协议,设置合理的请求间隔。

2201_76125261的博客 665

【EB_Tresos专题】-06-配置一个UDS诊断DID

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 4084

kafka系列之camel-kafka

文章目录概述详解camel-kafka 概述 首先关于 camel 的基本概念和用法,以及 kafka 的基本概念和用法,这里就不啰嗦了。这篇文章假设你对二者都有基本的认识。 camel 本身是一个路由引擎,通过 camel 你可以定义路由规则,指定从哪里(源)接收消息,如何处理这些消息,以及发往哪里(目标)。camel-kafka 就是 camel 的其中一个组件,它从指定的 kafka top...

lucasma的博客 4920

Dify与第三方平台(飞书、微信、钉钉)LangBot机器人对接实战

调用链路:飞书用户发消息 → 飞书开放平台事件回调 → LangBot 服务 → Dify 应用接口 → Dify 知识库 + 大模型生成答案 → 原路返回飞书聊天框Dify:承载知识库、提示词配置、大模型调用能力;LangBot:多 IM 渠道适配器,统一对接各大 IM 开放平台与 Dify API;飞书开放平台:提供机器人消息收发、事件推送能力。LangBot 作为中间转发服务,一端对接 Dify 应用 API,一端对接飞书开放平台机器人接口;

悦分享 266

【Kafka】Kafka消息乱码解决

【案例】【Kafka】Kafka消息乱码解决

tttzzzqqq2018的博客 7113

智联招聘Python岗位数据采集:基于API请求的校园招聘信息爬取实战

本项目开发了一个智联招聘Python岗位校园招聘数据采集系统,采用requests库直接调用API接口获取结构化数据。系统通过分析API接口结构,配置完整的请求头、Cookie和身份验证参数,实现了10页数据的批量采集。采集内容包括工作名称、薪资范围、企业信息等10个关键字段,并存储为Excel格式。项目严格遵守网络爬虫规范,合理控制请求频率,数据仅用于技术学习和就业分析。技术实现涉及API逆向工程、JSON数据处理、防御性编程等核心技能,为学生职业规划和教育机构教学改革提供数据支持。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 624

华为OD机试双机位C卷-水库溃坝填补(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【水库溃坝填补】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。水库溃坝填补。

qq_45776114的博客 2108

docker安装kafka、kafka管理端kafka-manager

由于kafka需要依赖于zookeeper,安装kafka分为以下三步: 1、安装zookeeper集群。 2、安装kafka。 3、安装kafka-manager管理端。

weixin_45003796的博客 5485

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Kafka是什么,以及如何使用SpringBoot对接Kafka_kafka对接

这里我们指定了Kafka服务器的地址和端口,并配置了消费者组的ID,关于消费者组的概念,其实就是某一些消费者具备相同的功能,因此会把他们设为同一个消费者组,这样他们就不会重复消费同一条消息了。类似的,流处理还可以应用在其他实时性要求比较高的场景中,例如金融交易、物联网、实时监测等。我们可以启动Spring Boot应用程序,然后发送消息并消费它,以测试我们的应用程序是否正确地与Kafka集成。”概念,我们也可以做一点解释,流处理指的是对连续、实时产生的数据流进行实时处理、计算和分析的过程。

2401_84166376的博客 1314

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Kafka使用

logger.info("sendWithCallback 发送kafka: {} --> {} ,", topic, msg);logger.error("{}:发送消息失败:{}", topic, failure.getMessage());logger.info("{}:发送消息成功:{}", topic, success);kafkaServer可以从配置文件获取,也可以在上面固定。

qq_42537736的博客 1730

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

用docker搭建有kafka-manager的kafka集群

前面搭建过单节点zookeeper的kafka集群,但是操作起来很不方便,因此这次试着搭建一个带有管理界面kafka-manager的kafka集群. 1、创建docker-compose的yml文件 创建kafka文件夹,并在目录下编写docker-compose-zoosingle-manage-kafka.yml文件 version: '3' services: zookeeper: ...

sinat_39393179的博客 3283
上一篇: Rocketmq
下一篇: Elasticsearch查询速度快的原因
yymagicer
博客等级 码龄13年 1425粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yymagicer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值