微服务如何向Nacos进行注册及心跳检测?James带你从源码一步步深入分析

Java开源邮件服务器james源码 Java开源邮件服务器apache-james-2.3.2源代码 立即下载

大家好, 我是James, 最近整理了一下客户端微服务向Nacos注册及心跳的源码分析, 希望对大家学习有帮助, 源码可以找我的助理斯琪要一下哈v: 2996372122 并备注是看我的博客来要的资料.


首先下载好Nacos的源码
在这里插入图片描述

关于源码怎么导入到maven, 在预习资料有个文档,写的很清楚, 可以找我的助理

Nacos源码分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IootrAVR-1612239044182)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps2.jpg)]

访问nacos

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TvHUu14H-1612239044183)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps3.jpg)]

讲源码前, 我先抛一个问题, 如果客户端访问一个刚刚关闭的服务, 是不是会报错?
你的答案是什么?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PmfzUrew-1612239044187)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps6.jpg)]

正确答案是: 有可能还会调到已停的服务, 怎么处理?其实就是做了一个服务降级的处理

所以互联网线上一般对非核心非关键的服务都要做降级/熔断处理

OK, 那我们看看到底如何注册到Nacos的, 服务下线后,如何收到心跳, 客户端如何发现的等问题

我们来分析一下客户端服务如何向Nacos注册的?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9kyLtQpJ-1612239044188)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps7.jpg)]

会去扫描yml配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s0xmqBj3-1612239044189)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps8.jpg)]

找到nacos服务地址, 进行注册

我们点进去看看这个包依赖了什么内容?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gAnDFXSh-1612239044189)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps9.jpg)]

点击进入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2r31ViNf-1612239044190)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps10.jpg)]

打开jar包也可以看到依赖关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R9g9rQP7-1612239044190)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps11.jpg)]

再点开META-INF目录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iJ2INBFZ-1612239044191)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps12.jpg)]

有个spring.factories, 这个是干什么用的呢? 这个不知道的同学要把springboot底层自动装配原理要重点看一下啦

其实就是springboot在启动的时候, 会加载spring.factories里的配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3tUtlOTZ-1612239044192)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps13.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCkwNpIP-1612239044192)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps14.jpg)]

Nacos客户端最终通过这个类完成注册的, 怎么找到这个类的呢

点进去 看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9VHcTBY1-1612239044193)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps15.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vMlNLC9-1612239044193)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps16.jpg)]

如果对springboot稍微熟悉点的, 其实就是看auto自动装配初始化的那些bean

不难发现, NacosAutoServiceRegistration就是我们客户端向nacos进行服务注册的类

点进看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMtFL8lA-1612239044194)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps17.jpg)]

点进父类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K03bKJoa-1612239044195)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps18.jpg)]

点进bind方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lCaPfHHh-1612239044195)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps19.jpg)]

OK继续阅读

点进start方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qt0CoRRk-1612239044196)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps20.jpg)]

我们读源码要学会读主线源码, 像 一些if都是分支代码, 你第一遍看的时候可以先跳过

但不是说不看, 你后面可以看

看源肯定不是一遍的

Ctrl+t查看源码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PwFlVg4H-1612239044196)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps21.jpg)]

点第1个, 进入register方法的实现

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ba4DcXnz-1612239044197)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps22.jpg)]

再点进

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9fBR0jgd-1612239044198)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps23.jpg)]

可以打开Instance看一下, 和官网做个对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RvpbBJuD-1612239044198)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps24.jpg)]

再回到 register

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KtIXp9XO-1612239044199)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps25.jpg)]

点进去看一下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Dq8yyDM-1612239044200)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps26.jpg)]

再点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tXOsBtLN-1612239044201)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps27.jpg)]

再点进

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q3dznYax-1612239044201)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps28.jpg)]

这就是客户端注册 的代码, 对比一下官网的地址是否一样?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cWXEEHdu-1612239044202)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps29.jpg)]

不难发样就是拼这么个请求路径

这个客户端注册类是不是写在nacos-client.jar里, 这也是我们为什么要引入这个jar的原因

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xfkmyq86-1612239044203)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps30.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5NeTYxR2-1612239044203)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps31.jpg)]

同时NacosNamingService也是在client包里, nacos直接把这个jar包丢给我们的业务系统, 直接调用就可以向nacos-server注册, 这样说明白了吧

但这个地方要注意一下

在注册之前

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UAgq33Cz-1612239044204)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps32.jpg)]

这个if逻辑要看一下, 这段代码跟心跳有关

我们上面讲的心跳还记得不

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-20bobV2G-1612239044205)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps33.jpg)]

我们先看一下官网讲的心跳接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4MaD8BY-1612239044206)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps34.jpg)]

再看一下我们的代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JlpBfexA-1612239044206)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps35.jpg)]

再回头看, true表示为临时实例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3ihXou9J-1612239044207)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps36.jpg)]

默认是临时实例, 微服务架构一般默认都是临时的, 持久化的实例效率不高

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2STNQeML-1612239044208)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps37.jpg)]

再点进去

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sbio59vP-1612239044208)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps38.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jFgY4CpW-1612239044209)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps39.jpg)]

再点进去

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-izQgjrEQ-1612239044210)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps40.jpg)]

再点sendBeat方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kiEeOHEl-1612239044211)(file:///C:\Users\10762\AppData\Local\Temp\ksohtml16900\wps41.jpg)]
大家看到没, 这里就是去调用Nacos服务端的http心跳接口了, 简单不?
所以我经常讲, 你如果读了Spring源码, 后面的所有框架源码都势如破竹, 非常简单.

libfranka---joint_impendence_control例程分析 joint_impedance_control.cpp例程分析 部分内容来自链接,我个人以初学者的角度对代码进行了更加细致的解释。 核心部分: // Set and initialize trajectory parameters. const double radius = 0.05; const double vel_max = 0.25; const double acceleration_time = 2.0; const double run_time = 20.0; d 阅读详情

相关推荐

保姆级教程:用YOLOv8/9/10搞定仪表盘指针识别,附完整数据集和Python环境配置

本文提供了一份基于YOLOv8/v9/v10的仪表盘指针检测全流程指南,涵盖环境配置、数据集构建、模型选型、训练调优和部署落地等关键步骤。通过详细的代码示例和实战经验,帮助开发者高效解决工业视觉中的仪表盘检测难题,特别适合电力巡检、智能监控等应用场景。

weixin_29031057的博客 1335

Nacos学习笔记(四):心跳机制

Nacos源码学习:心跳

仔哥学编程 4548

服务器被矿工入侵记录

一次服务器被矿工入驻的处理记录

王瑞的技术专栏 1334

spring cloud alibaba - nacos原理

nacos原理,包含nacos集群的数据同步distro协议,nacos配置中心的进阶使用,配置中心原理,注册/发现中心原理

weixin_38612401的博客 1396

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

将指定文件夹下每张用LabelImg标注的图片中标注部分抠出来保存到指定文件夹下。

weixin_44119674的博客 440

基于Simulink的占空比调制DTC降低转矩脉动

修改传统SVPWM模块,输入占空比d和有效矢量索引,计算Ton​=d∗Tc​、Toff​=(1−d)∗Tc​,生成对称PWM波形(替代开关表直接输出)。:低速时(n<500rpm)减小dmax​=0.6(避免磁链畸变),高速时(n>2000rpm)增大dmax​=0.8(提升动态响应);kT​/kψ​:转矩/磁链误差增益(需整定,如kT​=0.02/(N⋅m),kψ​=0.1/Wb);(θ为电压矢量与磁链夹角)。② SVM-DTC(占空比计算模块启用,d0​=0.5,kT​=0.02,kψ​=0.1)。

amy_mhd的博客 87

springcloud — 注册中心Nacos组件原理解析

Nacos介绍 Nacos中文官方文档:https://nacos.io/zh-cn/docs/quick-start.html Nacos是什么? Nacos是一个注册中心组件,Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。 那么Nacos到底是什么呢, 总结为官网一句话就是: Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos功能 1. 服务注册发

qq_38658567的博客 1299

ESP32-C3入门教程 环境篇②——Windows开发环境准备

文章目录一、注意事项二、下载ESP-IDF工具安装器三、安装内容四、详细安装步骤报错处理 一、注意事项 请注意 ESP-IDF 和 ESP-IDF 工具的安装路径不能超过 90 个字符,安装路径过长可能会导致构建失败。 Python 或 ESP-IDF 的安装路径中一定不能包含空格或括号。 除非操作系统配置为支持 Unicode UTF-8,否则 Python 或 ESP-IDF 的安装路径中也不能包括特殊字符(非 ASCII 码字符、中文字符) 二、下载ESP-IDF工具安装器 ESP-IDF Win

5247

微服务学习-SpringCloud -Nacos (心跳机制及健康检查源码学习)

微服务在启动注册Nacos时,会创建一个定时任务,定时向服务端发生自己的心跳。发送到服务端后,服务端会更新此实例的心跳时间为当前时间。Nacos服务端在创建注册表时,会同时创建一个定时任务,定时检查服务心跳,如果服务超过15秒没有心跳,会将它的状态设置为false,当超过30秒没有心跳时,会删除实例。删除实例时,会发送DELETE请求进行删除,删除完成后,会向客户端推送最新的注册表,如果推送失败,那么客户端也可以通过定时拉取获得最新列表。

m0_37688047的博客 2155

华为OD机试真题新系统-空间占用计算(Py/Java/C/C++/Js/Go)

华为OD机试新系统机试真题 【空间占用计算】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【空间占用计算】。

qq_45776114的博客 3448

【短距离通信】【WiFi】精讲WiFi 6E协议!图解超赞超详细!!!

802.11ax(HE,HighEfficiency) (Wi-Fi 6E):6G频段共有1200MHz的频谱给到WiFi 6E使用,可用于从5.925GHz到7.125GHz。WiFi将可以访问59个20MHz信道,29个40MHz信道14个80MHz信道和7个160MHz信道。这不仅代表可以有很多频道,还可以代表可以解锁更高的数据速率。因为 802.11ax 标准(Wi-Fi 6)也在 2.4GHz 和 5GHz 频段运行,所以 6GHz 频段的 Wi-Fi 将被命名为 Wi-Fi 6E。

风云说通信 2347

【微服务】Day03(Nacos心跳机制、cart,stock项目业务、Dubbo概述)

RPC是Remote Procedure Call的缩写 翻译为:远程过程调用目标是为了实现两台(多台)计算机\服务器,相互调用方法\通信的解决方案RPC只是实现远程调用的一套标准该标准主要规定了两部分内容1.通信协议2.序列化协议为了方便大家理解RPC,下面的图片帮助理解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csOHcs00-1664554865779)(image-20220505143449423.png)]

shortcutsuccess的博客 816

数据分析:蛋白质组的GO term的富集分析详解

在获取差异表达蛋白质的数据之后,依据蛋白质与基因的对应映射关系,开展GO(Gene Ontology)term的富集分析。通过这一分析流程,能够精准地识别出不同实验组中过表达基因所关联的显著富集的GO term通路。这些富集的GO term通路为后续的生物学研究提供了关键线索,有助于深入探究基因功能、揭示潜在的生物学机制,从而推动生物学发现的进程。

专注生信领域 1368

Spring Cloud Alibaba Nacos(心跳与选举)

本文继续带你阅读NACOS源代码,讨论NACOS的两个至关重要的的细节:心跳和选举机制。

文刀的博客天地 5335

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Spring Cloud Alibaba Nacos 的 2 种健康检查机制!

作者 | 磊哥来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)Spring Cloud Alibaba Nacos 作为注册中心不止提供了...

磊哥聊Java 1075

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Nacos心跳机制

一、nacos心跳机制 当nacos进行服务注册的时候,NacosServiceRegistry.class会调用register()方法进行服务注册,该方法中调用了namingService.registerInstance()方法进行服务注册的逻辑。 NacosNamingService实现了NamingService的接口;然后在namingService.registerInstance()方法中,会做两件事情,第一件事就是组装心跳包BeatInfo,并且发送心跳: Nacos

Jak的博客 8343

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SpringCloudAlibaba——Nacos实现原理详解

在Spring-Cloud-Common包中有一个类org.springframework.cloud. client.serviceregistry .ServiceRegistry ,它是Spring Cloud提供的服务注册的标准。集成到Spring Cloud中实现服务注册的组件,都会实现该接口。从上述代码看,所谓心跳机制就是客户端通过schedule定时向服务端发送一个数据包 ,然后启动-个线程不断检测服务端的回应,如果在设定时间内没有收到服务端的回应,则认为服务器出现了故障。...

weixin_37627646的博客 562

SpringCloud - Nacos详解

1、概述 服务发现是微服务架构体系中最关键的组件之一。如果尝试用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于服务的动态扩缩容。 Nacos Discovery 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。 除此之外,Nacos Discovery 也将服务实例自身的一些元数据信息-例如 host,port, 健康检查URL,主页等内容注册到 Nacos。 2、注册中心原理 在使用注册中心时,一共有三种角色:服务提供者

java123456111的博客 2万+

springCloudAlibaba组件-Nacos-服务注册与心跳机制(二)

(微服务开启时自动会获取将所处的ip地址、端口号、服务名称,先开启心跳机制,并将这些信息注册到nacos的服务中服务列表中,通过服务中心来管理这些微服务)2)流程:服务启动后每隔5秒会向Nacos发送一个“心跳包”,这个心跳包中包含了当前服务的基本信息,Nacos接收到这个心跳包,首先检查当前服务在不在注册列表中,如果不在按新服务的业务·进行注册,如果在,表示当前这个服务是健康的。重要性较高的服务:如果服务对于业务运行的重要性较高,需要持久地注册和心跳发送,可以选择永久实例。注册后同时会发布服务变更事件。

任亚兵 1124

Nacos健康检查

一、健康检查流程图 二、客户端 nacos是如何定时通过心跳机制判断实例是否存活的呢,这就是健康检查机制。 NamingService.registerInstance()方法中,会做两件事情 组装心跳包BeatInfo,并且发送心跳 注册nacos实例,通过http调用的方式,将请求发送到InstanceController.register()方法中 三、服务端 客户端请求,发送到服务端InstanceController.register()方法中 该方法中调用了serv

Jak的博客 9185

SpringCloud Nacos服务注册和心跳发送(源码)

入口 jar包目录下META-INF目录下spring.factories文件中 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration,\ com.alibaba.cloud.nacos.ribbon.RibbonNacosAutoConfiguration,\ com.alibaba.cl

跟心爱的人一起浪迹天涯 687

Nacos健康检查机制

本章主要介绍Nacos健康检查机制。

南秋同学的博客 835

【Spring Cloud Alibaba Nacos】Nacos心跳机制实现快速上下线

我们都知道是通过客户端和服务端的心跳机制,来实现服务的注册和下线的,Nacos的心跳机制默认是存在BeatInfo的period属性里面的,默认的心跳周期是5s,心跳的超时时间是15s,就意味着如果超过15秒不发送心跳,Nacos就认为这个服务不健康了,超过30秒该实例就将被Nacos删除下线。在某种情况下,显然不太满足公司项目的要求,默认的心跳时间30秒太长了,服务的上线和下线的感知还是有点慢的,为了能让服务上下线进行快速感知,我调整了Nacos的心跳配置时间。

DreamSun的博客 2054

Apache James

Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议.James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储部分,可以选择

auglyboy的专栏 2554

【Nacos源码系列】Nacos心跳机制原理

Nacos心跳机制原理

做一个有思想的技术人 3601

你天天用微服务还不知道心跳检测机制是什么?

心跳检测机制是一种保持连接状态和验证服务实例是否存活的技术。服务提供者:主动发送心跳包的服务方。服务消费者:接收心跳包并验证服务状态的一方。服务注册中心:用于管理服务实例的注册和发现,通常也是心跳检测的中心节点。Eureka:专注于服务发现,适用于 Spring Cloud 生态系统。Consul:提供全面的服务管理功能,适合需要更复杂服务管理的场景。Zookeeper:适用于需要强一致性和协调服务的场景。Etcd:适用于需要简单键值存储和配置管理的场景,特别是在容器编排系统中。

无休居士的博客 2761
上一篇: <重要>James带你透彻分析三大代理模式
下一篇: Redis队列和专业MQ的对比和选型
Jack爱258
博客等级 码龄10年 1288粉丝 124原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值