自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大团猿的博客

不止技术,更有乐趣

  • 博客(59)
  • 资源 (10)
  • 收藏
  • 关注

原创 Go语言并发编程系列: 第三章:Go语法介绍

Go语言并发编程系列: 第一章:Go的前世今生Go语言并发编程系列: 第二章:Go安装部署Go语言并发编程系列: 第三章:Go语法介绍Go语言并发编程系列: 第四章:多线程编程概述Go语言并发编程系列: 第五章:Go的并发原理Go语言并发编程系列: 第六章:Go锁的应用Go语言并发编程系列: 第七章:实战-聊天机器人Go语言并发编程系列: 第八章:实战-Go实现一个软件性能测试工具Go语言并发编程系列: 第九章:实战-Go实现Concurrent MapGo语言并发编程系列: 第十章:实战

2020-11-27 08:03:38 105 4

原创 项目实战:Java实现超大文件分片加密和解密(附完整源码)

文章目录一,项目需求二,实现思路三,源码分析四,最后总结一,项目需求今天在工作中遇到这样一个问题,系统中,文件上传的过程中需要进行加密,下载时再进行对应的解密。当文件不是太大时没有问题,但是当文件过大时,比如有个几百M或者几个G时就出问题了。这么大文件进行一次性加密解密,时间太长以至于出现系统超时,甚至出现内存溢出的情况。如何解决?经过研究,我们在进行文件加密时其实没有必要加密整个文件,只加密其中的一部分(比如加密1M文件),然后和另外一部分不加密的文件拼接在一起,生成最终的加密文件。虽然只加密了其.

2020-11-23 11:00:10 283 2

原创 Go语言并发编程系列: 第二章:Go安装部署

Go语言并发编程系列: 第一章:Go的前世今生Go语言并发编程系列: 第二章:Go安装部署Go语言并发编程系列: 第三章:Go语法介绍Go语言并发编程系列: 第四章:多线程编程概述Go语言并发编程系列: 第五章:Go的并发原理Go语言并发编程系列: 第六章:Go锁的应用Go语言并发编程系列: 第七章:实战-聊天机器人Go语言并发编程系列: 第八章:实战-Go实现一个软件性能测试工具Go语言并发编程系列: 第九章:实战-Go实现Concurrent MapGo语言并发编程系列: 第十章:实战

2020-11-23 10:58:36 181 7

原创 Go语言并发编程系列: 第一章:Go的前世今生

一,Go语言历史和特性1.1,Go语言的历史2007年9月罗伯·派克在Google分布式编译平台上进行C++编译,在漫长的等待过程中,他和罗伯特·格瑞史莫探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新特性,会是更大的进步。随后他们在编译结束之前说服了身边的肯·汤普逊,觉得有必要为此做一些事情。几天后,他们发起了一个叫Golang的项目,将它作为自由时间的实验项目。2008年5月Google无意中发现了Go语言的巨大潜力,得到了Google的全力支持,这些人

2020-11-22 19:07:14 318 8

原创 项目实战:基于Rabbitmq实现数据总线多队列串行运行模型(附完整源码)

文章目录需求缘起今天讲一讲之前在做支付系统时利用rabbitmq实现数据总线,来进行用户账户资金更新操作。我们知道在支付系统中最最重要的操作就是操作账户资金,比如用户进行充值,提现,或者系统进行对账,返现,返利等等,这些操作是不允许有一分一毫的误差的。在高并发的支付系统中,某一瞬间可能同时有很多线程对同一账户进行操作,有同学说这种情况可以对资金账户加线程锁,乐观锁或悲观锁等进行资源同步保护,但是在高并发的互联网系统中加锁并不是最优的解决方案,加锁意味着性能的降低(或多或少),下面介绍如何利用rabb.

2020-10-28 11:57:23 479 18

原创 项目实战:基于elasticsearch打造亿级搜索引擎系统(附全套源码)

一,前言Elasticsearch是一个基于Lucene的分布式可扩展的实时搜索和分析引擎,。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、PHP、Python、Ruby和许多其他语言中都是可用的。Elasticsearch是最受欢迎的企业搜索引

2020-10-18 14:51:25 730 6

原创 全网最全JavaScript正则表达式( 校验数字和字母)

<script type="text/javascript"> function doCheck() { var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; var v = document.getElementById("txt").value; if (!reg.test(v)) { alert("请输

2021-01-14 13:59:55 58

原创 VM options常用设置

Java VM 常用设置记录-Xms256m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m

2020-12-14 15:34:05 149

原创 Java基础之:System.arraycopy方法使用

方法声明如下:public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);参数说明如下:Object src : 原数组int srcPos : 从原数据的起始位置开始Object dest : 目标数组int destPos : 目标数组的开始起始位置int length : 要copy的数组的长度使用示例:public static vo

2020-11-13 11:07:44 104

原创 已知男程序员穿格子衫,那么女程序员会穿格子裙吗?

我是看了女生穿格子囷还真挺好看的!无论是否是程序猿某大厂A先生:这年头男程序猿也不流行格子衬衫了,公司要求或正式场合,有必要就穿正经衬衫,如果没必要,平常大家都穿T恤或休闲装。其实游戏产业等等里头的工作者,就算不是程序猿,整体穿衣风格也是都差不多。十来年前我还在游戏产业的时候,就感觉不管什么岗都是一样大量的格子衬衫。女程序猿比较少见,知道的大多穿衣风格跟比较朴素的女学生没什么大区别,不过也不代表人家就不好好打扮,平常没工夫而已。男程序猿也一样,大多没工夫没闲心,日常就实用主义至上就好,不过也当然都是..

2020-11-06 13:02:46 1949 18

原创 哪些明星大咖是隐藏的程序员?

01,马东提起马东,大家肯定不会陌生吧,没错。就是《奇葩说》策划人,米未传媒CEO,前央视主持人。他的另一重身份或许很多人都不了解哦。早在马东在澳洲读书的时候,他就是一名“码农”,在澳洲10年的IT工程师经历,对于数据灵敏的认知和有序的编程思维,使得其在做传媒行业时风格别具一致,脱颖而出。02,许嵩许嵩是创作人不假,但更是货真价实的程序员。他小时候就梦想着成为一名科学家,要研发一款比windows还牛逼的操作系统,而且是中国人自己的;初中时候,自学网页设计,还参加全国青年网页制作比赛;大学的时候建

2020-11-01 15:00:23 557 6

原创 不会“脱口秀”、“摇滚”的程序员,不是好“模特“!

时间过得实在快,马上到11月份了,舍不得这个夏天!我知道这个夏天不只是我的夏天,还是乐队的!程序员可以很摇滚!综艺节目《乐队的夏天》帮助摇滚人再度翻红,也让我们认识了一位特别的程序员小哥哥,赵子建。生活中,他平凡如你我。办公楼,格子间,电脑不离身,这是他的工作,却不一定是他的热爱。一个人在做他热爱的事情,是会发光的!就像他在舞台展现摇滚的时候。你望向他,一样的角度,不一样的气质!他是刺猬乐队的主唱,如同队名一样,刺猬,情绪来了就“扎你”一下,他们的乐队玩儿的就是情绪!子健深深体验过各种情绪

2020-11-01 10:06:29 1981 6

原创 对象new的原理和女朋友的生成原理一致吗?

每个女人,都是一套复杂的系统,只不过,这套系统不是由程序员创造的,而是由大自然进化而成的。大部分程序猿不太懂得如何泡妞,是因为你不熟悉女人这套系统,也没人教过你如何学习这套系统。我们知道,操作系统分Linux、Windows、OS X、Android、iOS等等,同样的,女人这套系统也是有分类的。大部分女人就像Windows一样,容易上手,不过相貌平平,非常大众化没什么特色;而像OS X的女人很高大上,但不是每个人都玩得起;像Linux的女人很有深度,也比较有个性,有Ubuntu、CentOS、Fedor

2020-10-30 10:01:37 1383 11

原创 Guava(瓜娃)使用笔记

Guava(瓜娃)学习笔记Guava工程包含了若干被google的java项目广泛依赖的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。这些高质量的API可以使你的java代码更

2020-10-28 09:58:18 327 3

原创 logstash配置文件说明

logstash配置语句详解logstash配置文件包含三个配置部分,分别为:input{}、filter{}、output{}。{} 定义区域,区域内可以定义一个或多个插件,通过插件对数据进行收集,加工处理,输出。数据类型:布尔值类型: ssl_enable => true字节类型: bytes => “1MiB”字符串类型: name => “xkops”数值类型: port => 22数组: match => [“datetime”,“UNIX”]哈希

2020-10-28 09:40:34 189

原创 Metricbeat组件安装部署教程

下载安装tar -zxvf metricbeat-6.5.1-linux-x86_64.tar配置 metricbeat.yml , 样例如下:########################## Metricbeat Configuration ###########################metricbeat.config.modules:path: ${path.config}/conf.d/*.ymlreload.period: 10sreload.enabled: tr

2020-10-27 19:58:12 261 2

原创 filebeat组件部署教程

解压安装包tar -zxf filebeat-6.1.1-linux-x86_64.tar.gz配置filebeat.ymlvi /home/elk/filebeat-6.4.2-linux-x86_64/filebeat.yml基本配置项filebeat:prospectors:- type: logpaths:- /var/log/*.logmultiline:pattern: '^['match: after用于指定需要关注的文件。filebeat.prospectors

2020-10-27 19:55:14 247 2

原创 elasticsearch别名操作

操作别名的两个方法:_alias:单个操作_aliases:多个操作,原子性的操作创建别名:curl -XPUT 'http://172.18.96.32:9200/biz_log_acc_mapp*/_alias/mapp'curl -XPOST 'http://localhost:9200/_aliases' -d '{ "actions" : [ { "add" : { "index" : "dm_v1", "alias" : "dm_alias" } }

2020-10-27 19:48:47 167 1

原创 elasticsearch常用命令操作集合

文章目录1,请求命令格式2,关闭服务3,添加员工信息4,检索单个员工信息5,检索所有员工信息6,简单查询查询last_name为Smith的员工信息:全匹配7,DSL语句查询 查询last_name为Smith的员工信息:全匹配8,查询last_name为Smith, 并且年龄大于30岁的员工信息9,全文搜索, 搜索喜欢rock climbing的员工信息10,短语搜索,查询同时包含"rock"和"climbing"(并且是相邻的)的员工记录11,高亮显示显示搜索结果中关键字12,聚合查询13,集群状态说.

2020-10-27 19:40:00 271 2

原创 cerebro安装部署

下载下载地址: https://github.com/lmenezes/cerebro/releases启动解压cerebro-0.8.1.zip到任意文件夹,比如cerebro0.8.1,运行bin/cerebro ,启动没有报错,并且命令行窗口持续打开即为启动成功.启动成功后默认监听9000端口.nohup ./cerebro > cerebro.log & – 后台启动使用在浏览器输入http://localhost:9000,在打开的页面的文本框中输入http://

2020-10-27 19:03:36 324

原创 Elasticsearch-IK分词词库安装说明

第一步:下载es的IK插件https://github.com/medcl/elasticsearch-analysis-ik。第二步:使用maven对下载的es-ik源码进行编译(mvn clean package -DskipTests)。第三步:把编译后的target/releases下的elasticsearch-analysis-ik-1.10.3.zip文件拷贝到ES_HOME/config/analysis-ik/目录下面,然后使用unzip命令解压。如果unzip命令不存在,则安装:y

2020-10-27 19:01:18 142

原创 ELK(elasticsearch+logstash+kibana)日志采集系统部署教程

文章目录一,安装环境二,安装JDK2.1,下载JDK:2.2,配置环境变量2.3,配置limit相关参数2.4,创建运行ELK的用户三,安装Elasticsearch四,安装logstash五,安装kibana一,安装环境系统版本:centos 6.5JDK:1.8.0_181Elasticsearch-6.4.2Logstash-6.4.2kibana-6.4.2二,安装JDK2.1,下载JDK:http://www.oracle.com/technetwork/java/javas.

2020-10-27 18:56:10 1808 5

原创 手把手教您 CentOS7下搭建Jenkins

文章目录一,Jenkins 是什么二,CentOS7 下 Jenkins 搭建过程三,可能遇到的问题一,Jenkins 是什么Jenkins 是什么嘞?它提供了软件开发的持续集成服务,运行在 Servlet 容器中(例如 Apache Tomcat )。它支持软件配置管理( SCM )工具(包括 AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase 和 RTC ),可以执行基于 Apache Ant 和 Apache Maven 的项目,以及任意的 Sh.

2020-10-27 14:05:43 227 2

原创 详解Java类加载机制

1、ClassNotFoundExcetpion我们在开发中,经常可以遇见java.lang.ClassNotFoundExcetpion这个异常,今天我就来总结一下这个问题。对于这个异常,它实质涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然它和我们直接打交道不多,但是对其背后的机理有一定理解有助于我们排查程序中出现的类加载失败等技术问题。2、类的加载过程一个java文件从被加载到被卸载这个生命过程,总共要经历5个阶段,JVM将类加载过程分为:  加载-&g

2020-10-27 13:36:31 166

原创 最常见的12道计算机基础面试题

前言本篇总结了12道最常见的计算机网络面试题,并给出了一些自己的看法,若有不妥之处万望指正。请详细介绍一下 TCP 的三次握手机制,为什么要三次握手?在讲三次握手之前首先要介绍 TCP 报文中两个重要的字段:一个是序号字段,另一个是确认号字段,这两个字段将在握手阶段以及整个信息传输过程起到重要作用。第一步:客户端 TCP 向服务端的TCP发送一个不带额外数据的特殊 TCP 报文段,该报文段的 SYN 标志位会被置1,所以把它称为 SYN 报文段。这时客户端会选取一个初始序列号(假设为 clien

2020-10-27 09:56:59 257

原创 Java面试题带答案-基础知识考察

java面试题一,指出下面程序的运行结果class A {static {System.out.print(“1”);}public A() {System.out.print(“2”);}}class B extends A{static {System.out.print(“a”);}public B() {System.out.print(“b”);}}public class Hello {public static void main(String[] arg

2020-10-17 17:20:22 172

原创 解决异常:Invalid character found in method name. HTTP method names must be tokens

问题异常描述:java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:416) ~[tomcat-embed-core-9.0.31.jar:9.0.31] at org.

2020-10-17 15:49:26 289 2

转载 有个程序媛女朋友是什么体验?

有人问阿粉,有个程序媛女朋友是一种什么体验。阿粉虽然没有,但是身边有案例,这不为了满足大家的好奇心,去问了一圈,结果问下来之后,阿粉酸了…程序员 A :你问我有个程序媛女朋友是啥体验?第一体验就是脱单了!还有什么体验比这更好么?阿粉摸了摸自己的头发,默默的低下了头程序员 B :记得有次跟我女朋友表白,告诉她我爱她,在我心里她永远都是第一位的,结果遭到她的质问,在我心里谁是第零?!!!程序员 C :我女朋友就是程序媛,然后有次她在家也加班来着,让我帮忙看一下代码“你为啥要用要敲空格键呢?用 t

2020-10-16 10:26:13 179

原创 分享一个Ftp上传下载工具类,超好用

文章目录一,代码片二,maven依赖三,最后一,代码片分享一个Ftp上传下载工具类,废话不多说,直接上代码:FileUtil.javapackage com.standard.commonutil.util;import com.standard.commonutil.file.WriteFile;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.a.

2020-10-15 18:15:06 164 1

原创 分享一个Excel工具类,超好用

文章目录一,代码片二,maven依赖三,最后一,代码片分享一个Excel工具类,废话不多说,直接上代码:package com.standard.commonutil.util;import com.google.common.collect.Lists;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.user.

2020-10-15 17:12:00 163 3

原创 分享一个JavaBean对象属性克隆类,超好用

文章目录一,代码片二,使用样例三,最后一,代码片分享一个JavaBean对象属性克隆类,直接上代码:package com.standard.commonutil.util;import java.util.ArrayList;import java.util.List;/** * <pre> * 对象属性克隆类 * </pre> */public class BeanClone { public static <T, K> K c.

2020-10-15 17:08:31 102

原创 分享一个JavaBean属性拷贝工具类,超好用。

文章目录一,代码片二,使用样例三,最后一,代码片分享一个JavaBean属性拷贝工具类,废话不多说,直接上代码:import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.util.HashMap;import java.util.Map;import java.util.Set;/** * 属性拷贝工具,支持继承,要拷贝的属性必须有get,set的公用方法 * * @author .

2020-10-15 16:33:37 145

原创 分享一个CSV文件操作工具类,超好用

文章目录一,代码片二,maven依赖三,最后一,代码片分享一个CSV文件操作工具类,超好用,废话不多说,直接上代码:import com.google.common.collect.Lists;import com.opencsv.CSVReader;import com.opencsv.CSVReaderBuilder;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;i.

2020-10-15 16:16:52 193

原创 Java多线程:线程池的那些坑

文章目录一,前言二,ExecutorService接口2.1,Single线程池2.2,fixed线程池2.3,cache线程池2.4,线程池核心参数理解三,四种线程池的拒绝策略四,正确的实践方法:五,总结:一,前言大家平时在工作会经常用到线程池进行多线程程序开发,正常做法,新建的线程直接丢到线程池里执行,然后就什么都不管了,一般情况下这样做也没什么错,但是在项目实战中我们吃了太多一般情况的亏,如果线程任务执行的业务逻辑比较耗时,又比如如果系统进行大促销,流量比较大的话,那么大概率(或者说基本)系统.

2020-10-15 15:48:48 238 6

原创 多库多事务降低数据不一致概率问题

文章目录一、案例缘起二、补偿事务三、事务拆分分析与后置提交优化四、总结一、案例缘起我们经常使用事务来保证数据库层面数据的ACID特性。举个栗子,用户下了一个订单,需要修改余额表,订单表,流水表,于是会有类似的伪代码:start transaction; CURDtable t_account; any Exception rollback; CURDtable t_order; any Exceptionrollback; CU.

2020-10-14 23:02:35 124 1

原创 DB主从一致性架构优化几种方法

文章目录一,需求缘起二,方案一(半同步复制)三,方案二(强制读主库)四,方案三(数据库中间件)五,方案四(缓存记录写key法)六,总结一,需求缘起大部分互联网的业务都是“读多写少”的场景,数据库层面,读性能往往成为瓶颈。如下图:业界通常采用“一主多从,读写分离,冗余多个读库”的数据库架构来提升数据库的读性能。这种架构的一个潜在缺点是,业务方有可能读取到并不是最新的旧数据:(1)系统先对DB-master进行了一个写操作,写主库(2)很短的时间内并发进行了一个读操作,读从库,此时主从同步没有.

2020-10-14 22:17:38 114

原创 分享一个http请求工具类,超好用。

文章目录一,代码片二,maven依赖三,最后一,代码片分享一个http请求的工具类,超好用,废话不多说,直接上代码:import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.http.HttpStatus;import org.apache..

2020-10-14 21:02:38 230

原创 主从DB与cache一致性问题

文章目录一,前言二、需求缘起三、为什么数据会不一致四、不一致优化思路五、总结一,前言本文主要讨论这么几个问题:(1)数据库主从延时为何会导致缓存数据不一致(2)优化思路与方案二、需求缘起上一篇《缓存架构设计细节那些事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构下,有可能出现脏数据入缓存的情况,此时串行化方案不再适用了”,这就是本文要讨论的主题。三、为什么数据会不一致为什么会读到脏数据,有这.

2020-10-14 20:39:55 115

原创 快速掌握数据库垂直拆分的方法

文章目录一、需求缘起二、什么是垂直拆分三、垂直切分的依据是什么四、为什么要这么这么拆分五、总结一、需求缘起当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表:user(uid bigint,name varchar(16),pass varchar(16),age int,sex tinyint,flag tinyint,sign varchar(64),intro varchar(256)…);水平切分是指,以某个字段为依据(.

2020-10-14 09:33:22 134 1

原创 互联网软件架构,该怎么进行容量规划

文章目录一,需求缘起二,容量评估的步骤与方法2.1步骤一:评估总访问量2.2步骤二:评估平均访问量QPS2.3步骤三:评估高峰QPS2.4步骤四:评估系统、单机极限QPS2.5步骤五:根据线上冗余度回答两个问题三,总结一,需求缘起在竞争激烈的电商公司中,会经常有这样的业务场景:场景一:市场部策划要做一个很大的运营活动,技术负责人冲过来,抛下两个问题:(1)服务器性能怎样,是否能抗住么?(2)如果扛不住,需要加多少服务器?场景二:系统设计阶段,技术负责人冲过来,又问了两个问题:(1)数据库需.

2020-10-14 09:33:00 168 2

Apollo配置中心软件安装包

apollo配置中心软件安装包,一键解压配置安装。linux, windows, zip,官网原版,部署架构,适配springboot,cloud微服务配置中心安装包

2020-09-27

秒杀系统架构优化思路

详细列举了秒杀系统的架构,包括浏览器端,站点层,服务层,数据层,接入层,缓存,详细研究了秒杀系统的优化方向和各个方向的优化细节

2020-09-26

VML学习教程

详细的vml教程,适合刚入门的web开发者,适合作为表单和报表开发的技术

2013-09-06

Highcharts报表工作

功能强大的报表开发工具,可显示柱状图,饼图,线型图

2013-09-06

Oracle性能调优

本人精心整理的oracle调优笔记,包含很多调优技巧很调优工具

2015-05-06

Oracel SQL高级编程笔记

本人精心整理学习的笔记,对平时的工作帮助很大

2015-05-06

Java设计模式教程

详细的java设计模式教程,对java的编程模式详细说明

2015-05-06

PLSQL学习笔记

我平时学习精心整理的学习笔记,在工作中对自己帮助很大

2015-05-06

VMware创建安装CentOS6.5(配截图)

VMware创建安装CentOS6.5(配截图)

2015-05-06

Linux常用命令集合整理

常用的Liunx命令集合,我精心整理的,对平时的工作帮助很大

2015-05-06

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除