springcloud是什么?

SpringCloud:初识ES(ElasticSearch) ElasticSearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容。ElasticSearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。而ElasticSearch是elastic stack的核心,负责存储、搜索、分析数据。ElasticSearch底层是基于lucene来实现的。 阅读详情

单体架构
在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发、部署和维护的难度。这种用于简单的增删改查的数据访问框架(ORM)十分的重要。
这里写图片描述
垂直应用架构
当用户访问量不断的提升,单一应用需要不断的增加服务器来应对,同时将单一的应用拆分成多个应用用来处理提升效率。这种用于加速Web前端加载的Web框架(MVC)起到了关键性的作用。
在这一阶段往往会将系统分为不同的层级,每个层级有对应的职责,UI层负责和用户进行交互、业务逻辑层负责具体的业务功能、数据库层负责和上层进行数据交换和存储。
这里写图片描述

在这一阶段我们最常使用到的开发框架就是Spring(业务逻辑层管理POJO)+Struts(web层前置服务控制)+Hibernate(数据库层持久化)。
1
服务化架构
伴随着企业服务量的不断提升,MVC框架的部署导致系统的负重越来越多,无法满足并发的要求,系统间数据、报文的传输会出现频繁的丢失。这时候我们需要考虑服务化的架构(SOA)。SOA表示面向服务的架构。将应用根据不同的职责划分成不同的模块(类似于企业划分不同的事业部),不同的模块使用特定的调用协议(RPC)和接口进行交互。
这样使整个系统切分成很多单个组件服务来完成请求,当流量过大时通过水平扩展相应的组件来支撑,所有的组件通过交互来满足整体的业务需求。
SOA服务化的优点是,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。
服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
服务化架构是一套松耦合的架构,服务的拆分原则是服务内部高内聚,服务之间低耦合。
这里写图片描述
在这个阶段可以使用WebService或者dubbo来服务治理。
微服务架构
微服务架构算是SOA架构的一种拓展,主要关注的是服务个体的独立性、拆分粒度更小。相对于SOA架构来说,微服务拥有以下优势:
微服务强调更深层次的组件化和服务化,每个微服务都可以拥有独立的运行空间,确保每一个服务组件可以作为单独的产品进行发布。
微服务抛弃了传统SOA笨重的企业服务总线,对外发布强调使用HTTP REST API的接口发布形式。
微服务的切分粒度大。
了解了架构的发展过程,我们来认识一下Spring Cloud。
Spring Cloud来源于Spring,利用Spring Boot进行快捷开发。由于目前Spring Cloud社区的维护和支持的人员数量众多,相信Spring Cloud会有很好的发展。而且Spring Cloud基本上都是使用了现有的开源框架进行的集成,学习的难度和部署的门槛就比较低,对于中小型企业来说,更易于使用和落地。
Spring Cloud主要解决了什么问题?
1、对于企业级的SOA框架来说,服务与服务间的解耦是一项巨大的难题,随着功能服务的不断增加,多服务间的相互调用频繁,调用过程就像一个杂乱无章的毛线球,很容易导致牵一发而动全身的情况,经常会由于在服务更新的过程中,没有合理通信,导致数据的丢失。
这时候就应该进行服务治理,将服务之间的直接依赖转化为服务对服务中心的依赖。Spring Cloud 核心组件Eureka就是解决这类问题。
Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是Spring Cloud体系中最重要最核心的组件之一。
用大白话讲,Eureka就是一个服务中心,将所有的可以提供的服务都注册到它这里来管理,其它各调用者需要的时候去注册中心获取,然后再进行调用,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。如下图:
这里写图片描述
当然服务中心这么重要的组件一但挂掉将会影响全部服务,因此需要搭建Eureka集群来保持高可用性,生产中建议最少两台。
随着系统的流量不断增加,需要根据情况来扩展某个服务,Eureka内部已经提供均衡负载的功能,只需要增加相应的服务端实例既可。
那么在系统的运行期间某个实例挂了怎么办?Eureka内容有一个心跳检测机制,如果某个实例在规定的时间内没有进行通讯则会自动被剔除掉,避免了某个实例挂掉而影响服务。
因此使用了Eureka就自动具有了注册中心、负载均衡、故障转移的功能。

Eureka的三大角色:

Eureka server提供服务注册和发现

Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到。

Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务。

Hystrix
在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。
服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。
如下图所示:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用引起了B的不可用,并将不可用像滚雪球一样放大到C和D时,雪崩效应就形成了。
这里写图片描述
在这种情况下就需要整个服务机构具有故障隔离的功能,避免某一个服务挂掉影响全局。在Spring Cloud 中Hystrix组件就扮演这个角色。
Hystrix会在某个服务连续调用N次不响应的情况下,立即通知调用端调用失败,避免调用端持续等待而影响了整体服务。Hystrix间隔时间会再次检查此服务,如果服务恢复将继续提供服务。
Hystrix Dashboard和Turbine
当熔断发生的时候需要迅速的响应来解决问题,避免故障进一步扩散,那么对熔断的监控就变得非常重要。
熔断的监控现在有两款工具:Hystrix-dashboard和Turbine
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。
但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够。
我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, 这个工具就是Turbine。
监控的效果图如下:
这里写图片描述
想了解具体都监控了哪些指标,以及如何监控可以参考这篇文章:熔断监控Hystrix Dashboard和Turbine
配置中心
随着微服务不断的增多,每个微服务都有自己对应的配置文件。在研发过程中有测试环境、UAT环境、生产环境,因此每个微服务又对应至少三个不同环境的配置文件。
这么多的配置文件,如果需要修改某个公共服务的配置信息,如:缓存、数据库等,难免会产生混乱,这个时候就需要引入Spring Cloud另外一个组件:Spring Cloud Config。
Spring Cloud Config
Spring Cloud Config是一个解决分布式系统的配置管理方案。它包含了Client和Server两个部分,Server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client通过接口获取数据、并依据此数据初始化自己的应用。
其实就是Server端将所有的配置文件服务化,需要配置文件的服务实例去Config Server获取对应的数据。将所有的配置文件统一整理,避免了配置文件碎片化。
如果服务运行期间改变配置文件,服务是不会得到最新的配置信息,需要解决这个问题就需要引入Refresh。它可以在服务的运行期间重新加载配置文件。
当所有的配置文件都存储在配置中心的时候,配置中心就成为了一个非常重要的组件。
如果配置中心出现问题将会导致灾难性的后果,因此在生产中建议对配置中心做集群,来支持配置中心高可用性。
Spring Cloud Bus
上面的 Refresh 方案虽然可以解决单个微服务运行期间重载配置信息的问题,但是在真正的实践生产中,可能会有 N 多的服务需要更新配置。
如果每次依靠手动 Refresh 将是一个巨大的工作量,这时候 Spring Cloud 提出了另外一个解决方案:Spring Cloud Bus。
Spring Cloud Bus 通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其它的消息指令中。
Spring Cloud Bus 的一个核心思想是通过分布式的启动器对 Spring Boot 应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用 AMQP 消息代理作为通道。
Spring Cloud Bus 是轻量级的通讯组件,也可以用在其它类似的场景中。有了 Spring Cloud Bus 之后,当我们改变配置文件提交到版本库中时,会自动的触发对应实例的Refresh,具体的工作流程如下:
这里写图片描述
服务网关
在微服务架构模式下,后端服务的实例数一般是动态的,对于客户端而言很难发现动态改变的服务实例的访问地址信息。
因此在基于微服务的项目中为了简化前端的调用逻辑,通常会引入API Gateway作为轻量级网关,同时API Gateway中也会实现相关的认证逻辑从而简化内部服务之间相互调用的复杂度。

Spring Cloud体系中支持API Gateway落地的技术就是Zuul。Spring Cloud Zuul路由是微服务架构中不可或缺的一部分,提供动态路由,监控,弹性,安全等的边缘服务。
Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。
它的具体作用就是服务转发,接收并转发所有内外部的客户端调用。使用Zuul可以作为资源的统一访问入口,同时也可以在网关做一些权限校验等类似的功能。
链路跟踪
随着服务的越来越多,对调用链的分析会越来越复杂,如服务之间的调用关系、某个请求对应的调用链、调用之间消费的时间等,对这些信息进行监控就成为一个问题。
在实际的使用中我们需要监控服务和服务之间通讯的各项指标,这些数据将是我们改进系统架构的主要依据。
因此分布式的链路跟踪就变的非常重要,Spring Cloud 也给出了具体的解决方案:Spring Cloud Sleuth 和 Zipkin。

Spring Cloud Sleuth为服务之间调用提供链路追踪。通过Sleuth可以很清楚的了解到一个服务请求经过了哪些服务,每个服务处理花费了多长时间。从而让我们可以很方便的理清各微服务间的调用关系。
Zipkin是Twitter的一个开源项目,允许开发者收集 Twitter 各个服务上的监控数据,并提供查询接口。
总结
我们从整体上来看一下Spring Cloud各个组件如何来配套使用:

从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构。
其中Eureka负责服务的注册与发现,很好将各服务连接起来
Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。
Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示
Spring Cloud Config 提供了统一的配置中心服务
当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息
所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用
最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析
Spring Cloud从设计之初就考虑了绝大多数互联网公司架构演化所需的功能,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。
这些功能都是以插拔的形式提供出来,方便我们系统架构演进的过程中,可以合理的选择需要的组件进行集成,从而在架构演进的过程中会更加平滑、顺利。
微服务架构是一种趋势,Spring Cloud提供了标准化的、全站式的技术方案,意义可能会堪比当前Servlet规范的诞生,有效推进服务端软件系统技术水平的进步。

以上文章转载于这个大佬鼠的csdn:https://blog.youkuaiyun.com/smallsunl/article/details/78778790
大家可以多多关注一下这只大佬鼠的博客和文章哦~

springCloud整合Elasticsearch 之 Springboot整合ES 引入依赖 maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> 阅读详情

相关推荐

SpringCloud Gateway使用和配置,SpringCloud Gateway predicates详细配置

SpringCloud Gateway使用和配置, SpringCloud Gateway routes详细配置,SpringCloud Gateway predicates详细配置SpringCloud Gateway 跨域配置,SpringCloud Gateway 超时配置 ================================ ©Copyright 蕃薯耀2021-03-18...

蕃薯耀的博客 1万+

soa架构演进

单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发、部署和维护的难度。这种用于简单的增删改查的数据访问框架(ORM)十分的重要。垂直应用架构 当用户访问量不断的提升,单一应用需要不断的增加服务器来应对,同时将单一的应用拆分成多个应用用来处理提升效率。这种用于加速Web前端加载的Web框架(MVC)起到了关键性的作用。 在这一阶段...

lzf的博客 1205

SpringCloud详解

SpringCloud官网SpringCloud是一个由Spring公司维护的分布式系统开发框架,它是基于SpringBoot的微服务框架。SpringCloud提供了一系列的组件和开发工具,用于构建分布式系统的各个方面,如服务发现、服务注册、服务调用、负载均衡、分布式配置中心等。本篇博客详细介绍了SpringCloud的概述、主要组件和应用场景,并提供了相应的代码示例,希望能够帮助读者更好地理解和掌握SpringCloud的实际开发应用。

不愧是暮言的博客 6174

SpringCloud整合Elastic Search

SpringCloud整合Elastic Search

qq_41177135的博客 1749

springcloud hystrix实战(二)

本文介绍了如何在Spring Cloud微服务项目中集成Hystrix熔断器。主要内容包括:1)基于原有8001服务创建新工程microservicecloud-provider-dept-hystrix-8001;2)添加Hystrix依赖;3)在Controller中使用@HystrixCommand注解定义fallback方法,当查询ID不存在时自动触发熔断;4)主启动类添加@EnableCircuitBreaker开启熔断支持。通过测试验证了当查询不存在的ID时,系统能正确返回fallback方法中

ywl470812087的博客 11万+

从零搭建自己的SpringCloud项目,及SpringBoot升级到SpringCloud填坑

首先我们的项目构成是这个样子的,一个单体的Springboot项目。迫于需求越来越多,准备升级到SpringCloud,目前用到了SpringCloud的三个组件。eureka-注册中心,admin-监控面板,gateway-api网关。 因为我们以前是springboot项目,升级到springcloud涉及到springboot的版本,spring的版本、mybatis的版本等等,中间遇到了N多的坑,后边一一道来。特殊说明: 因为我们用到了springcloud的网关是gateway而非zuul..

weixin_43952697的博客 1963

Spring Cloud架构的各个组件的原理分析(最详细讲解)

微服务的应用场景和核心竞争力: 降低耦合:每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。 独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个微服务发生变更时无需编译、部署整个应用。由微服务组成的应用相当于具备一系列可并行的发布流程,使得发布更加高效,同时降低对生产环境所造成的风险,最终缩短应用交付周期。

Peter_Changyb的博客 2990

大话西游2单机版V8一键架设教程:从下载到GM权限全流程(附仙玉修改技巧)

本文详细讲解了大话西游2单机版V8的一键架设全流程,包括环境准备、服务端配置、客户端安装及GM权限获取等关键步骤。特别提供了仙玉修改技巧和高级资源管理方法,帮助玩家快速搭建个性化游戏环境并掌握核心控制功能。教程涵盖Windows系统兼容性设置、常见问题解决方案以及数据备份策略,适合各类怀旧玩家和技术爱好者。

weixin_29254673的博客 1039

SpringCloud常用注解总结

公司正在用springcloud微服务改造老项目,为了方便查找和学习,汇总一些常用的注解。使用过程中定期更新。 SpringCloud常用注解总结: @Controller 控制层,里面有多个连接 @Service 业务层,一般对于接口和实现 @Qualifier 如果一个接口有多个实现,那么注入时候加上唯一标示 @Repository 一般的dao层 @Autowired 自动注入依赖 @Com...

kang神的博客 2万+

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2992

SpringCloud & SpringCloud Alibaba基本介绍

SpringCloud & SpringCloud Alibaba基本介绍

爱笑的boy的博客 1831

OpenSees入门指南:从零开始的环境配置与TCL脚本实战

本文提供了一份详细的OpenSees入门指南,涵盖从零开始的环境配置到TCL脚本实战的全过程。文章重点讲解了OpenSees的安装步骤、环境变量设置,并推荐了高效的VS Code集成开发环境配置方法。通过一个简支梁分析的完整TCL脚本示例,手把手引导读者完成第一个非线性有限元分析,帮助土木工程与结构工程领域的研究者与学生快速上手这一强大的开源分析工具。

weixin_28829339的博客 336

SpringCloud Alibaba与SpringCloud的区别是什么?

SpringCloud Alibaba与SpringCloud的区别是什么?一、SpringCloud是什么?二、SpringCloud Alibaba是什么?二、SpringCloud Alibaba与SpringCloud Netflix对照总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、SpringCloud是什么? SpringCloud是解决微服务问题的工具箱 SpringCloud核心部件: SpringCloud Netflix: SpringCloud时画饼的,定义需要解决的问

weixin_45540382的博客 8695

F28335 DSP ePWM模块实战:从基础配置到电机控制

本文详细解析了TI TMS320F28335 DSP的ePWM模块,从基础概念、寄存器配置到实战应用。通过代码示例,手把手教你如何配置定时中断、生成PWM波形、实现死区保护与故障联防,并最终完成一个可调速、可换向的直流电机控制项目,是掌握F28335电机控制核心技术的实战指南。

g5h6i的博客 1128

Android CPU调度优化完整分析 - 小白入门到精通

本文全面解析Android CPU调度优化技术,从硬件架构到内核实现。首先介绍ARM big.LITTLE架构的硬件拓扑和性能层级,包括大核、小核和DynamIQ技术。然后深入讲解CPU性能状态管理(P-states和C-states)和硬件计数器支持。内核层部分详细分析调度器架构,包括调度类层次结构和核心调度实体实现,重点剖析CFS调度器的虚拟运行时间计算、红黑树操作和PELT负载跟踪算法。最后探讨负载均衡触发条件和实现机制。全文循序渐进,为开发者提供完整的Android CPU调度优化知识体系。

xhxh510573522125的博客 154

SpringCloud使用Gateway常用的断言(predicates)种类以及规则

SpringCloud使用Gateway的断言种类以及规则     基础提要:SpringCloud中的Gateway网关. 这里是我们9527网关服务的yml配置文件,可以看到是动态路由,根据断言(predicates)匹配到/testGateWay01路径的请求后,再通过服务名SPRINGCLOUD-PROVIDER-DEPT去服务注册中心负载均衡地获取到服务并访问! spring: application: name: cloud-gateway cloud: gateway:

易柏州的博客 1万+

5.4 GTT BO的内存分配分析

本文分析了AMD GPU驱动中的GTT技术实现。GTT作为GPU页表,负责管理主机内存与GPU虚拟地址的映射,支持大容量内存访问和统一寻址。文章详细介绍了GTT的核心数据结构amdgpu_gtt_mgr、初始化流程,以及BO(Buffer Object)创建时GTT区间的分配与释放机制。GTT管理通过TTM框架实现分层设计,提供内存统计、兼容性检查等接口,并支持动态迁移、多进程隔离等高级特性。该机制为AMD GPU提供了高效灵活的内存管理基础。

图形/计算GPU的驱动与虚拟化技术分享园地 3738

SpringCloud总结

SpringCloud的学习总结

weixin_45983532的博客 3897

大模型长对话中上下文无法承载全部历史,如何压缩或提取重点

如果说截断和滑动窗口是“硬性”压缩,那摘要生成技术就显得“软”多了,也更接近于智能化的解决方案。它的思路是:不直接丢弃历史,而是通过自然语言处理(NLP)技术,把冗长的对话记录浓缩成一段简短的摘要,保留核心信息。这样既能大幅减少token数量,又不至于丢失关键内容。这种方法通常会借助预训练模型,比如BART或T5,它们擅长从长文本中提取重点内容。

大模型大数据攻城狮的专栏 1589

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

springcloud的熔断和降级

springcloud的熔断: 第一步,导入依赖; 第二步,开启对熔断的支持: 第三步,熔断方法的使用: 若id存在就执行get方法;若id不存在,则客户端不会报错,会执行自定义的hystrixGet方法

stubborn的博客 4394

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

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

SpringCloud介绍及 IntelliJ IDEA如何创建SpringCloud项目

最近学习了一下SpringCloud,顺便分享给大家。 一、SpringCloud介绍 目前主流的微服务框架:Dubbo、 SpringCloud、thrift、Hessian等,目前国内的中小企业用的大多数都是Dubbo,SpringCloud估计很少,也许有些开发同学都没听说过。 springCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配...

一火的专栏 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[SpringCloud] SpringCloud配置中心的核心原理

SpringCloud中配置中心的核心原理

959 1327

【SpringCloud】一、SpringCloud介绍

而微服务的目标是什么?只是让各个模块拆分开来,不会被互相影响,比如模块的升级或者出现BUG或者是重构等等都不要影响到其他模块,微服务它是可以在一台机器上部署; 但是:分布式也是微服务的一种,微服务也属于分布式

weixin_43333483的博客 2604

【SpringCloud】SpringCloud简单配置

出现以下界面,说明SpringCloud服务完成,之后就可以添加其他项目了。这样子就完成了SpringCloud简单的配置。

m0_56039765的博客 1829
上一篇: java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more
下一篇: 前后端如何跨域?
是美婷吗
博客等级 码龄9年 83粉丝 52原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值