MQ的优势和劣势和RabbitMQ基本模式案例

Job、接口、Q消息 做项目的自动化过程中,经常听到job、接口、MQ消息相关的名词。 就想把这些个东西搞明白,定义、区别、作用,实现等。 1、job 是定时任务。在某个时间段、某个时间点执行。 定时任务中可以调用接口,可以发送Mq消息。 例如:每天早上六点喊我起床就是一个定时任务,就算是一个job了。 python中实现job: """1.循环sleep实现""" from datetime import datetime import time # 每n秒执行一次 def timer(n): whil 阅读详情

 

目录

1.MQ概述

2.MQ的基本概念

2.1MQ的优势和劣势

2.1.1优势

2.1.2劣势

3.MQ小结

3.1使用MQ满足的条件

4.RabbitMQ简介

4.1AMQP

5.RabbitMQ安装和配置

6.RabbitMQ提供6种模式

6.1简单模式

6.1.1生产者

6.1.2消费者

6.2work模式:

6.2.1生产者

6.2.2消费者1

6.2.2消费者2

6.3发布/订阅模式:

6.3.1生产者

6.3.2消费者1

6.3.2消费者2

6.4路由模式:

6.4.1生产者

6.4.2消费者1

6.4.2消费者2

6.5通配符模式:

6.5.1生产者

6.5.2消费者1

6.5.2消费者2

7.模式总结


1.MQ概述

  • MQ全程Message Queue (消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。
  • 分布式系统中的通信方式:直接远程调用 和借助第三方完成间接通信
  • 发送方称之为生产者,接收方称之为消费者

2.MQ的基本概念

2.1MQ的优势和劣势

2.1.1优势

  • 应用解耦

系统A要发送一个消息到多个系统,如果此时每增加一个系统,系统A都需要通过修改源码来增加接口,此时耦合非常高,但是如果中间使用消息队列的话,系统只需要发送一次到消息队列,别的系统就能复用该信息,当增加或删除系统调用接口的时候,不需要额外的更新代码。

  • 异步提速

提升用户体验和系统吞吐量

用户调用一个接口的时候,可能该接口调用了别的方法。例如:用户注册的时候,后台可能需要调用:查询数据库,插入数据库,发送邮件,发送用户指南等等...

但是用户可能并不需要后台将所有的任务执行完毕,那么此时在初入数据口后面加入mq队列,用户就能很快得到注册成功的响应而去做一些别的事情。mq的机制又能保证最终的一致性,所以使用起来很安全很稳定。

  • 削峰填谷

提高系统稳定性

何为削峰,就是当系统压力过大的时候,让系统压力减小。如何做?

加入数据库的读写每秒3000,在高峰期,系统的访问达到了每秒10000。此时由于加入了消息队列,所以不会出现激增的访问导致系统奔溃。

消息被MQ保存起来了,然后系统就可以按照自己的消费能力来消费,比如每秒3000个数据,这样慢慢写入数据库,这样就不会卡死数据库了。

在高峰期过后的一段时间内,消费消息的速度还是会维持在3000,直到消费完积压的消息,这就叫做“填谷”

(注意,削峰并不会让用户的等待时间减少,所以一般会跟异步搭配来使用)

2.1.2劣势

  • 系统可用性降低,复杂性提高

本来系统之间直接通行调用接口就行了,但是引入了mq导致系统的复杂度大大增加,并且如果mq挂掉了,那么系统之间的通信就中断了,导致整个系统的全部挂掉。

  • 一致性问题

A系统处理完了发送到消息对流后直接返回成功了,用户以为你这个请求就成功了;但是问题是,其他系统消费该消息后,如果当中有一个系统出现了问题,导致数据丢失。最后就会发生数据不一致等问题。

3.MQ小结

在软件的正常功能开发中,并不需要去刻意的寻找消息队列的使用场景,而是当出现性能瓶颈时,去查看业务逻辑是否存在可以异步处理的耗时操作,如果存在的话便可以引入消息队列来解决。否则盲目的使用消息队列可能会增加维护和开发的成本却无法得到可观的性能提升,那就得不偿失了。

3.1使用MQ满足的条件

  1. 不需要同步处理的(a->b 不需要返回值)并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间
  2. 容许短暂的不一致性,最终也会一致
  3. 对于使用成本来看确实是有效果,不需要刻意去使用

4.RabbitMQ简介

市场上常见的消息队列有如下:

  • ActiveMQ:基于JMS

  • ZeroMQ:基于C语言开发

  • RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好

  • RocketMQ:基于JMS,阿里巴巴产品

  • Kafka:类似MQ的产品;分布式消息系统,高吞吐量

4.1AMQP

  1. AMQP 一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
  2. AMQP是一个二进制协议,拥有一些现代化特点:多信道、协商式,异步,安全,扩平台,中立,高效。
  3. RabbitMQ是AMQP协议的Erlang的实现。

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

RabbitMQ官方地址:http://www.rabbitmq.com/

 

RabbitMQ提供了6种模式:简单模式,work模式,Publish/Subscribe发布与订阅模式,Routing路由模式,Topics主题模式,RPC远程调用模式;

官网对应模式介绍:https://www.rabbitmq.com/getstarted.html

5.RabbitMQ安装和配置

https://blog.youkuaiyun.com/adminBfl/article/details/110645865

6.RabbitMQ提供6种模式

6.1简单模式

也就是一个生产者对应一个消费者。

6.1.1生产者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-producer/src/main/java/cn/bufanli/producer/ProducerHelloWord.java

6.1.2消费者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerHelloWord.java

6.2work模式:

概述:一个生产者对应多个消费者,但是只能有一个消费者获得消息,也称之为竞争消费者模式。

应用场景:对于 任务过重或任务较多情况使用工作队列可以提高任务处理的速度。

6.2.1生产者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-producer/src/main/java/cn/bufanli/producer/ProducerWorkQueues.java

6.2.2消费者1

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerWorkQueue1.java

6.2.2消费者2

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerWorkQueue2.java

6.3发布/订阅模式:


一个消费者将消息首先发送到交换器,交换器绑定多个队列,然后被监听该队列的消费者所接收并消费。

在订阅模型中,多了一个exchange角色,而且过程略有变化:

  • P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给X(交换机)

  • C:消费者,消息的接受者,会一直等待消息到来。

  • Queue:消息队列,接收消息、缓存消息。

  • Exchange:交换机,图中的X。一方面,接收生产者发送的消息。另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于Exchange的类型。Exchange有常见以下3种类型:

    • Fanout:广播,将消息交给所有绑定到交换机的队列

    • Direct:定向,把消息交给符合指定routing key 的队列

    • Topic:通配符,把消息交给符合routing pattern(路由模式) 的队列

Exchange(交换机)只负责转发消息,不具备存储消息的能力,因此如果没有任何队列与Exchange绑定,或者没有符合路由规则的队列,那么消息会丢失!

6.3.1生产者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-producer/src/main/java/cn/bufanli/producer/ProducerPubSub.java

6.3.2消费者1

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerPubSub1.java

6.3.2消费者2

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerPubSub2.java

6.4路由模式:

路由模式特点:

  • 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)

  • 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey。

  • Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的 Routing key完全一致,才会接收到消息

6.4.1生产者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-producer/src/main/java/cn/bufanli/producer/ProducerRouting.java

6.4.2消费者1

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerRouting1.java

6.4.2消费者2

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerRouting2.java

生产者将消息发送到direct交换器,在绑定队列和交换器的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的对列,接着监听该队列的消费者消费消息。

6.5通配符模式:

图解:

  • 红色Queue:绑定的是usa.# ,因此凡是以 usa.开头的routing key 都会被匹配到

  • 黄色Queue:绑定的是#.news ,因此凡是以 .news结尾的 routing key 都会被匹配

Topic类型与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!

Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: order.info

6.5.1生产者

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-producer/src/main/java/cn/bufanli/producer/ProducerTopic.java

6.5.2消费者1

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerTopic1.java

6.5.2消费者2

https://gitee.com/bufanli/rabbit-mq/blob/master/simple-consumer/src/main/java/cn/bufanli/consumer/ConsumerTopic2.java

Topic主题模式可以实现 Publish/Subscribe发布与订阅模式 和 Routing路由模式 的功能;只是Topic在配置routing key 的时候可以使用通配符,显得更加灵活

7.模式总结

RabbitMQ工作模式:

1、简单模式 HelloWorld一个生产者、一个消费者,不需要设置交换机(使用默认的交换机)

2、工作队列模式 Work Queue一个生产者、多个消费者(竞争关系),不需要设置交换机(使用默认的交换机)

3、发布订阅模式 Publish/subscribe需要设置类型为fanout的交换机,并且交换机和队列进行绑定,当发送消息到交换机后,交换机会将消息发送到绑定的队列

4、路由模式 Routing需要设置类型为direct的交换机,交换机和队列进行绑定,并且指定routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列

5、通配符模式 Topic需要设置类型为topic的交换机,交换机和队列进行绑定,并且指定通配符方式的routing key,当发送消息到交换机后,交换机会根据routing key将消息发送到对应的队列

 

什么是MQ、优势与劣势、应用场景及模式 消息队列是一种通过存储消息来实现异步通信的机制。消息生产者将消息发送到队列中,消息消费者从队列中读取消息进行处理。这种机制实现了应用程序之间的解耦,使得不同的应用程序可以独立运行。RabbitMQ是一个使用Erlang语言开发的开源消息代理软件,它实现了高级消息队列协议(AMQP),提供了可靠的消息传递、灵活的路由功能和多种消息模式。RabbitMQ作为一种强大的消息队列系统,在应用解耦、异步处理和削峰填谷等方面展现出显著优势。 阅读详情

相关推荐

springboot 整合 rabbitMQ(1)

MQ概述,优势劣势,rabbitMQ的使用(普通队列模式)

WYH1233211234567的博客 2209

关于消息、接口等内容的一些区别分析

一、消息: 消息:一个信息包含两个因素:消息描述(用于定义诸如消息传输目标等)和数据信息(如应用程序数据或数据库查询等)。程序之间的通讯通过传递消息而非直接调用程序。如简单对象访问协议(SOAP)、电子数据交换(EDI)、C、COBOL和XML都是常见的消息类型实现。 队列:一个安全的信息存储区。因为消息存放在队列中,所以应用程序可以相互独立的运行,以不同的速度,在不同的时间,在不同的

sunwenq的专栏 5753

系统安装、qt配置、安装pcie驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 安装Linux系统指定:ununtu20.04并配置相关软件环境 前言 提示:这里可以添加本文要记录的大概内容: ununtu20.04、Qt 5.9.0、pcie驱动 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装系统 制作系统盘(win10),在开机时按相应键进入BIOS,(华硕需要先改配置启动->CSM->开启->第一个选项选第一个或第二个),等待即可 进入后按照https://www.sysgeek.

weixin_44832804的博客 2204

使用MQ消息队列的优缺点

前言 公司的项目一直都是在使用MQ的,但是由于使用的功能很简单,所以一直都是知其然不知其所以然,作为一个程序猿有必要了解每一个使用的技术,为什么使用它?它的优点是什么?缺点是什么?等等。。。 使用mq的好处 解耦与复用 系统A要发送一个消息到多个系统,如果此时每增加一个系统,系统A都需要通过修改源码来增加接口,此时耦合非常高,但是如果中间使用消息队列的话,系统只需要发送一次到消息队列,别的系统就能...

weixin_30346033的博客 470

【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx

初学ROS2,想要在RViz2中显示urdf模型。其中.urdf文件引用了外部的meshes文件夹。

qq_43557907的博客 9486

Unity中USD场景导入与工业级协作实战指南

USD(Universal Scene Description)是一种面向复杂三维场景的结构化数据模型,其核心在于分层描述、变体管理与非破坏性组合,本质是支持多团队并行协作的场景协议。它不同于传统模型格式,强调运行时可编辑性与版本可控性,技术价值体现在跨软件资产一致性、零拷贝动态叠加及内存中实时合成。典型应用场景包括建筑BIM实时漫游、汽车多配置仿真、影视级灯光材质协同等工业管线。在Unity中,USD已深度集成于URP/HDRP管线,通过原生USD Importer、Runtime与Exporter三组件

weixin_32073537的博客 299

消息队列MQ的特点及API

消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。 消息队列的特点: 异步 --- 消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息,这和大多数通信协议是不同的。 解耦 --- 消息队列减少了...

一次意外 5343

Win10+Anaconda环境下PaddleOCR保姆级安装指南(附常见报错解决方案)

本文提供Win10+Anaconda环境下PaddleOCR的保姆级安装指南,涵盖从环境配置到模型部署的全流程,特别针对常见报错提供解决方案。通过详细的步骤说明和实用技巧,帮助开发者快速完成PaddleOCR安装与测试,避免常见陷阱,提升OCR开发效率。

weixin_29096377的博客 375

消息队列的优缺点

系统复杂性:引入消息队列增加了系统的复杂性,需要额外的组件和配置,对开发者和运维人员的要求较高。消息队列可以平衡系统的负载,将请求分散到不同的时间段和资源中,实现削峰填谷的效果,避免系统因突发高峰而过载。一致性问题:由于发送者和接收者的解耦性,消息队列无法提供严格的一致性保证,需要在应用程序中进行相应的处理。通过消息队列作为中间件,发送者和接收者之间的耦合度降低,可以独立演化和扩展,提高系统的灵活性和可维护性。系统延迟:由于消息队列是异步通信模式,消息的传递和处理可能会引入一定的延迟,无法保证实时性需求。

m0_64197969的博客 394

机器学习预测土壤养分:从电导率、pH到随机森林与神经网络的农业实践

在智慧农业与精准农业领域,机器学习已成为处理复杂农业数据、挖掘潜在规律的关键技术。其核心原理在于通过算法从多维数据中自动学习特征与目标变量之间的映射关系,尤其擅长捕捉非线性关联。这项技术的核心价值在于能够将传统上依赖昂贵、耗时实验室分析的问题(如土壤养分检测),转化为基于易获取传感器数据(如电导率、pH值)的快速、低成本预测任务,为农业生产的实时决策与资源优化提供了全新可能。其典型应用场景包括作物生长监测、产量预测以及精准施肥管理等。本文聚焦于利用随机森林和神经网络等回归算法,构建通过土壤物理参数预测氮磷钾

weixin_33693070的博客 663

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

【RabbitMQ】MQ的基本概念、RabbitMQ简介及安装

本文涉及MQ的基本概念、RabbitMQ简介、RabbitMQ的安装等内容

十八岁讨厌编程的博客 2万+

深入AutoSar诊断协议栈:当ECU报故障时,FiM模块是如何悄悄“阉割”功能的?

本文深入解析AutoSar诊断协议栈中FiM模块的工作原理,揭示ECU报故障时如何通过Inhibition Counter和位运算技术实现功能静默降级。探讨FiM在故障处理链中的关键角色,包括功能权限仲裁、降级策略执行和系统安全兜底,并分享实战调试技巧与进阶应用案例。

weixin_30673611的博客 174

MQ的快速入门及RabbitMQ的五种工作模式

Mq消息中间件的基础知识,rabbitmq的工作模式,springboot集成rabbitmq

weixin_64133130的博客 4113

私有云平台搭建——OpenStack

私有云平台搭建——OpenStack 搭建过程

2301_79739036的博客 3088

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

MQ的概念和RabbitMQ知识点(无代码)

MQ全称是MessageQueue(消息队列),是保存消息在传输过程中的一种容器,既是存储消息的一种中间件。多是应用在分布式系统中进行通信的第三方中间件,如下图所示,发送方成为生产者,接收方称为消费者。............

weixin_65598890的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

RabbitMQ的优势和劣势

文章目录1.1 RabbitMQ的优势1.2 MQ的劣势 1.1 RabbitMQ的优势 1、应用解耦 MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 系统的耦合性越高,容错性就越低,可维护性就越低。 使用 MQ 使得应用间解耦,提升容错性和可维护性。 2、任务异步处理 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。 一个下单操作耗时:20 + 300 + 300 + 300 = 920ms 用户点击完下单按钮后,

夙白风语的博客 3856

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MQ基础与RabbitMQ安装

MQ 全称是Message Queue(消息队列),是在消息传输过程中保存消息的容器,多用于分布式系统之间进行通信。

abc_138的博客 965

MQ的优劣势及RabbitMQ相关概念

MQ的优劣势及RabbitMQ相关概念

小小码农 2828

为什么使用MQ?RabbitMQ概念

为什么使用MQ、MQ的基本概念及规范

qq_62939743的博客 1750

RabbitMQ 第一天 基础 1 MQ的基本概念 1.4 MQ 的劣势 & 1.5 常见的MQ 产品

RabbitMQ 第一天 基础 1 MQ的基本概念 1.4 MQ 的劣势 & 1.5 常见的MQ 产品

代码改变世界 743

RabbitMQ实战学习

RabbitMQ是一个广泛使用的开源消息中间件,它实现了高级消息队列协议(AMQP)标准。该系统允许不同应用程序之间进行可靠且高效的通信,通过提供消息传递、队列、交换机和绑定等功能。RabbitMQ的架构灵活且模块化,使得它适用于各种不同的场景,包括分布式系统、微服务架构和异步任务处理。 本文章通过黑马程序员学习,整理了一些常用RabbitMQ的学习资料,冲冲冲!!!

qq_45830276的博客 1708

MQ的优势和劣势以及使用MQ需要满足什么条件

MQ的优势和劣势以及RabbitMQ的工作模式 MQ的优势 应用解耦 提高系统的容错性和可维护性 异步提速 提升用户体验和系统吞吐量 削峰填谷 提高系统稳定性 MQ的劣势 系统可用性降低 系统引入的外部依赖越多,系统稳定性越差 系统复杂度提高 MQ 的加入大大增加了系统的复杂度,以前系统间是同步的远程调用,现在是通过 MQ 进行异步调用 一致性问题 A 系统处理完业务,通过 MQ 给B、C、D三个系统发消息数据,如果 B 系统、C 系统处理成功,D 系统处理失败 使用MQ需要满足什么条件

weixin_42947972的博客 471

【中间件】RabbitMQ入门

AMQP,即Advanced Message Queuing Protocol ,是一个网络协议,是应用层协议的一个开发标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

m0_62645012的博客 1980

测开必备:使用MQ的优势、劣势及常见问题

全称为Message Queue-消息队列,是一种应用程序对应用程序的消息通信,一端只管往队列不断发布信息,另一端只管往队列中读取消息,发布者不需要关心读取消息的谁,读取消息者不需要关心发布消息的是谁,各干各的互不干扰。市场上现在常用的有:RabbitMQ、RocketMQ、Kafka,ActiveMQ。详细对比如下(一般的业务系统要引入MQ,最早大家都用ActiveMQ,但是现在用的并不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃;

2201_76100073的博客 1116

MQ、RabbitMQ学习

1、MQ的基本概念: 1.1 MQ概述 MQ全称Message Queue (消息队列),是在消息的出传输过程中保存消息的容器,多用于分布式系统之前进行通信 小结 MQ 、消息队列、存储消息的中间件 发送放称为生产者,接收方称为消费者 1.2 MQ 的优势和劣势 优势: 应用解耦 —— 提高系统的容错性和可维护性 异步提速 —— 提高用户体验和系统吞吐量 削峰填谷 —— 提高系统稳定性 削峰 填谷 劣势: 系统的可用性降低 系统的复杂度提高 一致性问题 1.

汇杰IT博客 1366
上一篇: RabbitMQ安装和配置
下一篇: RabbitMQ高级特性
别浪呀
博客等级 码龄8年 1万+粉丝 260原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值