微服务开发人员的七个基本技能

微服务(Microservices)[翻译] 微服务架构”一词在过去几年中如雨后春笋般涌现,用来描述将软件应用程序设计为可独立部署的服务套件的特定方式。虽然这种架构风格没有精确的定义,但围绕业务能力、自动化部署、端点智能以及语言和数据的分散控制,围绕组织存在某些共同特征。2014 年 3 月 25 日詹姆斯·刘易斯James Lewis 是 Thoughtworks 的首席顾问,也是技术咨询委员会的成员。James 对从小型协作服务构建应用程序的兴趣源于大规模集成企业系统的背景。他使用微服务构建了许多系统,并且多年来一直是不断发展的社区的积极参与者。 阅读详情


微服务越来越受欢迎,越来越多的开发人员开始使用微服务。如果你是一个开发微服务体系结构的开发人员,或者是想要雇佣一个人的雇主,那么,微服务开发人员最重要的技能是什么?继续往下读,找出答案。


与任何新兴的技术和趋势一样,要掌握它还需要学习一些东西。作为开发人员,我们的工作的本质是——紧跟最新、最伟大的模式和体系结构。那么,要想做好这些微服务,你现在能做些什么呢?您应该寻找谁加入您的面向微服务的团队?在这里,我总结了七个基本技巧,它们可以帮助开发人员在使用微服务时感到自在:



架构


熟悉常用的微服务模式是非常必要的。我建议去官网看看Spring Cloud提供的内容,您将会对微服务的架构有更好的理解。如果您不了解标准模式,您将尝试解决已经解决的问题,您将不可能选择最佳的解决方案。


我也强烈建议在看这篇文章之前,先看看Sam Newman的《构建微服务》。通过阅读本文,您一定会了解模式和最佳实践,尽管是以一种无框架的方式。


结合了解Spring Cloud这样的微服务框架和构建微服务的好书知识,您将在微服务世界中获得一个良好的开端。




领域建模


即使您非常理解您的体系结构和模式,但是要在微服务上取得成功仍然不是那么容易。在系统的不同部分之间分担责任会很快变得非常困难。你需要擅长领域建模和理解如何分配责任。我可以推荐的一个技巧是多画一些。与您的团队和参与该项目的其他人一起绘图是促进对该领域的共享理解的一个很好的工具。


对软件开发人员来说,善于链接领域和设计是一项普遍有用的技能。如果您想深入了解这个主题,您可能需要检查域驱动设计。有很多关于这个主题的书籍和文章,你也可以去看看!



Devops和容器


成功的微服务背后的理念是以Devops的方式工作。就本文而言,这意味着从编写代码到在生产环境中部署,都要拥有服务的所有权。即使您不打算部署它,您也应该知道如何部署它。您将不得不对容器、Docker、Kubernetes等有所了解。好消息是您可以在您的机器上安装Docker,它是一个非常有用的工具!


除了容器,你还需要知道什么?队列、消息、数据库、一些云(AWS, Azure)……哇,好像很多!别担心,如果你在Devops团队工作,可能会有一些经验丰富的同事可以帮助你。没有人会在一夜之间成为专家,但是如果你没有接触过操作方面的知识,学习其中的一些技术对你来说可能是全新的。

好消息是——这些可以是有趣的、有挑战性的、有用的!


如果有一本书我可以推荐你去看看,以便对你的Devops思维和技能有更大的信心,它将是Devops手册,基于非常有趣的Phoenix Project书。



安全


正如您所想象的,保护许多事情比保护一件事情要困难得多。随着微服务的出现,安全问题在每个人的脑海中所占的比例要比在所有人都在使用单体架构应用的时候高得多。您应该学习哪些特定的安全知识?我确实建议您查看常见的单点登录(SSO)实现,特别是在OAuth2相关的技术上。Spring Cloud Security专门可以教给您一些最佳实践,并为您提供实现安全微服务的好主意。


在处理分布式架构时,还有什么其他的安全问题?在rest中保护数据,保护配置——微服务有自己的配置和数据。这些地方的安全常常受到威胁。


引用山姆·纽曼的书中的一条规则,我认为非常重要:不要发明你自己的安全协议。



测试


我注意到,由于微服务比大型单片应用程序更小,看起来也不那么严肃,也不那么商业化,一些开发人员忽略了测试。请不要这样做!微服务为创建经过良好测试和健壮的解决方案提供了大量的机会,所以不要仅仅因为它不是微不足道的,或者单元测试似乎不是答案,就把它传递出去。那么你应该考虑什么样的测试呢?

我的观点是:


单元测试(是的,这些仍然很重要!)


服务/ API测试——您希望尽可能彻底地测试您的端点


集成系统的端到端测试(持续集成在这里非常有用)


持续集成


正如我在前面提到的,端到端测试非常重要。通过微服务系统,确保一切正常工作,您应该看到微服务能够正确地交互。您只能在单独测试这样复杂的系统时走这么远。处理这个问题的最好方法是建立持续集成。无论何时您将代码合并到master(我希望您正在执行拉取请求!),您都应该自动部署到运行不同测试的集成环境中(并且团队成员可以参与一些探索性测试)。


所以,不要再找借口和手工部署了,现在是时候为您所使用的CI设置和学习Jenkins/Teamcity或任何工具并充分利用它了!这一点在一定程度上是Devops技能的扩展,但也足够重要,值得一提!



团队合作


最后但并非最不重要的一点是,你确实需要接受团队合作,并学会与人合作。当你在一个非常大的系统中写一小部分的时候,你更容易把自己孤立起来,生活在自己的泡泡里。多重集成系统和Devops文化意味着你必须与人们进行大量的互动!


这强调了全面的大合作是大微服务的先决条件。当人们之间缺乏微服务时,如何在微服务之间进行良好的通信?有了良好的团队合作,一切都会更好!


总结


微服务作为一种趋势,给软件开发者的日常生活带来了很大的变化!有一种新的工作方式——Devops,这可能会颠覆我们曾经的工作方式!我认为对于我们所有人,软件开发社区的成员来说,这是一个伟大的机会,让他们学到更多的东西,并比以往更加有效!不要害怕这种变化——要激动!

微服务越来越受欢迎,越来越多的开发人员开始使用微服务。如果你是一个开发微服务体系结构的开发人员,或者是想要雇佣一个人的雇主,那么,微服务开发人员最重要的技能是什么?继续往下读,找出答案。


与任何新兴的技术和趋势一样,要掌握它还需要学习一些东西。作为开发人员,我们的工作的本质是——紧跟最新、最伟大的模式和体系结构。那么,要想做好这些微服务,你现在能做些什么呢?您应该寻找谁加入您的面向微服务的团队?在这里,我总结了七个基本技巧,它们可以帮助开发人员在使用微服务时感到自在:



架构


熟悉常用的微服务模式是非常必要的。我建议去官网看看Spring Cloud提供的内容,您将会对微服务的架构有更好的理解。如果您不了解标准模式,您将尝试解决已经解决的问题,您将不可能选择最佳的解决方案。


我也强烈建议在看这篇文章之前,先看看Sam Newman的《构建微服务》。通过阅读本文,您一定会了解模式和最佳实践,尽管是以一种无框架的方式。


结合了解Spring Cloud这样的微服务框架和构建微服务的好书知识,您将在微服务世界中获得一个良好的开端。




领域建模


即使您非常理解您的体系结构和模式,但是要在微服务上取得成功仍然不是那么容易。在系统的不同部分之间分担责任会很快变得非常困难。你需要擅长领域建模和理解如何分配责任。我可以推荐的一个技巧是多画一些。与您的团队和参与该项目的其他人一起绘图是促进对该领域的共享理解的一个很好的工具。


对软件开发人员来说,善于链接领域和设计是一项普遍有用的技能。如果您想深入了解这个主题,您可能需要检查域驱动设计。有很多关于这个主题的书籍和文章,你也可以去看看!



Devops和容器


成功的微服务背后的理念是以Devops的方式工作。就本文而言,这意味着从编写代码到在生产环境中部署,都要拥有服务的所有权。即使您不打算部署它,您也应该知道如何部署它。您将不得不对容器、Docker、Kubernetes等有所了解。好消息是您可以在您的机器上安装Docker,它是一个非常有用的工具!


除了容器,你还需要知道什么?队列、消息、数据库、一些云(AWS, Azure)……哇,好像很多!别担心,如果你在Devops团队工作,可能会有一些经验丰富的同事可以帮助你。没有人会在一夜之间成为专家,但是如果你没有接触过操作方面的知识,学习其中的一些技术对你来说可能是全新的。

好消息是——这些可以是有趣的、有挑战性的、有用的!


如果有一本书我可以推荐你去看看,以便对你的Devops思维和技能有更大的信心,它将是Devops手册,基于非常有趣的Phoenix Project书。



安全


正如您所想象的,保护许多事情比保护一件事情要困难得多。随着微服务的出现,安全问题在每个人的脑海中所占的比例要比在所有人都在使用单体架构应用的时候高得多。您应该学习哪些特定的安全知识?我确实建议您查看常见的单点登录(SSO)实现,特别是在OAuth2相关的技术上。Spring Cloud Security专门可以教给您一些最佳实践,并为您提供实现安全微服务的好主意。


在处理分布式架构时,还有什么其他的安全问题?在rest中保护数据,保护配置——微服务有自己的配置和数据。这些地方的安全常常受到威胁。


引用山姆·纽曼的书中的一条规则,我认为非常重要:不要发明你自己的安全协议。



测试


我注意到,由于微服务比大型单片应用程序更小,看起来也不那么严肃,也不那么商业化,一些开发人员忽略了测试。请不要这样做!微服务为创建经过良好测试和健壮的解决方案提供了大量的机会,所以不要仅仅因为它不是微不足道的,或者单元测试似乎不是答案,就把它传递出去。那么你应该考虑什么样的测试呢?

我的观点是:


单元测试(是的,这些仍然很重要!)


服务/ API测试——您希望尽可能彻底地测试您的端点


集成系统的端到端测试(持续集成在这里非常有用)


持续集成


正如我在前面提到的,端到端测试非常重要。通过微服务系统,确保一切正常工作,您应该看到微服务能够正确地交互。您只能在单独测试这样复杂的系统时走这么远。处理这个问题的最好方法是建立持续集成。无论何时您将代码合并到master(我希望您正在执行拉取请求!),您都应该自动部署到运行不同测试的集成环境中(并且团队成员可以参与一些探索性测试)。


所以,不要再找借口和手工部署了,现在是时候为您所使用的CI设置和学习Jenkins/Teamcity或任何工具并充分利用它了!这一点在一定程度上是Devops技能的扩展,但也足够重要,值得一提!



团队合作


最后但并非最不重要的一点是,你确实需要接受团队合作,并学会与人合作。当你在一个非常大的系统中写一小部分的时候,你更容易把自己孤立起来,生活在自己的泡泡里。多重集成系统和Devops文化意味着你必须与人们进行大量的互动!


这强调了全面的大合作是大微服务的先决条件。当人们之间缺乏微服务时,如何在微服务之间进行良好的通信?有了良好的团队合作,一切都会更好!


总结


微服务作为一种趋势,给软件开发者的日常生活带来了很大的变化!有一种新的工作方式——Devops,这可能会颠覆我们曾经的工作方式!我认为对于我们所有人,软件开发社区的成员来说,这是一个伟大的机会,让他们学到更多的东西,并比以往更加有效!不要害怕这种变化——要激动!

微服务(Microservices)- 文章翻译 本文是翻译 https://martinfowler.com/articles/microservices.html 的内容,旨在介绍一下微服务这种设计架构,希望大家尽量阅读原文。文中翻译难免有疏漏,希望大家不吝指正,共同学习。———————————————————————————————————— 微服务架构的定义“微服务架构”(Microservice Architecture)一词在过去的几 阅读详情

相关推荐

Microservices Patterns Thierry Legrand

微服务是一个非常热门的开发模式,它的出现使得应用变得更加灵活、可扩展,降低了单个应用的复杂性,但是同时也给系统的设计、开发和维护带来了新的复杂性。本书通过描述微服务架构的模式、原则、组件及其适用场景,阐述微服务架构在分布式系统中发挥重要作用,并总结实践经验,提升架构能力,提供指导性建议,将对微服务架构的学习和使用进行到底。本书面向开发人员和架构师,从微服务架构的历史、演化、原理、模式、原则、组件及适用场景等方面,详细地介绍微服务架构设计方法论。其中包括理论知识和实践案例。

AI天才研究院 2245

微服务开发、部署、运维,以及人员的最佳实践

译者:大愚若智通过前两篇介绍过微服务架构的服务本质与服务的交互后,作为这一系列文章的最后一篇,本文将将介绍服务的开发、部署、运维,以及与人员有关的最佳实践。(点击可见、)...

weixin_37098404的博客 1577

从单体架构到微服务架构&最佳实践: Monolithic to Microservices Architecture

概述微服务是一种将软件应用程序开发为独立设置的小模块的方法,其中每个服务运行独特的进程。它通过定义明确的机制进行通信以达到目的。2011 年 5 月,威尼斯附近的软件工程师使用“微服务”这个术语来表达他们中许多人正在探索的通用编程风格。James Lewis 在 2012 年 3 月的案例研究中提出了一些想法,并将其命名为“微服务”。微服务是许多行业想要采用的一种。Net.........

AI天才研究院 1万+

服务端开发所需技能归纳

以下内容转载或引用或参考 http://www.jianshu.com/p/40849a425846 如果你没有接触过服务端开发,是否会好奇服务端的同学究竟做了什么?仅仅是做数据增删改查这样的事情吗?这篇文章告诉你,服务端的开发者都做了哪些事情,他们需要掌握和使用到哪方面的技术。本文适合有学习服务端开发想法或者初级的服务端开发者们阅读。不是技术干货但是希望能提供入门或初

Shanks 875

Uibot RPA中级认证实战:手把手教你用流程创造者搞定客户数据迁移(附验证码容错技巧)

本文详细介绍了Uibot RPA中级认证实战中的客户数据迁移工程化解决方案,特别针对验证码容错技巧和动态表格处理等核心挑战。通过环境准备、登录模块设计、数据提取技术及容错体系的系统讲解,帮助RPA实施工程师掌握高效稳定的自动化流程开发方法,提升企业数据迁移效率。

weixin_30505225的博客 228

云模型在综合评价过程中的应用

目录 1 云模型标尺(标准云模型)的构建方法 1.1 通过正态云的“3En 规则”来表示评价论域 1.2 通过论域的边界值隶属度相等来表示评价论域 1.3 通过黄金分割法来表示评价论域 2 确定评价结果的过程 2.1 基本云发生器 2.2 X条件云发生器 2.3 两种方法的区别 综合评价问题一般分为以下六个步骤 1、明确评价目的; 2、确定被评价对象; 3、建立评价指标体系(包括收集评价指标的原始值、评价指标的若干预处理等); 4、确立与各项评价指标相对应的权重系数; 5、选..

weixin_62223576的博客 1万+

微服务化架构演进与人员组织

「微服务架构思路对组织影响的进一步思考。」今年开始系统演化进入了第四个大版本,前两个版本我们采用的单一应用模式,核心开发团队也只有五、六人。前年团队扩张到了近 20 人左右,单一应用的维护协作成本已变得不可忽视,服务化拆分时进入第三版时我们做出的一个选择,但当时拆分粒度其实较粗,方便把团队拆分为几个小组来分别维护不同的服务和子系统。 两年来随着业务的发展,每个当初拆分的子系统或服务都膨胀到了一定...

iteye_2022的博客 249

LightRAG实战:5分钟快速搭建一个轻量级法律问答系统(附完整代码)

本文通过实战指南,详细介绍了如何使用LightRAG技术快速搭建一个轻量级法律问答系统。该方案通过构建扁平化实体关系网络和混合检索策略,在5分钟内即可完成从环境准备到智能问答的完整流程,并附有完整代码,为中小团队和个人开发者提供了高效、低成本的AI应用解决方案。

time3的博客 277

知识总结:面试重要知识点

0:Java基础 1.自动装箱与拆箱 https://www.cnblogs.com/dolphin0520/p/3780005.html 一:javaWeb部分 1.Servlet何时创建:默认第一次访问servlet时创建该对象 2.Servlet何时销毁:服务器关闭servlet就销毁了 3.每次访问必然执行的方法:service(ServletRequest req, Ser...

qq_36625757的博客 460

三相电路小白必看:正弦量向量表示法保姆级教程(附欧拉公式推导)

本文为电气工程初学者详细解析了三相电路中正弦量的向量表示法,即相量法。通过几何直观和欧拉公式推导,阐明如何将时变正弦量转化为静态复平面向量进行运算,并利用平行四边形法则简化同频正弦量的加减计算。文章结合Python代码进行可视化验证,帮助读者牢固掌握这一分析交流电路的核心工具。

linux6sysadmin的博客 992

电芯外观及体系设计(Cell Design)-①容量平衡设计(Cell Balance Design)

全面获取并正确解读客户需求,将需求进行分解和预判,结合公司现有资源、技术,给出设计方案。一个优秀的电芯设计方案,应该是稳健的,可操作的,满足客户需求的同时,并能为公司带来较多利润。电芯设计需同时考虑周期,性能,品质,加工性,成本,及安全与稳健性。设计人员时刻要有成本控制观念,但利润则是由公司战略所决定。

FDC1303864002的博客 1352

微服务开发主流技术汇总

微服务开发主流技术汇总

weixin_46937298的博客 1184

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的零售柜商品检测软件(Python+PySide6界面+训练代码)

随着新零售概念的兴起,无人零售柜、智能零售店等新型零售模式快速发展。传统零售柜依赖于人工盘点和补货,效率低下且成本高昂。本文提出了一种基于YOLO系列目标检测算法的零售柜商品检测系统,实现了对零售柜内商品的自动识别、计数和库存管理。系统采用PySide6开发用户界面,集成了YOLOv5、YOLOv6、YOLOv7和YOLOv8等多种先进的深度学习模型,提供了完整的训练和推理流程。本文将详细介绍系统设计、算法实现、数据集构建和实际应用效果,并提供完整的代码实现。

YOLO 333

探索微服务构建实践:Building Microservices 教程

探索微服务构建实践:Building Microservices 教程 在现代软件开发领域,微服务架构已经成为一个热门话题,它让复杂的应用程序变得模块化、可扩展且易于管理。GitCode上的building-microservices项目提供了一个全面的教程,引领你逐步探索如何使用Spring Boot和相关技术栈构建微服务。 项目简介 building-microservices是一系列视频课程...

gitblog_00094的博客 1332

基于上下文的 Listwise 重排模型(一):miRNN

2018年阿里团队提出的miRNN(Mutual Influence aware RNN)模型,首次将电商搜索重排建模为全局优化问题,通过RNN捕捉商品序列的相互影响,结合Beam Search生成最优排序,在淘宝搜索中实现GMV(商品交易总额)提升5%的突破。本文将结合论文细节与通俗案例,拆解这一工业级重排框架的核心逻辑。

进一步有进一步的欢喜~ 1918

(数字图像处理MATLAB+Python)第五章图像增强-第一节:图像增强概述和基于灰度级变换的图像增强

图像增强(Image Enhancement):指不考虑图像降质原因,利用各种数学方法和变换手段,增强图像中人们感兴趣部分或提高有用的图像特征的清晰度。从图像质量来看,图像增强提高了图像的可懂度,改善了图像的视觉效果例如在现实场景中,针对那些对比度较差、视觉效果不好的图像,我们就可以利用图像增强改善视觉质量图像增强可分为如下几种基于灰度级变换的图像增强基于直方图修正的图像增强基于照度反射模型的图像增强基于模糊技术的图像增强基于伪彩色处理的图像增强其他图像增强方法分段线性灰度级变换。

快乐江湖的博客 3333

『Microservices & Nameko』Python 微服务实践

微服务最近一二年非常热门,谈论也比较多,简单的说,微服务将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制(通常为HTTP源API)实现通信。下面来一张示例图: Microservices Architecture: 上面2幅图已经形象说明微服务是什么东西了,同时软件部署方式需要建立在容器上。微服务相关生态会在Java和Go语言中比较...

3885

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【总结】AWS 云计算环境中的Microservices(微服务)架构

微服务不是石头缝里面蹦出来的,是基于类似SOA、Blackboard、C/S等应用架构基础上,并融合敏捷开发、DevOps等理念的基础上发展而来 微服务相比传统应用优点明显(快速部署、去中心、良好的隔离性等),缺点也不少(更复杂、通信损耗、测试成本高) 微服务不仅仅是一种新型的应用设计方法,需要企业的组织架构作出适当调整,AWS提供了ECS、Lambda等服务来应对微服务的趋势

品高云邱洋的云知识分享 1万+

数学建模模型总结

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

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

微服务架构演进:spring-boot-microservices-series从单体到分布式的完整改造路径

spring-boot-microservices-series是一个基于Spring Boot和Spring Cloud的微服务实践项目,通过完整的改造路径展示了如何从传统单体应用平滑过渡到弹性分布式系统。本项目提供了可直接运行的微服务架构代码示例,包含服务注册与发现、配置中心、熔断机制、分布式追踪等核心组件,是学习微服务架构的理想实践案例。 ## 微服务架构核心组件解析 ### 服务注册与

gitblog_00303的博客 1039

七个优秀微服务跟踪工具

随着微服务架构复杂性的增加,在问题出现时确定问题的根本原因变得更具挑战性。日志和指标为我们提供了有用的信息,但并不能提供系统的完整概况。这就是跟踪的用武之地。通过跟踪,开发人员可以监控微服务之间的请求进度,从而使他们能够更早地发现并解决问题。

Z__7Gk的博客 2170

我们什么时候需要微服务?When Do I Need Microservices?

宗教、法律和公约的创建是为了解决社会问题,正如新技术是为了解决技术问题而创建的一样。微服务架构是对一个技术问题的新技术发展。不幸的是,由于缺乏对微服务历史的了解,这个概念在软件开发社区中仍然存在争议。Religions, laws, and conventions have been created to address societal problems just as new technolo...

AI天才研究院 1万+

Microservices vs SOA - 微服务与SOA

开始之前,我们先简单看下单体架构、SOA与微服务之间的区别,如下图所示:简单来讲,对于单体架构,其就像一个超大容器,容器内集中包含了该应用的所有软件组件,并且组件与组件之间紧密耦合。 而对于SOA架构来说,其本质上也是服务的集合,服务与服务之间彼此调用,这种调用可能涉及到简单的数据处理或者有超过多个服务之间相互协作共同完成模型业务操作,在SOA中我们需要考虑服务之间应如何相互通信。 最后说到微服务...

helloworld的专栏 1631

什么是微服务:Microservices

业界大牛: 马丁.福勒 微服务: 就目前而言,对于微服务业界并没有一个统一的,标准的定义。 他提倡将单一的应用程序划分成一组小的程序,每个服务运行在其独立的自己的进程中,服务之间互相协调,相互配合为用户提供最终的价值。 dubbo :是rpc springcloud : 是基于HTTPRESTful API 微服务架构: 是一种架构模式,每一个服务运行在独立的进程中,好比中华民族是一个微...

散步的博客 2478

Microservices微服务简介和知识分享

1. Monolith大系统的演变 要讲微服务就要先讲讲它是为什么会产生的,那么我们就需要回顾下软件系统(这里主要是指企业应用系统)的发展历史: 最开始大概二三十年前,企业应用软件大多是以套装软件形式出现,由于电脑硬件性能和网络速度的限制,大多是基于C/S架构,跑在企业局域网里,那个时候大街上跑的基本都是VB、VC、PB、Delphi程序员,连Java也在搞GUI,Swing那些东西。 ...

snowmanjy 805
上一篇: Java程序员从Spring框架中学习到的三种最佳实践
下一篇: .Net CSharp语言中When关键字的用法
codinghello
博客等级 码龄25年 47粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值