ES 集群常用排查命令

ES集群监控总结 一、参考资料http://www.54tianzhisheng.cn/2017/10/18/ElasticSearch-nodes-metrics/ https://www.datadoghq.com/blog/monitor-elasticsearch-performance-metrics/#memory-usage-and-garbage-collection二、前言最近在研究ES集群监控方 阅读详情

说明:集群使用非默认端口9200,使用的是7116端口举例

一、常用命令

#1.集群健康状态


[wlsadmin@elastic-01~]$ curl -XGET "http://10.219.27.00:7116/_cluster/health?pretty"
{
cluster name":"cluster"
"status": "yellow",   #集群状态
"timed out" : false,
"number of nodes": 3,  #集群的节点数
"number_of data nodes": 3, #数据节点数
"active_primary_shards" : 8036,  #集群中所有活跃的主分片数
"active shards": 16082, #集群中所有活跃的分片数
"relocating shards": 0, #当前节点迁往其他节点的分片数量,通常为0,当有节点加入或者退出时该值会增加。
"initializing shards": 0, #正在初始化的分片
"unassigned shards": 10,  #未分配的分片数,通常为0,当有某个节点的副本分片丢失该值就会增加。
"delayed unassigned shards": 0,
"number of pending tasks": 0, 是指主节点创建索引并分配shards等任务,如果该指标数值一直未减小代表集群存在不稳定因素
"number of in flight fetch" :0,
"task max waiting in queue millis": 0,
"active shards percent as number" :99.93785732040766  #集群分片健康度,活跃分片数占总分片数比例。
}
 
说明:pending task只能由主节点来进行处理,这些任务包括创建索引并将shards分配给节点。
#2.集群状态信息
[wlsadmin@elastic-01~]$ curl -XGET "http://10.219.27.00:7116/_cluster/stats?pretty"
{
    "_nodes":{
    "total":3,
    "successful":3,
    "failed":0
    },
   "cluster name":"cluster"
   "timestamp": 1650958054278,
   "status": "yellow",
   "indices":{
     "count”:1612,  #索引总数
     "shards":{
       "total”:16082,  #分片总数
       "primaries”:8036, #主分片数量
       "replication”: 1.001244400199104
       "index":{
         "shards":{
            "min": 2,
            "max”:15,
            "avg”: 9.97642679900744
            },
            "docs”:{
          "count”: 6917866009,  #文档总数
          "deleted": 16940
          },
          "store":{
           "size in bytes”:7722541162072  #数据总存储容量
           "throttle time in millis": 0
           },
           "fielddata”:{
           "memory_size_in_bytes": 2400,
           "evictions”:0},
     "segments”:{
      "count”:182641, #段总数
      "memory in bytes”: 22809369464,
       "terms memory in bytes": 20058152621
      "stored fields memory in bytes”:2091992312
      "term vectors memory in bytes”: 0,
      "norms memory in bytes":197683328,
      "points memory in bytes”: 170072327,
        "doc values memory in bytes”: 291468876,
        "index writer memory in bytes”:87483620
        "version map memory in bytes":346399,
        "fixed_bit_set memory_in_bytes”: 5536,
       "max unsafe auto id timestamp”:1650945037930
       "file_sizes”:{
       }
       }
       },
   "nodes":{
   "count”:{"total”:3,  #总节点数
   "data”:3,  #数据节点数
   "coordinating_only”: 0,
   "master”: 3,
   "ingest”:3},
   "versions”:["5.6.16"], 
    "fs":{
    "total in bytes”: 11249073020928,  #文件系统使用总容量
    "free in bytes”: 2432532422656,  #文件系统剩余总容量
     "available in bytes”: 1942384254976,
     "spins":"true"}
     ...
 

#3.查看索引信息

[wlsadmin@elastic-01~]$ curl -XGET "http://10.219.27.00:7116/_cat/indices"
green open .kibana-event-log-7.8.0-000001 93qZ6-tUT1GJa9w-beZtqQ 1 1      5 0  51.5kb  25.7kb
green open .kibana-event-log-7.8.0-000002 aVeWX45vRqK5bi5ANvz3EA 1 1      0 0    416b    208b
green open .apm-custom-link               qMdSK3MAQxa4Ip37SPkaaw 1 1      0 0    416b    208b
 
#4.查看节点信息
[wlsadmin@elastic-01~]$ curl -XGET "http://10.219.27.00:7116/_cat/nodes?pretty"
XX.XX.XX.XX 16 64 0 0.06 0.04 0.05 dilmrt * node-1   #主节点
XX.XX.XX.XX 11 64 0 0.00 0.01 0.05 dilmrt - node-2
XX.XX.XX.XX  9 67 0 0.00 0.01 0.05 dilmrt - node-3
#5.查看索引级别,找到红色的索引

[root@ES-node1]# curl -X GET /_cluster/health?level=shards
"apache-logs8xxxx”:{
"status" : "green",
"number_of_shards": 1,
"nusber_of_replicas":1.
"active_primary_shards":1,
"active_shards":2,
"relocating_shards”:0,
"initializing.shards”: 0
"unassignedshards”:0},
"mytest”:{
"status" : "red",   #状态为红色的索引
"number_of_shards" :3.
"number_of_replicas":0.
"active_primary_shards": 0,
"active_shards" : 0,
"relocating shards": 0.
"initializing shards": 0.
"unassigned_shards”:3},
 
#6.查看变红原因(explanation变红原因)
GET /_cluster/allocation/explain
"node_decision" : "no",
"weight_ranking":3,"deciders”:[
{
   "decider":"filter",
   "decision":"NO",
   "explanation”:"""node does not match index setting Lindex.routing.allocation.require] filters [box type: "hott"]""

二、案例分析

2.1集群变红

症状:集群变红
分析:通过Allocation Explain API 发现创建索引失败,因为无法找到标记了相应box type的节点
解决:删除索引,集群变绿,重新创建索引,并且指定正确的routing box type,索引创建成功集群保持绿色状态

1.查看索引级别,找到红色的索引
GET /_cluster/health?level=shards
"apache-logs8xxxx”:{
"status" : "green",
"number_of_shards": 1,
"nusber_of_replicas":1.
"active_primary_shards":1,
"active_shards":2,
"relocating_shards”:0,
"initializing.shards”: 0
"unassignedshards”:0},
"mytest”:{
"status" : "red",   #状态为红色的索引
"number_of_shards" :3.
"number_of_replicas":0.
"active_primary_shards": 0,
"active_shards" : 0,
"relocating shards": 0.
"initializing shards": 0.
"unassigned_shards”:3},
 
2.查看变红原因(explanation变红原因)
GET /_cluster/allocation/explain
"node_decision" : "no",
"weight_ranking":3,"deciders”:[
{
   "decider":"filter",
   "decision":"NO",   #因为box-type不符合规则,删除不正确的索引重新创建
   "explanation”:"""node does not match index setting Lindex.routing.allocation.require] filters [box type: "hott"]""
    
3.删除错误的索引
curl -XDELETE localhost:9200/index_name #索引名字
DELETE  mytest
 
4.重新创建新索引
PUT mytest
{
"settings":{
"number_of_shards":3,
"number_of_replicas":0
"index.routing.allocation.require.box_type":"hot"}
2.2集群变黄

症状:集群变黄
分析:通过Allocation Explain API 发现无法在相同的节点上创建副本(副本分片无法正常分配)
解决:将索引的副本数设置为0,或者通过增加节点解决

1.创建索引使集群变黄
PUT mytest
{
    "settings":{
        "nameber_of_shards":2, #分片2
        "namber_of_replicas":1, #副本1
        "index.routing.allocation.requice.box_type":'hot' #指定hot节点创建
    }
}
 
2.查看集群健康状态为黄色
GET _cluster/health
 
3.查看集群黄色原因(因为集群只有一个hot节点,不能再相同的节点上创建副本)
GET /_cluster/allocation/explain
"explanation": "the shard cannot be allocated to the same node on which a copy of the shard already exists[[mytest][1],node[1-wAVO-FT0GLAdRk8-N-GQ],[P], s[STARTED],a[id=_PLt4SS1SyGvxncvU3HN-w]]"
 
4.解决方法
方法1:增加数据节点,使得有副本分配空间;
方法2:修改索引的setting使replicos为0
PUT mytest/_settings
{
    "namber_of_replicas":0
}
创建后集群恢复绿色状态
2.3集群磁盘空间达到阈值

问题:es节点磁盘占用较高,达到阈值,集群状态成red
此时直接删除索引磁盘空间是不会释放的,可以通过调整阈值,将集群状态变为yellow

通过api动态修改:transient 临时更改,persistent是永久更改

临时修改:重启es后失效

curl -H "Content-Type: application/json" -XPUT 10.203.118.32:9200/_cluster/settings -d '{"transient": { "cluster.routing.allocation.disk.watermark.low": "92%", "cluster.routing.allocation.disk.watermark.high": "95%", "cluster.info.update.interval": "1m"}}'

永久修改:

curl -H "Content-Type: application/json" -XPUT 10.203.118.32:9200/_cluster/settings -d '{"persistent": { "cluster.routing.allocation.disk.watermark.low": "90%", "cluster.routing.allocation.disk.watermark.high": "95%", "cluster.info.update.interval": "1m" } }’



在删除索引可达到空间释放的作用
修改es配置文件,需要重启es

2.3.2 更改es配置文件,需要重启es

cluster.routing.allocation.disk.watermark.low
 
Controls the low watermark for disk usage. It defaults to 85%, meaning that Elasticsearch will not allocate shards to nodes that have more than 85% disk used. It can also be set to an absolute byte value (like 500mb) to prevent Elasticsearch from allocating shards if less than the specified amount of space is available. This setting has no effect on the primary shards of newly-created indices or, specifically, any shards that have never previously been allocated.
 
cluster.routing.allocation.disk.watermark.high
 
Controls the high watermark. It defaults to 90%, meaning that Elasticsearch will attempt to relocate shards away from a node whose disk usage is above 90%. It can also be set to an absolute byte value (similarly to the low watermark) to relocate shards away from a node if it has less than the specified amount of free space. This setting affects the allocation of all shards, whether previously allocated or not.
 
cluster.routing.allocation.disk.watermark.flood_stage
 
Controls the flood stage watermark. It defaults to 95%, meaning that Elasticsearch enforces a read-only index block (index.blocks.read_only_allow_delete) on every index that has one or more shards allocated on the node that has at least one disk exceeding the flood stage. This is a last resort to prevent nodes from running out of disk space. The index block must be released manually once there is enough disk space available to allow indexing operations to continue.
 
 
 
es 集群的默认配置是当集群中的某个节点磁盘达到使用率为 85% 的时候,就不会在该节点进行创建副本,当磁盘使用率达到 90% 的时候,尝试将该节点的副本重分配到其他节点。
 
当磁盘使用率达到95% 的时候,当前节点的所有索引将被设置为只读索引。

ElasticSearch 排障常用方法及优化 【代码】ElasticSearch 排障常用方法。 阅读详情

相关推荐

pnpm 依赖管理实战:解决 Cannot resolve ‘lodash‘ 报错全指南

包管理器是前端工程化体系的基石,负责项目的依赖安装、版本锁定与模块解析。传统 npm 采用扁平化 node_modules 结构,虽然使用简单,却容易滋生幽灵依赖,导致依赖声明不完整。pnpm 则基于内容寻址存储与符号链接机制,实现依赖的严格隔离和全局去重,在节省磁盘空间的同时显著提升安装效率,但也因此对依赖声明的完整性提出了更高要求。当团队从 npm 迁移到 pnpm,或新成员用 pnpm 拉取老项目时,常会遇到 Cannot resolve 'lodash' 这类模块解析失败问题,其背后往往涉及环境变量

weixin_34290096的博客 384

elasticsearch 集群管理

elasticsearch 集群管理常用的命令

weixin_35675281的博客 1359

拯救运维效率!Elasticsearch浏览器插件配置指南(附REST Client语法对照表)

本文为运维工程师提供了一份高效的Elasticsearch浏览器插件配置指南,通过详细的连接配置、环境管理及核心功能实战,帮助用户快速搭建便捷的可视化界面。文章还附带了REST Client与Kibana Dev Tools的语法对照表,旨在彻底解决紧急排查时的效率瓶颈,实现运维效率的显著提升。

ol789012的博客 359

ElasticSearch系列文章三 ElasticSearch的基本操作

ElasticSearch 基本操作 集群健康 GET /_cluster/health cluster-health 会返回一个 JSON 响应 { "cluster_name" : "demeter-elasticsearch", "status" : "green", "timed_out" : false, "number_of_nodes" : 1, "number_of_data_nodes" : 1, "active_primary_shards" : 3, "

程序员二胖 1291

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单

python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具

CDBmax的博客 1万+

深入解析SerDes系统中的时钟数据恢复电路(CDR)——基于Cadence的PLL/Bang-Bang/PS-PI架构实现与仿真

本文深入解析SerDes系统中的时钟数据恢复电路(CDR),重点探讨基于Cadence平台的PLL、Bang-Bang和PS-PI三种架构的实现与仿真。通过详细的技术对比和工程实践案例,揭示CDR在高速串行通信中的关键作用,并提供TSMC 28nm工艺下的优化策略与故障排查经验,助力工程师应对10Gbps以上SerDes设计挑战。

weixin_29202687的博客 249

深入浅出 spring-data-elasticsearch 之 ElasticSearch 架构初探(一)

本文目录一、Elasticsearch 基本术语1.1 文档(Document)、索引(Index)、类型(Type)文档三要素1.2 集群(Cluster)、节点(Node)、分片(Shard)分布式三要素二、Elasticsearch 工作原理2.1 文档存储的路由2.2 如何健康检查2.3 如何水平扩容三、小结 推荐:Spring For All ...

weixin_33681778的博客 373

5分钟快速验证lvgl界面:VScode模拟器极简配置法(免环境变量版)

本文介绍了一种5分钟快速验证LVGL界面的极简配置方法,使用VSCode模拟器免环境变量配置,适合UI设计师和产品经理快速预览界面效果。通过预编译的SDL2库和配置好的VSCode工程模板,实现开箱即用的LVGL界面验证,大幅提升工作效率。

weixin_30790841的博客 314

ES集群分片状态

未分配的分片指的是在集群中当前没有分配给任何节点的分片。这可能是由于多种原因导致的,例如节点故障、集群状态变化或者索引配置问题。初始化中的分片是正在被分配到新节点并处于初始化过程中的分片。这些分片从其他节点复制数据或者新创建,并准备好在新节点上使用。正在迁移的分片指的是当前正在从一个节点转移到另一个节点的分片。这种状态通常是为了负载均衡或者节点故障后的恢复。:表示当前没有分配给任何节点,可能由于节点故障或配置问题导致的状态,数据可能不可用。

weixin_54559505的博客 824

【开关电源篇】开关电源——只需这三个阶段,从电源小白到维修大神

🔌 该篇为的原创文章跳转目录,小二持续更新跳转链接,尽情关注!

2301_81299416的博客 2387

NVIDIA AI 学习与认证指南:从入门到精通

NVIDIA的AI学习与认证体系,凭借其先进的技术背景、丰富的课程资源以及强大的行业认可度,已成为AI学习者和从业者的宝贵资源。通过深入学习NVIDIA的课程和获得认证,学习者可以快速掌握最前沿的AI技术,提升自己的职业竞争力。从基础课程到专业认证,NVIDIA为不同层次的学习者提供了量身定制的学习资源,帮助他们掌握AI的核心技能,提升职业竞争力。是其中的一个亮点,它结合了信息检索与生成式AI的能力,使AI可以从外部知识库中实时提取信息,生成更具深度和准确性的内容。,帮助学习者快速掌握该领域的核心技术。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1877

es集群问题排查、常用命令、参数解析

分析:通过Allocation Explain API 发现创建索引失败,因为无法找到标记了相应box type的节点。解决:删除索引,集群变绿,重新创建索引,并且指定正确的routing box type,索引创建成功集群保持绿色状态。此时直接删除索引磁盘空间是不会释放的,可以通过调整阈值,将集群状态变为yellow。问题:es节点磁盘占用较高,达到阈值,集群状态成red。解决:将索引的副本数设置为0,或者通过增加节点解决。

Elaina_fang✨✨✨的博客 2951

RK3588开发笔记-MIPI-CSI接口视频解码芯片XS9922B调试

Rockchip RK3588 是一款高性能的处理器,支持多种摄像头接口,包括 MIPI(Mobile Industry Processor Interface)接口。MIPI是一种用于移动设备和嵌入式系统中的摄像头、显示器和其他传感器设备的串行接口标准。MIPI是MIPI联盟发起的为移动应用处理器制定的开放标准。CSI-2(Camera Serial Interface 2)是MIPI 联盟定义的另一种高速接口,主要用于摄像模组和处理器之间的连接。

flypig has a dream! 6860

ES常见问题

目录 1.修改某个索引的分片数 2.es 写入超时 3.重索引 4.es常用命令 5.华为云es开启安全模式,客户端使用方法 6.运维的一些命令 7.新加Es节点操作 8.由tranlog引起的文件句柄过多问题解决 1.修改某个索引的分片数 #其中, index_patterns 表示要匹配的索引名 #"order": 1 ,这个值,在的会overwite小的值,eg: 默认的es_tempate一般我们都配置为0,这个什为1,那个这值里面的所以参数都会overwirte 值为0的参数

weixin_44024436的博客 5585

2021年全网最细 VirtualBox 虚拟机安装 Ubuntu 20.04.2.0 LTS及Ubuntu的相关配置

目录一、VirtualBox 虚拟机的安装1. VirtualBox 的下载和安装2. 设置 VirtualBox 存储文件夹3. 在 VirtualBox 创建虚拟机二、Linux 操作系统(Ubuntu)的安装1. Linux 操作系统(Ubuntu)的下载2. 安装 Ubuntu3. 启动 Ubuntu三、配置 Ubuntu1. 设置终端2. 设置共享剪贴板3. 设置共享文件夹 一、VirtualBox 虚拟机的安装 VirtualBox 是由德国 Innotek 公司开发,由 Sun Microsy

XAMO Lab|代码、调试与复盘笔记 2万+

【Qt图书管理系统】5.完整版源码及下载地址

Qt图书管理系统完整源码下载。

小鱼酱的博客 7001

Open Distro for Elasticsearch SQL CLI命令行工具实战:如何快速交互式查询Elasticsearch数据(完整指南)

**Open Distro for Elasticsearch(ODFE)SQL CLI 命令行工具 `odfesql`** 是一个独立 Python 应用,安装后可直接在终端用标准 SQL 交互式查询 Elasticsearch 数据,支持自动补全、语法高亮、表格分页输出,是命令行运维 ES 数据的高效工具。 [![odfesql SQL CLI命令行工具交互式查询Elasticsearch数

gitblog_00697的博客 248

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ES 2.0 集群运维命令整理

ES 2.0 集群运维命令整理

The Lost Paradise 7500

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Elasticsearch常用运维命令

status: green(健康),yellow(数据完整,但副本未分配),red(数据丢失或主分片缺失),只有一个索引出现red则集群就是red。unassigned_shards: 未分配的分片数,yellow 或 red 状态的直接原因,集群状态的修复,其实就是修复这里。优快云、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客。查看所有节点统计信息(CPU,内存,磁盘等)查看集群详细状态(包含节点、索引信息)

小云的博客 400

IEM模型,地表粗糙度模拟

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

ElasticSearch常用命令记录

ElasticSearch常用命令记录 <—! 个人学习笔记—> 软件版本:curl -s localhost:9200/?pretty 输出中"version" – "number"看到对应的版本信息 服务状态:/etc/init.d/elasticsearch status 端口占用:netstat -lanp|grep 9300 (节点间通信、数据)、9200(对外服务、连接) 进程查询:ps -ef | grep elastic 或 ps aux | grep elasticsearc

xingfei5的博客 614

elasticsearch 常用接口

elasticsearch 2.3.4-常用命令 功能 命令 查看集群状态 curl -XGET ‘http://localhost:9200/_cluster/health?pretty’ 列出节点信息 curl -XGET ‘http://localhost:9200/_cat/nodes?v’ 列出索引信息 curl -XGET ‘http://localhost

hugufei的博客 3098

es基本操作

这些命令可以帮助您在 Elasticsearch 中进行日常操作、数据管理和故障排除。存在“read_only_allow_delete”:“true” 字段说明只读。查看节点的统计信息,如 CPU 使用率、内存使用情况等。从结果的第 0 条开始,返回 10 条文档。列出所有索引及其状态、文档数量等信息。字段包含 “Hello” 的文档。查看集群健康状态和基本信息。获取集群中所有节点的信息。的字段映射和数据类型。查看集群的健康状态。

linux 560

Elasticsearch常用命令和使用

0、背景 Elasticsearch 具有一组丰富的易于理解的 REST API,这些 API 均可如下几种方式通过 HTTP 调用进行访问。 Curl Postman head 插件 cerebro 工具 kibana 开发实战环节,我推荐使用:kibana Dev-tools。 原因如下: 有提示功能 方便快捷、效率高 不容易出错 本文结合多年实战经验和网络资源,梳理出开发环节最重要的命令清单,希望对你有帮助! .

Felix_阳的博客 616

<span class=“js_title_inner“>Elasticsearch常用运维命令</span>

status: green(健康),yellow(数据完整,但副本未分配),red(数据丢失或主分片缺失),只有一个索引出现red则集群就是red。unassigned_shards: 未分配的分片数,yellow 或 red 状态的直接原因,集群状态的修复,其实就是修复这里。优快云、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客。查看所有节点统计信息(CPU,内存,磁盘等)查看集群详细状态(包含节点、索引信息)

小云的博客 363

分布式微服务系统架构第133集:运维服务器6年经验,高并发,大数据量系统

构建一个系统:使用 MongoDB 分片集群保存订单数据,Redis 缓存热数据,Elasticsearch 存储历史数据,并通过 Java 服务读写协调。长时间接近 100%,排查是频繁写入日志导致 IO 拥塞,优化后日志按级别写入,响应恢复。导入到 ES,支持快速搜索、分页、复杂统计分析,而不影响 Mongo 的读写压力。(如用户最新订单、订单状态)缓存到 Redis,避免 MongoDB 频繁查询。的核心方式,适用于订单类系统、日志系统、交易系统等场景。dump 栈分析是某个线程死循环。

程序员哆啦A梦,蓝胖子 1370

终极Elasticsearch故障排除手册:10个常见错误与快速解决方案 [特殊字符]

Elasticsearch作为企业级搜索和分析引擎,在实际部署中常常会遇到各种性能问题和运行错误。本文为新手和普通用户提供完整的故障排除指南,帮助你快速诊断和解决Elasticsearch集群中最常见的10个问题。无论你是刚开始接触Elasticsearch还是已经有一定经验,这份手册都能为你节省大量调试时间! ## 🔍 集群健康状态监控与诊断 ### 集群状态检查与红色/黄色状态修复 E

gitblog_01164的博客 1120
上一篇: ES 查询比较慢的原因排查并查看ES节点状态
下一篇: ES 查看、删除索引命令
ajax_beijing_java
博客等级 码龄13年 605粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值