JDBC随机数引起的应用程序偶尔连接数据库报错Error occurred while trying to connect to the database

问题现象:

某个数据处理的应用程序,每晚3点左右开始运行,偶尔会出现以下报错。

Error connecting to database: (using class oracle.jdbc.driver.OracleDriver) 2024/02/05 03:03:07 - ?? / ??_1698720262.7 - IO Error: Connection reset 2024/02/05 03:03:07 - ??/???1698720262.0 - ERROR (version 8.2.0.0-342, build 8.2.0.0-342 from 2018-11-14 10.30.55 by buildguy) : An error occurred intialising this step: 2024/02/05 03:03:07 - ??/??? 1698720262.0 - Error occurred while trying to connect to the database

解决思路

1.排除防火墙、网络等问题。

数据库是19C的一套3节点RAC。防火墙、网络策略等近期未做调整。

2.检查alertlog

发现在报错的时间点,日志内出现了以下报错:

Fatal NI connect error 12170.

VERSION INFORMATION:
TNS for Linux: Version 19.0.0.0.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
Version 19.3.0.0.0
Time: 05-FEB-2024 03:02:54
Tracing not turned on.
Tns error struct:
ns main err code: 12535

TNS-12535: TNS\:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
2024-02-05T03:02:54.290716+08:00


Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=52808))

Fatal NI connect error 12170.
2024-02-05T03:02:54.291168+08:00
PDBCENTER(3)\:WARNING: inbound connection timed out (ORA-3136)

VERSION INFORMATION:
TNS for Linux: Version 19.0.0.0.0 - Production
Oracle Bequeath NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 19.0.0.0.0 - Production
2024-02-05T03:02:54.291434+08:00

3.查看grid下的listener.log

发现在报错前,应用尝试了再1秒内建立了50+个连接。

05-FEB-2024 03:03:08 * service_update * cdcenter1 * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37056)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37060)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37058)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37062)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37066)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37064)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37068)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37076)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37072)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37070)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37078)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37074)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37080)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37082)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37084)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37088)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37096)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37086)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37094)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37090)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37092)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37100)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37098)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37104)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37102)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37108)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37110)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37106)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37112)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37114)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37116)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37122)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37118)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37120)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37124)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37132)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37128)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37126)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37138)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37130)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37134)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37136)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37146)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37140)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37144)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37142)) * establish * pdbcenter * 0
05-FEB-2024 03:03:08 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))(SERVICE_NAME=pdbcenter)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=cdspt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.54.138.130)(PORT=37148)) * establish * pdbcenter * 0
2024-02-05T03:04:06.753050+08:00

4.搜索TNS-12535,12606

搜索到以下文章:
https://ispacesoft.com/277823.html

MOS中提到jdbc 11g及以后的版本,oracle安全连接使用操作系统/dev/random产生的随机数,但/dev/random依赖于系统中断,当系统中断不足的时候,则无法获取随机数,此时程序要么挂起,要么中断。

故而,当系统中断不足,/dev/random取不到随机数,oracle建立连接失败。

因此,推算原因是:
JDBC建立大量连接——》/dev/random随机数不足——》连不上数据库

解决办法

联系开发,修改程序的启动配置,
将$JAVA HOME/ire/lib/security/ava.security内,将securerandom.source的内容改为file:/devl./urandom

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值