关于 lb 的一些实验

今天看到一个比较有意思的事情,就是 在 rac 中,如果我们 为了 实现 减少 cache fusion 的负担(通常,rac 性能问题,很大程度上,是因为 cache fusion 引起的),而对应用实行 隔离,也就是,不同的应用只让它在 不同的节点运行,这样,就能减少 cache fusion 的负担,那么,这里就碰到问题了:

如果我们在 tnanames.ora 中,不实现 load_balance 的话,那么 如果 服务端 设置了 remote_listener (服务端的 lb,也就是说,服务端会根据 每个节点的 cpu 负担和 连接数来判断是否将 客户端连接放到 相应的节点上)的话,会不会导致 连接 去了 其它的节点呢?

--编者注:看了相关的资料, remote_listener 设置服务端的 lb,服务器并不会根据 cpu 的 负担去选择 cpu 负担小的那个节点。Cpu 负担重,只会加快 pmon 进程加快更新 LISTENER 的情况。因为 一般情况下,在 cpu 负担比较重的时候,pmon 会每隔 1 分钟就去更新 listener 的情况,这样,就能 更好得实现 服务端的 lb,而负担小时,有可能 10 分钟才更新一次。

在我的测试中,是不会出现的

Oracle 版本: 10.2.0.4.0,two nodes rac

Os : linux as5

客户端 tnanames.ora 配置:

racdb1 =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (sid = RACDB1)

    )

  ) 

 

服务端:remote_listener 两个节点 都配置了 对方的 listener

实验1:client 中不配置 lb,那remote_listener 会不会在 服务端中实现 lb

在 session 1 中,连接 racdb1 ,并且做 大数据量的 insert

Session1:

Sql>insertinto test_a as select * from test_a;   ---超过 100W,不断insert

接着,开不同的 session ,去连接 racdb1 ,试试,remote_listener 会不会起作用

 

实验结果是,remote_listener 不起作用,不会实现 服务端 的 lb, session 只会去连接 racdb1

 

实验2:client 中配置了 lb,那 remote_listener 会不会根据 节点繁忙程度 去实现lb

racdb =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = RACDB)

      (FAILOVER_MODE =

        (TYPE = SELECT)

        (METHOD = BASIC)

        (RETRIES = 180)

        (DELAY = 5)

      )

    )

  )

在 session 1 中,连接 racdb ,并且做 大数据量的 insert

Session1:

Sql>show parameter instance;

instance_name                        string       RACDB1

Sql>insertinto test_a as select * from test_a;   ---超过 100W,不断insert

接着,不同session 去连接  racdb,预想的结果是,由于 session1 连接 的是节点1,而且,节点1 cpu 很繁忙,那么 接下来的连接,都会去连接 节点2才对,结果错了,还是会均衡分配不同的 session 去连接 不同的 实例。

对于这个 解释:

Metalink :263599.1

有一些说明,有可能是 pmon update 监听状态不及时导致的。但是,这个问题在 10gR2 的版本中应该解决了才对。

 

实验3:每个节点 创建 service ,client 连接 不同的 service(客户端不采用 lb) ,会不会实现 lb。

节点1:使用 dbca 创建 service:OLTP,能通过 crs_stat 看到

节点2:使用 EXECUTE DBMS_SERVICE.create_service (service_name => 'test',network_name => 'test', aq_ha_notifications => TRUE , failover_method => DBMS_SERVICE.FAILOVER_METHOD_BASIC , failover_type => DBMS_SERVICE.FAILOVER_TYPE_SELECT , failover_retries => 180 , failover_delay => 5 , clb_goal => DBMS_SERVICE.CLB_GOAL_LONG); 创建 service:test,在 crs_stat 中看不到

两者都可以通过 dba_service 或者其它 视图看到

客户端tnsnames.ora中配置:

racdb3 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.201)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME=oltp)

    )

  ) 

 

racdb4 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.201)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME=test)

    )

  ) 

 

实验结果:连接 racdb3 的,只会连接 节点1,不会连接 节点2

                连接 racdb4 的,只会连接 节点2,不会连接 节点1

             但是,会实现 服务端的 lb。

          但是,如果我们把 客户端的配置改成:

racdb3 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

        (CONNECT_DATA =

      (SERVICE_NAME=oltp)

    )

  ) 

只连接 节点1 的话,那么 服务端的 lb 也不会实现了,只会去连接 节点1。

 

实验4:使用 dbca 在 节点 1 上创建一个 service “oltp”,并且,将节点 1 设成 preferred,节点2 设成 available,这样,就会先连接 节点 1,节点2 待命

在 节点 1 上,使用

srvctl start service -d RACDB -s "oltp" 启动 oltp 服务(dbca 创建的服务不会随着 服务器 的启动而自动启动,每次需要手工启动)

在 客户端的 tnsnames.ora 中,配置如下:

racdb3 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.201)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME=oltp)

    )

  ) 

之后,在客户端中,不同的 session 不断连接 racdb3,可以看出,只会连接 节点 1 ,但是 这里有两种情况:

1、直接 direct 连接到 节点1

2、先 direct 连接到节点1,然后通过 remote_listener 的lb,再 redirect 到 节点1

首先,我们来看下 第 1 种 情况下的 listener.log 的记录:

这种情况,只会在 节点 1 的 listener 上有记录,如下:

07-DEC-2010 09:52:16 * (CONNECT_DATA=(SERVICE_NAME=oltp)(CID=(PROGRAM=G:\oracle\product\10.2.0\db_2\bin\sqlplus.exe)(HOST=FZTXT)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.92.3)(PORT=4098)) * establish * oltp * 0

 

接下来,我们来看下 第 2 种情况下的 listener.log 的记录:

这种情况,两个节点都有记录,先来看下 节点 2 的:

07-DEC-2010 10:20:12 * (CONNECT_DATA=(SERVICE_NAME=oltp)(CID=(PROGRAM=G:\oracle\product\10.2.0\db_2\bin\sqlplus.exe)(HOST=FZTXT)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.92.3)(PORT=4606)) * establish * oltp * 0

再来看下 节点 1 的:

07-DEC-2010 10:20:12 * (CONNECT_DATA=(SERVICE_NAME=oltp)(CID=(PROGRAM=G:\oracle\product\10.2.0\db_2\bin\sqlplus.exe)(HOST=FZTXT)(USER=Administrator))(SERVER=dedicated)(INSTANCE_NAME=RACDB1)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.92.3)(PORT=4630)) * establish * oltp * 0

重点关注下 inistance_name 这一个关键词,这就表明了是通过 remote_listener 来进行 lb 的。

 

结论:通过创建 service ,还是能使 应用分离的,而且,更好的地方在于,当节点 1 shutdown 后,通过连接 service ,还能自动 failover 到 节点2,这是很好的一个 应用。

 

实验5:测试 一个 节点 shutdown 后,通过 service 连上 服务端,能否连上

分别有两个 service,一个是 dbca 创建的 service,也就是能注册到 crs 中,另一个是 dbms_service 创建的 service ,不能注册到 crs 中。

首先,节点 1 使用 dbca 创建 service “oltp”,节点2 使用 dbms_service 创建 service “test”

然后,shutdown 掉 节点1 (包括 nodeapps,但不包括 service),然后在 客户端的 tnsnames.ora 上,分别作如下配置:

racdb3 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.201)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME=oltp)

    )

  ) 

 

racdb4 =

  (DESCRIPTION =

    (LOAD_BALANCE = ON)

    (FAILOVER = on)

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.200)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.92.201)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME=test)

    )

  ) 

 

Racdb3,连接 service “oltp”,racdb4 连接 service “test”

 

我们发现,所有客户端 ,不管是通过 racdb3 、还是 racdb4,都能连上 节点2。

接下来,我们开启 节点 1 的所有服务,停掉 节点 2 的 instance(srvctl stop instance)。

这时,我们可以通过 service “oltp” 连上 节点1,但是 使用 service “test” 时,会报如下错误:

SQL> conn fztxt/fztxt@racdb4

ERROR:

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

 

结论:通过实验,发现 ,如果 使用 dbms_service 创建的那个 节点 shutdown掉,那么 就不能 使用 该 service 了。而 使用 dbca 创建的,只要在 crs 中,没有 srvctl stop 掉这个 service ,那么,一个节点 down 掉,还能 连到 另一个 节点中。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14730395/viewspace-681021/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14730395/viewspace-681021/

flowable工作流源码解析-DB访问 Flowable用了mybatis组件,又实现了自己的command和interceptor机制。具体是怎么实现的呢? 我们以Deployment操作为例,来看看它的调用链 调用端是Service接口, 它委托自己的commandExecutor去执行具体的Command. Command最终会调用到EntityManager,然后委托给ibatis的sqlsession来完成操作。 其中CommandExcutor调用command的地方有些复杂,我们展开看: CommandExecutor会维护一系 阅读详情

相关推荐

中国境内及周边2839个站点的日降水量逐日降水数据集(1961-2022,0.1°/0.25°/0.5°)1、数据年份:1961-2022,日数据2、数据范围:中国境内及周边2839个站点的日降

CHM_PRE数据集基于中国境内及周边1961至今共2839个站点的日降水观测,在传统的“降水背景场+ 降水比值场”的数据集构建思路上,尝试应用月值降水约束和地形特征校正,并依据中国范围内约4万个高密度站点2015–2019年的日降水量插值后数据进行精度评价。

yushibing717的博客 2787

LB(Load balance)负载均衡集群-LVS

LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。 逻辑可分为: 1调度层 (Director):它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可...

weixin_30872789的博客 415

深度强化学习-D3QN算法原理与代码

Dueling Double Deep Q Network(D3QN)算法结合了Double DQN和Dueling DQN算法的思想,进一步提升了算法的性能。如果对Doubel DQN和Dueling DQN算法还不太了解的话,可以参考我的这两篇博文:深度强化学习-Doubel DQN算法原理与代码和深度强化学习-Dueling DQN算法原理与代码,分别详细讲述了这两个算法的原理以及代码实现。本文就带领大家了解一下D3QN算法,代码链接见下方。 代码:https://github.com/indigo

weixin_46133643的博客 2万+

“一流的科研成果一定是自己研制的仪器做出来的” – 中国科大LB膜实验室的日子...

近日读到《知识分子》微信公号介绍日本中村修二发明高效蓝色发光二极管,而获得2014年度诺贝尔物理学奖的故事,中村修二获得突破的根本原因在于他自己研制了一个“双气流式金属化...

爱倒腾的程序员 1444

Chapter 5 Gate Drivers and Level Shifters

Gate driver如下图所示, 包括功率管(带保护), Gate driver, Level shifter, Gate Supply 和Dead-time control.

2304_76736886的博客 2236

(R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

线性回归,是概率统计学里最重要的统计方法,也是机器学习中一类非常重要的算法。线性模型简单理解非常容易,但是内涵是非常深奥的。尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点。 在任何线性模型中,能够直接“lm”(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value。在这之后,还要清楚一个...

qq_35837578的博客 7万+

黄山派SF32LB52-ULP功耗测量实验

本文以黄山派SF32LB52-ULP为例,深入分析超低功耗嵌入式系统的设计与实测方法,涵盖动态与静态功耗测量、硬件搭建、固件优化及系统级节能策略,揭示软硬协同在物联网能效设计中的关键作用。

p4q5r6s7t的博客 1111

无GPS室内飞行:基于PX4与MID360的FAST-LIO定点悬停实战解析

本文详细解析了基于PX4飞控与大疆MID360激光雷达的无GPS室内飞行技术,重点介绍了FAST-LIO算法在定点悬停中的应用。通过硬件配置、软件环境搭建、坐标系转换等实战经验,帮助开发者解决室内定位难题,实现精准悬停与稳定飞行。

weixin_29056781的博客 262

docs - marahon-lb virtual host小实验

结构图nginx配置{ "id": "nginx-ceshi", "container": { "type": "DOCKER", "docker": { "image": "nginx:1.9.14", "network": "BRIDGE", "portMappings": [ { "hostPort": 0, "con

vbaspdelphi的专栏 449

华为OD机考双机位C卷 - 员工派遣 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 员工派遣 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1034

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 577

LB-PBF工艺3D打印AlSi10Mg薄壁结构的数值和实验研究

薄壁结构在物理和工程的许多领域都有应用。激光粉末床熔融(LB-PBF) 能够制造自由形状,可以在单个生产步骤中轻松打印薄壁结构。然而,由于此类结构的特性以及侧面热应力的相互作用,出现裂纹和变形等缺陷的可能性很高。铝合金在许多高价值LB-PBF应用中的使用越来越广泛。在候选的LB-PBF铝合金中,AlSi10Mg具有优异的机械和热性能,例如高强度重量比和高热扩散率。AlSi10Mg广泛应用于航空航天...

AmReference的博客 1561

SAP MM ME21N保存前检查增强

想在ME21N保存前做一些数据检查, 可以做一个增强功能,  运行 CMOD 新增,   增强接口 输入 MM06E005  (  EXIT_SAPMM06E_012 ) ,在 NCLUDE ZXM06U43 .  里写代码功能。  例子如下: *&---------------------------------------------------------------------*

heng0757的专栏 1万+

实验报告 线性表的基本操作及应用 选做内容 归并La和Lb为Lc

选作内容: 两个线性表合并算法的实现。已知顺序表LA和LB中的数据元素按值非递减有序排列,现要将LA和LB归并为一个新的顺序表LC,且LC中的数据元素仍按值非递减有序排序。例如:LA=(3,5,8,11) LB=(2,6,9,15,20)。 实验代码: #include<stdio.h> #include<stdlib.h> #define OK 1 #define FALSE 0 typedef int Status; typedef float ElemType; typede

绿色水杯 1817

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

实验四:求两个集合LA和LB(用单链表表示)的并和交集

数据结构实验4 实验四:求两个集合LA和LB(用单链表表示)的并和交集 要求:在实验二的基础上,使用单链表表示集合。编写两个算法(求交算法和求并算法),并输出最终的结果。 测试用例:集合A为{3,4,1,6},集合B为{2,3,6,7}, 交集为{3,6} 并集为{1,2,3,4,6,7} BZ:暴力!暴力!!暴力!!!(本来想着直接暴力的,但是,,,,我哭了!) 单链表排序(冒泡实现): Lin...

浦柳人的博客 4097

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

CDISC SDTM LB domain学习笔记

LB(Laboratory Test Results): 包括但不限于hematology, clinical chemistry, urinalysis数据.

Bowen_Wu的博客 6242

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LB lvs-nat lvs-dr 的理解及实验

Lvs-nat负载均衡nat模式工作原理讲解Lvs是LB 的实现方式LB :负载均衡Lvs-natDirectory 负载均衡调度器Real server 真正负载集群的总称请求报文首先客户端请求一个http资源,经过路由器到达directory 的vip 经过路由选择,送到INPUT链上去,INPUT链查看他的请求资源是个本机,但是本机是个集群,本机并没有web服务提供,...

weixin_34361881的博客 189

从实验报告到实战理解:用MIPSsim模拟器搞懂LB、LW、LBU指令的底层差异

本文通过MIPSsim模拟器实战解析LB、LW、LBU指令的底层差异,深入探讨补码表示、符号扩展等核心概念。结合寄存器与内存视图的实时变化,帮助读者理解不同加载指令对有符号/无符号数据的处理机制,适合计算机组成原理学习者和底层开发爱好者。

weixin_33640562的博客 342

二进制部署K8S多Master+LB负载均衡群集+K8S日志排错

文章目录服务器环境实验步骤Master2节点部署LB1,2负载均衡部署Node节点修改实验测试在LB1上查看nginx的K8S日志创建测试pod在Node节点上测试nginx 服务器环境 角色 IP master1 192.168.18.10 master2 192.168.18.40 node1 192.168.18.20 node2 192.168.18.30 ...

小叮当的博客 1323

实验一:MIPS指令系统和MIPS体系结构

MIPS架构(英语:MIPS architecture,为Microprocessor without interlocked piped stages architecture的缩写,亦为Millions of Instructions Per Second的双关语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的MIPS架构是32位,最新的版本已经变成64位。

sylviiiiiia的博客 5069

LB负载均衡

Linux负载均衡(LB)集群2013-10-15实验拓扑图实验环境:pip:172.16.7.55sip:172.16.7.56VIP:172.16.7.59rip1:172.16.7.53rip2:172.16.7.54存储:172.16.7.51客户端:172.16.7.58一、存储:#tgtadm--lldiscsi--modetarget--...

weixin_33973600的博客 184

LB-100 是一种蛋白磷酸酶 2A (protein phosphatase 2A) 抑制剂 |MCE

LB-100 是一种蛋白磷酸酶 2A (protein phosphatase 2A) 抑制剂,在 BxPc-3 和 Panc-1 细胞中,IC50 值分别为 0.85 μM 和 3.87 μM。

MedChemExpress 1125

[机器学习]Kaggle:CV、Public LB and Private LB

在很多竞赛平台(比如Kaggle)上,测试集确实可以反复提交来获得分数。但这里有一个关键的陷阱:如果你根据多次测试集的分数来调整模型或超参数,本质上是在用测试集训练,会导致模型对测试集过拟合——最终分数很好看,但换一批新数据就会崩溃。🔍 为什么通常“禁止”反复用测试集调参?· 信息泄漏:每次提交都在从测试集中“学习”模式。比如你发现某次提交分数低,于是改参数再试,这相当于把测试集当成了验证集。· 泛化风险:反复优化测试集分数后,模型会“记住”测试集中的特定噪声,失去对新数据的预测能力。

qq_55948352的博客 509

浅谈C++ Lambda 表达式(简称LB)

zhan.renren.com/3265448?gid=3602888498056439648 zhan.renren.com/3265448?gid=3602888498056441175 zhan.renren.com/3265448?gid=3602888498056441461 zhan.renren.com/3265448?gid=3602888498056441913 zhan

586

A Comprehensive Study on Cross-View Gait Based Human Identification with Deep CNNs论文中对于LB实验的理解

 最近想重复一下这篇论文的中LB结构的理解。但是论文中对于这个结构的描述有点含糊不清,在此梳理一下。  在原论文的4.2.1节 论文的截图如下:  对于上一段话的翻译: 在这个网络中,一对GEI对比阶段是在网络的底部区域。在计算一对GEI之前,仅仅用了线性映射。这个阶段的实现是在卷积阶段用16个filters来实现的.一对GEI作为一对filter的输入。这种方法可以看做两个加权比较器。 ...

lighting 2012

数据结构 实验二:(线性表实验-顺序存储)

数据结构 实验二(合并线性表) 一、实验目的 通过本实验的学习,掌握线性表中的顺序表基本操作的实现,为灵活运用线性表奠定基础。 二、实验内容 【问题描述】 编制一个能演示将两个有序表合并为一个有序表的程序。 【基本要求】 已知递增有序线性表LA和LB,现将LA和LB合并到LC,LC也是递增有序的。 【测试数据】 LA=(3,5,8,11) LB=(2,6,8,9,11,15,20) 合并后的LC=(2,3,5,6,8,9,11,15,20) 三、实验原理、方法和手段 1、根据实验内容编程,上机调试、得出正

m0_47161653的博客 2099
上一篇: 又是郁闷的一天
下一篇: [转]gc cr request 'gcs log flush sync'
cuichenkai7892
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值