docker-compose 部署Kong、PG、Konga

基于 docker-compose 容器化构建 Kong 微服务网关平台 本文主要介绍如何使用 docker-compose 快速体验 Kong 微服务网关,先简单介绍基本概念,然后做了一个 Demo 测试使用,涉及到的相关话题有: Kong 简介; Konga 简介; 基于 docker-compose 容器化构建 Kong 微服务网关平台; 使用 Konga 可视化创建一个 Service 及路由; Kong 简介 Kong 是微服务网关模式架构中连接服务消费方... 阅读详情

 version: '2'
 networks:
   kong-net:
     driver: bridge
 services:
   kong-database:
     image: postgres:9.6
     container_name: kong-database
     restart: always
     networks:
       - kong-net
     environment:
       POSTGRES_USER: kong
       POSTGRES_DB: kong
       POSTGRES_PASSWORD: kong
     ports:
       - "5432:5432"
#kong数据库的初始化
   kong-migration:
      container_name: kong-migration
      image: kong:latest
      command: "kong migrations bootstrap"
      networks:
        - kong-net
      restart: on-failure
      environment:
        KONG_PG_HOST: kong-database
        KONG_DATABASE: postgres
        KONG_PG_USER: kong
        KONG_PG_PASSWORD: kong
        KONG_CASSANDRA_CONTACT_POINTS: kong-database
      links:
        - kong-database
      depends_on:
        - kong-database
 
    # 启动kong
   kong:
      container_name: kong
      image: kong:latest
      restart: always
      networks:
        - kong-net
      environment:
        TZ: Asia/Shanghai
        KONG_DATABASE: postgres
        KONG_PG_HOST: kong-database
        KONG_PG_USER: kong
        KONG_PG_PASSWORD: kong
        KONG_CASSANDRA_CONTACT_POINTS: kong-database
        KONG_PROXY_ACCESS_LOG: /dev/stdout
        KONG_ADMIN_ACCESS_LOG: /dev/stdout
        KONG_PROXY_ERROR_LOG: /dev/stderr
        KONG_ADMIN_ERROR_LOG: /dev/stderr
        KONG_ADMIN_LISTEN: 0.0.0.0:8001, 0.0.0.0:8444
      depends_on:
        - kong-migration
        - kong-database
      ports:
        - "8001:8001"
        - "8000:8000"
        - "8443:8443"
        - "8444:8444"
#konga数据库的初始化
   konga-prepare:
     container_name: konga-prepare
     image: pantsel/konga:latest
     command: "-c prepare -a postgres -u postgresql://kong:kong@kong-database:5432/konga"
     networks:
       - kong-net
     restart: on-failure
     links:
       - kong-database
     depends_on:
       - kong
       - kong-database
#postgres数据库存储数据
   konga:
     container_name: konga
     image: pantsel/konga:latest
     restart: always
     networks:
       - kong-net
     environment:
       DB_ADAPTER: postgres
       DB_HOST: kong-database
       DB_USER: kong
       DB_DATABASE: konga
       DB_PASSWORD: kong
     depends_on:
       - kong
       - kong-database
     ports:
       - "1337:1337"

命令: docker-compose up -d

安装成功后访问测试:

http://localhost:1337 

http://localhost:8001

服务器部署Kong和Konga过程 最近在想怎么将一个接口给外部提供服务,并且可以根据和对放的关系,设置不同的期限或者服务大小?并且有友好的可视化页面!这让我了解到了API网关,所以我开始研究Kong和Konga的使用。实际上我最开始研究的apisix,但是部署了好久因为etcd不支持http无法连接成功放弃了!Kong是一个强大的开源 API 网关,而Konga则是它的一个可视化管理工具。由于Kong使用postgres作为数据存储,所以我们需要三个镜像。下面是快速搭建Kong和Konga的完整流程,希望能帮助到有类似需求的开发者。 阅读详情

相关推荐

5分钟搞定Konga与Kong的Docker部署:新手避坑指南

本文提供了一份详细的Konga与Kong的Docker部署指南,帮助新手在5分钟内快速搭建API网关和可视化管理界面。通过Docker Compose配置和常见问题排查,实现高效的微服务架构管理,特别适合需要快速部署和可视化操作的开发团队。

weixin_30379531的博客 523

Kong安装教程(docker-compose)

Kong安装教程

wsq0713的博客 1879

5分钟搞定Kong网关+Konga可视化:docker-compose一键部署完整指南

本文提供了一份详细的docker-compose一键部署指南,帮助用户在5分钟内快速搭建Kong网关和Konga可视化控制台。通过容器化技术,简化微服务网关的部署流程,提升DevOps效率,适用于快速验证技术方案或生产环境部署。

weixin_29216957的博客 232

Docker-compose 部署kong + konga

然后新建docker-compose.yaml文件,编辑如下内容。首先确保系统安装了docker和docker-compose。docker-compose启动容器。

圣灵骑士 1230

10 分钟玩转 Kong + Konga:从 0 到生产级 API 网关实战

阶段推荐学习阶段小团队中型系统Kong 集群云原生Kong 不是“反向代理”。认证中心限流中心安全网关微服务入口可观测流量层。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 831

kong-docker-compose:Docker Compose的Kong API Gateway

Kong与Docker-Compose 一个如何在Docker compose中使用Kong的示例。 此示例中有4种服务: kong :API网关 kong-migration :自我终止的容器,用于仅迁移Kong的数据库。 kong-database :Postgres数据库(Kong支持Postgres和Cassandra) 仪表板:Kong GUI 这是每个服务之间的依赖关系方向: “ kong-database”是唯一依赖于其他服务的服务 “ kong”和“ kong-migration”将取决于“ kong-database” “仪表盘”取决于“ kong” 我们将“ kong”服务的重启策略设置为“ always”,因为该服务取决于由“ kong-migration”处理的“ kong-database”的迁移状态,这是一个自终止服务,在执行完成后将被删除,所

docker-compose部署kong konga

kong是基于openresty的不错的网关,konga是一种管理kong的可视化开源项目,kong-dashboard也是一种kong的可视化开源项目,但是最近一次更新都是1年前的事了,所以选择了konga,下面是docker-compose部署整套环境的脚本。 version: "3" networks: kong-net: driver: bridge services: ...

johnhuster的专栏 4251

ZYNQ开发(2)在Linux系统层上PL-PS通过AXI-DMA传输数据详细步骤及注意事项

参考的网络资料 https://github.com/bperez77/xilinx_axidma/tree/master https://gitlab.gnome.org/HosseinBeheshti/UlteraZed7EV/-/tree/master/petalinux/xilinx_axidma https://www.icode9.com/content-3-925319.html https://blog.csdn.net/weixin_38218267/article/details/1

aizaiyueye的专栏 3431

KONG和KONGA部署及配置

个人理解,仅供参考: 首先,kong+konga除去其他高级功能,个人觉得就是把nginx,变成可以页面配置的了。比如,配置的router,service就是反向代理,配置upstream就是负载均衡。 本文只介绍KONGA配置service,router,upstream。 使用docker-compose安装: docker-compose.yml [root@ecs-f841-0003 kong]# cat docker-compose.yml version: '3' services: k

qq_20741133的博客 8559

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2389

WGS-84 ECEF ENU 坐标系学习记录

地球坐标系固定在地球上而随地球一起在空间做公转和自转运动,因此地球上任一固定点在地球坐标系的坐标就不会由于地球旋转而变化。地心地固直角坐标系和大地坐标系都属于这种坐标系。 一、 几种坐标系 地心地固直角坐标系(ECEF)坐标系 其原点为地球的质心,x轴延伸通过本初子午线(0度经度)和赤道(0deglatitude)的交点。 z轴延伸通过的北极(即,与地球旋转轴重合)。 y轴完成右手坐标系,穿...

YYshuangshuang的博客 1万+

docker、docker-compose 下安装kong网关、konga管理页面

docker、docker-compose 下安装kong网关、konga管理页面 文章目录docker、docker-compose 下安装kong网关、konga管理页面1、kong网关的安装--官网步骤1.1、下载镜像,然后镜像本地打个tag1.2、创建一个docker网络1.3、创建一个pgsql的实例1.4、初始化kong组件需要的数据库1.5、创建一个kong的实例2、kong安装的实际步骤--优化2.1、部署pgsql2.2、拉取镜像,2.6.0版本2.3、初始化kong的数据库2.4、创建k

鸭鸭的博客 3541

离线安装vue脚手架,内网安装@vue/cli

公司开发环境使用内网,无法用外网,搭建环境的时候,发现内网系统没有安装vue脚手架,我搜了很多文章,发现他们的方法对我都不适用,然后就自己摸索,最终皇天不负有心人,终于被我安装上了,一下是我内网离线安装vue/cli的方法,希望能帮助到有需要的小伙伴! 因为npm被集成在nodejs中,而安装nodejs只需要把nodejs安装包copy到内网电脑安装就行,比较简单,这里就不多做演示。 在外网电脑上,使用npm install -g xxxx命令下载好我们所需要的各个安装包,比如: npm insta

Liberty_yes的博客 1万+

【亲测免费】 Kong-Konga Docker Compose 项目常见问题解决方案

Kong-Konga Docker Compose 项目常见问题解决方案 项目基础介绍 Kong-Konga Docker Compose 项目是一个基于 Docker Compose 的解决方案,用于快速部署和管理 Kong API 网关和 Konga 管理界面。该项目使用官方的 Kong 和 Konga 镜像,结合 PostgreSQL 数据库,提供了一个完整的 API 网关解决方案。主要编程...

gitblog_00580的博客 1098

基于转录逆转的药物重定向 GPS 模型

GPS是一个基于分子结构预测基因表达扰动的开源平台,由三个模块组成:RCL(在LINCS扰动数据上训练抗噪MLP)、GPS4Drugs(预测新化合物的基因表达谱并进行逆转评分)、MolSearch(基于MCTS的分子优化)。平台使用Morgan指纹和Gene Ontology注释作为特征输入,将基因表达扰动离散为三分类标签。训练数据来自LINCS Phase I的18,746个化合物和978个landmark基因,支持四细胞系独立训练,可用于药物重定向与化合物筛选。

听雨草堂 64

LVGL 9Text Area 控件 (lv_textarea) 使用指南

是一个可编辑的文本输入控件,通常用于在用户界面中输入和编辑多行或单行文本。该控件支持文本插入、删除、光标控制、文本选择、密码输入等功能。它的文本内容可以通过键盘、API 或事件进行修改,还可以设置最大文本长度、占位符文本和密码模式等。是一个强大且灵活的文本输入控件,适用于多种用户输入场景,支持文本插入、删除、光标控制、密码输入等功能。通过 LittlevGL 提供的丰富 API,开发者可以自定义文本区域的外观和行为,实现复杂的文本输入需求。

m0_62599305的博客 1669

kong Api网关使用(搭配konga)

kong Api网关使用(搭配konga) 搭建docker运行环境: docker-compose :参考https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml 可以去dockerHub看部署方式: https://hub.docker.com/_/kong 我这里由于一些原因,写成了bash命令启动模...

luslin1711的博客 3386

六、大模型(LLMs)参数高效微调(PEFT) 面

链接: https://pan.baidu.com/s/1TYqdCK53tDFEYGtAvpnTbA 提取码: 6a9s。考核中的核心考点,并针对这些考点提供了详尽的解答。通过网盘分享的文件:06大模型(LLMs)参数高效微调(PEFT) 面。)有哪些方法,能不能稍微介绍一下它们间?这种微调方法和全参数比起来有什么劣势吗?能不能总结一下各种参数高效微调方法?高效参数微调,如何进行存储?多种不同的高效微调方法对比。模型显存占用的部分有哪些?微调方法为啥能加速训练?微调计算可训练参数的比例。

weixin_51988935的博客 532

docker-compose部署kong konga,Java高级工程师进阶学习

现在其实从大厂招聘需求可见,在招聘要求上有高并发经验优先,包括很多朋友之前都是做传统行业或者外包项目,一直在小公司,技术搞的比较简单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。所以说,如果你想进大厂,想脱离传统行业,这些技术知识都是你必备的,下面自己手打了一份Java并发体系思维导图,希望对你有所帮助。单,没有怎么搞过分布式系统,但是现在互联网公司一般都是做分布式系统。

1157

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【KONG】KONG的部署及简单使用

konga启动后,需要配置kong-admin url,注意不要使用127.0.0.1或localhost,需要使用你机器的真正ip地址或docker-compose中配置的kong的hostname即kong。为baidu_service这个服务创建了一个路由,路径为my-baidu。创建了一个名为baidu_service的服务。简单配置一下就可以使用了。

小赵的博客 1416

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

docker-compose 部署Kong 及Konga

version: "3" networks: kong-net: driver: bridge services: ####################################### # Postgres: The database used by Kong ####################################### kong-database: image: postgres:9.6 restart: always net...

weixin_35304942的博客 555

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

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

docker-compose安装Kong网关Konga教程

Kong网关Konga安装教程安装docker-compose修改 docker-compose.yml合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 安装docker-compose 我们对Markdown编辑器进行了一些功能拓展与语法

mz135135的博客 1187

docker下部署kong+consul+konga 报错问题处理

由于在docker下部署一些项目比较特殊,特别是网络这一块,如果没有搞清楚,是很容易出问题的。① 确保 以上启动正常,并且kong和consul在同一个 编排下② 我使用的是外网访问 - 将 consul 开放出去【一开始我开放的是tcp,后面改为了udp】这里是关键 - 之后就正常访问啦我在网上找了,也没有找到什么方案 - 问题的关键还是在配置上;弄了几个小时,终于搞定。

weixin_41104307的博客 766

使用docker启动kong和kong-dashboard

用docker创建一个网络 docker network create kong-net 创建一个存储卷 docker volume create kong-vol 查看卷信息 docker volume inspect kong-vol 内容应该如下结构: [ { "CreatedAt": "2019-05-28T12:40:09Z", "Driv...

个人学习和记录 2594
上一篇: 使用openhtmltopdf 工具进行转PDF
下一篇: Java项目编译不通过,IDEA无法运行或调试Unit test类
qiandeqiande
博客等级 码龄16年 107粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值