自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(242)
  • 资源 (4)
  • 收藏
  • 关注

原创 MySQL rewriteBatchedStatements参数对批量性能的提升与源码分析,驱动BUG分析

使用MySQL 8.0.30驱动时,rewriteBatchedStatements=true参数对批量插入性能影响显著。未开启时,驱动会退化为串行执行,性能与JPA saveAll相近;开启后,驱动可将多条INSERT合并为单条语句,性能提升10倍。但8.0.30存在bug:当字段名含“value”时,解析错误导致重写失败,仍退化为串行。升级至8.0.33后修复该问题,性能恢复。建议在JDBC URL中启用该参数,并避免字段名包含敏感关键字。

2026-09-14 14:47:59 67

原创 langchain tools调用

本文探讨了大模型如何通过工具调用扩展能力。文章指出大模型本质上是基于语义理解和训练知识回答问题,当涉及计算或外部API调用时,其能力有限。通过引入Agent机制,可以让大模型识别工具、发起调用并整合结果,形成"提示词→选择工具→Agent执行→结果整合"的工作流程。作者展示了使用LangChain框架实现日期查询工具的示例代码,比较了Qwen和Gemma模型在工具调用上的表现差异。最后指出这种模式可以扩展为工作流和循环逻辑,使AI能自动执行复杂任务,但需注意优化步骤以减少token消耗。

2026-08-04 14:50:07 166

原创 langchain简单对话demo

本文介绍了使用Python和LangChain框架开发对话AI的实践过程。文章详细展示了三种对话模板的实现:1)基础字符串模板,演示链式调用和调试设置;2)聊天模板,支持上下文记忆;3)示例模板,通过FewShotPromptTemplate提供示例提高准确性。作者发现模型规模对效果影响显著,9B模型表现明显优于4B模型,但需要更高硬件配置。文章指出AI应用本质是通过API交互实现,核心是提示词工程、上下文管理和工具调用链,这些技术可以组合构建复杂的AI应用工作流。

2026-07-18 16:46:07 264

原创 python3t pip3安装langchain失败心得

文章摘要:作者在安装LangChain时遇到问题,发现自由线程版Python(python3t)与orjson不兼容。通过详细日志分析,定位到orjson不支持自由线程版本。解决方法是切换回常规Python版本后安装成功。文章分享了排查安装问题的经验:1)使用--verbose参数获取详细日志;2)识别关键错误信息(如orjson不支持自由线程);3)检查Python版本特性。最终成功安装LangChain及相关组件,并指出可通过python3 -VV命令查看线程支持情况。

2026-07-14 21:49:17 336

原创 BM25 排序算法实现词检索

本文介绍了在知识检索增强生成(RAG)项目中结合词检索与语义检索的方法。作者通过BM25算法实现词检索,发现大小写不匹配会导致检索失败,而修改查询词大小写后能成功获取结果。实验表明,语义检索(向量检索)更适合自然语言处理场景,能处理大小写、空格等问题,而词检索在精确匹配场景更有效。两种检索方式可以互补使用:向量检索适用于多模态和语义相关场景,词检索适合精确匹配需求。最后通过Gemma-4模型验证了混合检索方案的有效性,展示了如何根据场景需求平衡精确度和语义检索能力。

2026-07-12 19:28:49 199

原创 chromadb emmbedding 向量检索

其实向量检索以前就有了,只不过现在结合embedding模型做向量化,再结合LLM做AI处理。本质上LLM训练后的数据也是embedding(词向量),先tokenizer分词,然后编码,通过自注意力机制,softmax等算法,生产式AI,其实检索也支持多维度检索,比如词检索和向量检索同时使用,当然chromadb本身也支持bm25 embedding。

2026-07-08 18:18:07 288

原创 使用AI能力写python脚本统计分析

摘要:本文介绍了使用Python的pandas库自动化处理Excel报表的方法。作者通过AI辅助编写代码,实现了Excel数据筛选、分组统计和表格合并功能,相比手动操作Excel大幅提升效率。文章演示了如何读取Excel、进行条件查询、日期处理和分组统计,以及多表格合并操作。作者指出Python在数据处理上的优势在于丰富的库和简洁的代码量,特别适合通过AI快速实现自动化报表需求,虽然性能不如Java但更适用于此类非高并发场景。

2026-06-29 18:46:40 226

原创 JDK8升级JDK17使用CompletableFuture在线程中classloader的变化

本文探讨了从JDK8升级到JDK17时遇到的CompletableFuture线程ClassLoader差异问题。作者发现JDK9引入的模块化设计改变了ForkJoinPool的ClassLoader加载机制,且在2核CPU环境下ClassLoader表现不同。通过源码分析指出,ForkJoinPool的并行度设置与CPU核心数相关,当核心数为2时使用自定义线程而非ForkJoinPool。建议在JDK升级时注意测试环境资源配置,必要时为ForkJoinPool设置独立线程池以避免ClassLoader问题

2026-05-22 21:23:32 392

原创 SLB收到HTTP请求时,URL域名是A,但是请求Host为B

文章摘要:作者在Spring项目中遇到通过域名访问时Feign调用出现404的问题,发现根源在于SLB Nginx的域名路由机制。Nginx转发时使用HTTP头中的Host字段进行路由匹配,而非默认模式。通过实验发现,当使用HttpURLConnection时,Host等受限Header会被丢弃,而Apache HttpClient等工具则会保留,导致Nginx路由失败。解决方案包括:1) 在Nginx配置中添加Host域名规则;2) 在Feign调用时修改或删除Host Header。文章深入分析了Fei

2026-05-01 00:29:22 426

原创 使用AI能力编译ARM版本的截图软件

其实笔者试图使用AI写一个截图工具,但是AI还是不是很行,写的乱七八糟,当然有可能笔者没写过桌面程序,所以干脆使用开源项目编译。但是即使编译也遇到了很多问题,如果使用AI解决估计大部分没有程序经验的解决不了,因为实际的问题和代码不一定有直接的关联,所以AI辅助解决问题,笔者成功的使用开源项目编译了ARM版本的mac截图app。但是还是有warn未解决,不影响使用就不解决了。

2026-04-09 17:54:02 420

原创 使用AI的能力编译ARM版本RDM

本文记录了在M芯片Mac上编译开源RDM显示管理工具的过程。作者在使用4K显示器时发现该工具仅支持x86架构,于是尝试自行编译ARM版本。通过分析源码发现头文件引用缺失和变量名不一致的问题,在AI帮助下修改了utils.h文件,添加了必要的CoreGraphics框架引用。成功编译后测试运行正常,但发现项目中仍存在多个macOS废弃API的警告。文章展示了借助AI工具完成小型开源项目移植的可行性,同时也指出随着系统更新,使用私有API可能导致兼容性问题。最终生成的ARM原生应用可供M芯片Mac用户使用。

2026-03-18 17:01:06 306

原创 MySQL单表分页优化

MySQL分页查询优化方案分析:针对不同数据量和场景,文章对比了多种分页方案性能。默认limit在10万以下数据表现良好;覆盖索引+子查询适合大数据量跳页场景,能减少40%耗时;游标模式性能最优但不支持跳页,适合移动端刷新;范围查找性能极佳但要求数据连续。建议根据实际需求选择:小数据量用limit,大数据跳页用子查询,移动端用游标模式。核心优化思路是缩小主键ID范围,减少回表查询成本。

2026-03-16 18:06:46 411

原创 spring ai支持tools mcp服务调用

本文介绍了基于Spring AI框架实现MCP(模型控制协议)服务的实践过程。作者以DDR4内存价格分析为案例,展示了如何构建一个支持工具调用的智能代理系统。文章详细说明了服务端和客户端的配置实现,包括模型选择(Gemma3和Qwen3.5)、MCP工具注解的使用以及YAML配置。在遇到Gemma3不支持工具调用的问题后,作者改用Qwen3.5模型,并优化了系统架构,将实时数据获取与LLM推理分离以提升性能。最后指出MCP服务的核心价值在于扩展LLM的实时数据处理能力,为构建智能代理系统提供基础支持。

2026-03-09 18:18:57 535

原创 spring ai运行本地ollama大模型聊天

本文介绍了使用SpringAI 1.1.2版本与Ollama结合实现AI聊天功能的实践。通过配置ChatClient构建多轮对话系统,分析了HTTP交互过程和消息传递机制。实验表明,AI在逻辑分析方面表现良好,但存在模型知识更新滞后、结果不确定性等问题。文章还探讨了多轮对话实现方式、token消耗优化以及外部工具集成的必要性,指出当前AI仍需结合MCP服务、知识库等外部能力才能满足复杂需求,整体上呈现API编程的特征。

2026-02-10 17:33:03 776

原创 python ollama chat示例demo

文章摘要:作者在开发大模型周边支持项目时,尝试使用Python自由线程模式运行ollama库时遇到问题。发现自由线程版本与普通Python版本存在差异,导致无法识别已安装的ollama包。解决方案是通过指定解释器安装依赖(python -m pip install ollama)。该问题揭示了自由线程版本实际上被视为"不同"的Python版本,需要特别注意路径和依赖管理。作者建议开发者在使用自由线程模式时,要明确指定解释器来安装和管理依赖包。

2026-02-05 17:22:33 484

原创 译:MySQL counting-rows、function_count

本文探讨了MySQL中COUNT()、COUNT(1)和COUNT(column)的区别及性能优化。在InnoDB引擎下,COUNT()和COUNT(1)性能相当,都优于COUNT(column),因为InnoDB不维护精确行数。MyISAM引擎则直接存储行数,COUNT()能快速返回。文档还介绍了COUNT与GROUP BY的组合使用,以及在不同条件下的查询优化策略。

2026-02-03 17:30:03 722

原创 macOS安装python并在PyCharm下启用自由线程

Python 3.14自由线程实践指南 摘要:本文记录了在Python 3.14中启用自由线程功能的实践过程。作者发现官方二进制包默认仍使用GIL锁,经查阅文档发现自由线程版本被单独命名为python3.14t。解决方法包括:1)使用特定命令安装自由线程版本;2)在PyCharm中配置使用新解释器;3)源码编译时通过--disable-gil参数关闭GIL。官方采用新旧版本并存策略,而非直接替换原有实现。最终成功实现多核CPU的充分利用,证明了自由线程的可行性。

2026-01-30 21:40:02 771

原创 使用fyne做一个桌面ipv4网段计算程序

本文介绍了一个用Go语言开发的跨平台桌面工具,用于简化内网环境下IPv4网段计算工作。作者使用Fyne框架开发了图形界面,包含IP地址和子网掩码输入框,通过字符串处理实现网段计算功能。工具采用表单布局简化样式调整,虽未使用位运算但能满足需求。文章指出该工具适合单机使用,避免了服务端部署的维护成本,但跨平台编译需注意系统UI依赖问题。最后作者建议根据实际使用环境选择编译方式,为需要频繁计算网段的运维人员提供了便捷的本地解决方案。

2026-01-28 14:24:27 434

原创 MySQL explain format的差异

摘要:MySQL 9.5.0版本对EXPLAIN命令进行了优化,新增了TREE和JSON两种输出模式,默认采用TREE模式。TREE模式简洁直观,显示索引命中情况和执行成本评估;JSON模式提供更详细的信息但略显冗长。传统表格模式虽完整但不够直观。通过EXPLAIN ANALYZE可获取实际执行数据,包括预估成本、返回行数和执行时间等关键指标。新版EXPLAIN最大的改进是加入了成本评估功能,能清晰展示索引优化效果(如2万条数据下索引命中成本0.35vs全表扫描1960)。作者推荐使用TREE模式进行SQL

2026-01-20 18:44:32 677

原创 Java应用Native内存泄漏分析

本文探讨了Java应用中JNI调用导致的内存泄漏问题。通过故意设计一个不回收指针对象的C++程序,演示了JNI调用中Native内存泄漏的场景。文章介绍了使用NativeMemoryTracking(NMT)工具监控Native内存的方法,但指出NMT无法跟踪C/C++直接分配的内存。作者建议采用排除法,通过比较容器RSS与NMT总内存的差值来定位问题,并介绍了pmap等系统工具辅助排查。最后强调,虽然Java堆内存有上限,但Native内存泄漏会持续消耗系统内存,导致性能下降而不触发OOM。

2026-01-16 18:56:25 652

原创 spring-data-jpa saveall慢的原因

摘要:本文分析了Spring Data JPA中saveAll方法性能问题的根源。通过实验发现,当使用自定义ID而非JPA自动生成时,saveAll会执行大量查询操作,导致批量插入性能低下。关键因素包括:1)ID字段索引设计不合理;2)手动设置ID值触发merge操作而非直接插入。调整索引结构并改用JPA自动生成ID后,saveAll性能可超越JDBC Template的batchUpdate。建议在使用JPA批量操作时,确保ID由框架自动生成并优化索引设计。

2026-01-13 09:34:10 664

原创 关于hash取模算法的优化

摘要:本文探讨了分库分表和顺序消息场景中常用的Hash取模算法优化方案。针对高并发业务场景,分析了传统取模运算的性能瓶颈,提出参考JDK HashMap的Hash槽位计算方法,利用位运算替代取模运算。通过将模数设为2的整数倍,采用(n-1)&hash的位运算方式,显著提升计算效率。文章详细阐述了该优化方案的数学原理,包括二进制进位机制和位运算取模的等价性证明,为高并发场景下的分片计算提供了性能优化思路。

2026-01-07 15:45:51 555

原创 容器下的WSS和RSS监控指标的心得

容器下使用namespace和cgroup技术,其中cgroup限制资源,有v1和v2版本,v2的层级管理更简单,从技术原理看,容器的隔离很弱,在容器中可以直接通过free top拿到宿主机的内存信息,而容器自己的使用内存是通过cgroup的memory特性监控的,可以直接获取到,一般是看WSS和RSS指标。

2026-01-06 19:28:05 1370

原创 commons-beanutils在lombok的Access注解下属性复制失效

本文分析了使用Commons-beanutils和Lombok时出现的属性复制失效问题。当Lombok的@Accessors(chain=true)注解生成的非void返回值set方法时,Commons-beanutils无法识别这些方法,导致复制失败。而Spring的BeanUtils能正确处理这种情况,但存在浅拷贝问题。文章建议使用MapStruct进行属性复制,虽然需要编写更多代码但能保证性能和稳定性。最终结论是:框架封装方法虽提高开发效率,但在性能和兼容性上存在妥协,手写set/get方法才是最稳定

2026-01-03 00:19:22 761

原创 mybatis-plus SQL 注入漏洞导致版本升级引发的问题

摘要:本文记录了MyBatis-Plus升级至3.5.7版本时遇到的问题及解决方案。主要存在两个问题:一是与MyBatis 3.5.7存在兼容性问题,需升级MyBatis至3.5.16;二是与Spring Data JPA存在jsqlparser依赖冲突。此外还发现QueryWrapper的IN查询处理逻辑在3.4+版本对空集合的处理方式发生变化,导致SQL语法错误。建议在项目中避免同时使用MyBatis-Plus和Spring Data JPA,并减少使用动态SQL拼接,改用代码动态拼接方式以降低风险。

2025-11-03 22:45:22 1221

原创 http trailer 与 http2

本文探讨了gRPC通信中HTTP Trailer的实现机制。通过Go和Java示例代码,作者发现HTTP/1.1下使用chunked传输时可以在body后附加Trailer头信息,但在HTTP/2环境下因协议限制无法直接使用chunked传输。实验表明,虽然HTTP Trailer设计允许在body传输后附加元数据,但在HTTP/2中实现与gRPC相同的Trailer机制仍存在技术障碍。文章揭示了HTTP Trailer这一较少使用的协议特性,并为理解gRPC通信机制提供了实践参考。

2025-10-24 23:11:17 693

原创 Jsch连接openSSH高版本出现Algorithm negotiation fail

摘要:OpenSSH升级后,Java SFTP客户端因算法协商失败报错"Algorithm negotiation fail"。官方JSch库已停止维护,最新版本0.1.55虽可使用但存在安全隐患。测试发现OpenSSH 8+移除了旧算法导致兼容性问题。解决方案是切换到社区维护版jsch(0.2.15+),该版本兼容性好且支持新算法。建议逐步迁移至社区版,而非通过修改SSH配置添加已移除的算法,以兼顾安全性和兼容性。SSH算法的演进与HTTPS类似,需要客户端和服务端保持算法库同步更新。

2025-09-06 14:49:14 1126

原创 3DES加解密的算法Java Python Golang

实际上仅仅是对称加密,实际上并不安全,不仅面临碰撞攻击,还面临着秘钥保存的问题,根据HTTPS的TLS密码设计,应该动态生成对称加密密钥,使用非对称加密算法交换密钥,根据会话动态变化。但是没有绝对的安全,实际上是加密和性能的取舍问题。非对称加密非常消耗计算性能,但是安全等级很高,对称加密对性能消耗较低,但是安全等级较低。以TLSv1.2为例,先通过非对称加密(证书)交换对称加密的秘钥,加密回话报文。

2025-08-31 20:52:17 1001

原创 macOS 15.6 ARM golang debug 问题

macOS15.4及以上版本存在CommandLineTools工具链的严重bug,导致Go语言调试功能异常,所有断点都会被重定向到系统底层代码。该问题最早出现在macOS15.4,至今未修复。解决方案是手动下载安装CommandLineTools16.2版本,并禁止自动更新。虽然苹果硬件质量优秀,但软件开发工具链问题频发,如该调试bug和Chrome本地网络问题,给开发者带来诸多困扰。文章提供了具体的解决步骤和JetBrains官方问题追踪链接。

2025-08-30 19:25:13 839

原创 Maven 编译打包一个比较有趣的问题

Java项目中出现包名错误但能正常编译的现象,根源在于编译机制不依赖目录结构,而是基于文件中的package定义。虽然IDEA会报错,但javac编译器会根据源码中的package声明生成正确的class文件路径。这表明class文件的定位本质上是依赖字节码中的全限定名,而非源文件存放目录。这一特性也解释了为何其他JVM语言(如Kotlin、Groovy)生成的class文件同样有效。

2025-08-28 21:55:35 420

原创 linux中已经启用的命令和替代命令

摘要:本文介绍了Linux系统中常用命令的更新替代情况,如ifconfig被ip命令取代、netstat被ss取代等。重点探讨了sftp文件传输的配置与使用,包括创建sftp用户、设置文件目录权限、配置sshd_config文件等操作,并详细说明了如何通过scp和sftp实现带宽限速(以Kbit/s为单位)。作者指出虽然新命令功能相似,但老用户需要适应新语法。文中还分享了在Ubuntu服务器上搭建sftp服务的完整流程,强调限速功能在共享带宽环境中的重要性,可避免大文件传输占用全部带宽影响其他业务。

2025-08-17 16:46:23 974

原创 springboot 2.4跨域变化和swagger结合的问题

摘要: 本文分析了SpringBoot 2.4-2.7版本升级后出现的跨域配置问题。当allowCredentials=true时,使用通配符""会导致IllegalArgumentException异常。问题根源是Spring 5.3修改了校验逻辑,该版本被SpringBoot 2.4引入。解决方案有两种:1) 不使用通配符"";2) 改用allowedOriginPatterns配置。作者发现自测时未出现该问题是因为Swagger的跨域配置先加载,掩盖了错误。

2025-08-09 17:23:46 768

原创 项目中MySQL遇到的索引失效的问题

摘要:本文总结了MySQL使用中常见的索引失效问题及其解决方案。主要原因包括数据隐式转换(如数字与字符串类型不匹配)、统计信息更新不及时(在大批量数据变更后)等。这些问题在小数据量时不易察觉,但随着数据增长会导致全表扫描、查询超时等严重性能问题。建议:1) 尽量使用int而非varchar作为索引字段;2) 在大批量数据操作后执行ANALYZE TABLE更新统计信息;3) 建立监控机制及时发现全表扫描问题。这些措施能有效预防生产环境中的数据库性能问题。

2025-08-06 21:05:14 1087

原创 macOS 15.4.1 Chrome不能访问本地网络

在使用macOS 15系统的Mac Mini M4时,遇到了Chrome浏览器无法访问本地网络的问题,包括路由器和局域网内的其他设备。尽管Safari浏览器可以正常访问,但Chrome的问题持续存在。经过调查,发现这是macOS 15.2版本的一个系统bug。尝试了多种解决方法,包括重启和修改网络设置,但均未奏效。最终,通过关闭系统完整性保护(SIP),删除特定的网络配置文件,并在恢复模式下重新启用SIP,才暂时解决了问题。这一过程不仅繁琐,而且反映了macOS 15系统在更新迭代中存在的稳定性和兼容性问题

2025-05-10 10:27:19 2917 1

原创 组装一台intel n95纯Linux Server服务器

时代变化很快,以前macmini2018是intel cpu,而且可以自己安装内存,现在已经arm cpu,内存已经是黄金内存了,还得益于炒ai概念,否则8G永流传,不过intel 12代性能提升还可以,所以干脆组装了专门的服务器,测试小主机满载也就23w左右,平时10w左右,还是x86的,在docker环境下很友好,毕竟很多镜像还是基于x86基础镜像做的,如果ARM自己编译也很麻烦。

2025-04-20 09:56:24 1655

原创 nginx自编译重现gzip和chunked的现象

其实gzip并不是最近才有的,以前我们经常压缩html,节省前端资源的传输带宽,只不过最近发现一些老旧项目对chunked支持不友好,导致nginx 1K以上就chunked导致请求报错。然后发现SpringBoot默认就chunked😁。nginx编译中实际上网上很多内容是复制的,笔者自己实践发现有些参数实际上不应该加上,理解也是跟我们认知有一定的理解偏差,实践发现without 状态要为disable,表示默认已经支持了,不需要加参数, with的模块需要编译加上参数,状态为enable。

2025-04-15 22:02:14 940

原创 K8S下nodelocaldns crash问题导致域名请求响应缓慢

实际上这个问题并不是应用的问题,是平台搭建的时候就有问题,但是仅仅是nodelocaldns并不影响最终的结果,毕竟coredns还是正常的,所以仅仅是超时,对于业务研发人员,K8S里面的逻辑是不可见的,所以问题很难解决,最终需要应用分析,抓包和基础设施层共同配合才能解决问题。

2025-03-15 19:43:38 1365

原创 M4 Mac mini运行DeepSeek-R1模型

仅仅是分享体验感受,实际上体验本地的AI模型的门槛是很低的,一般的Intel 核显就行,也需要一定的显存,不过不是特别消耗,如果实在不足那么也可以降低模型的大小,当然蒸馏模型越小失真就越严重,物理定律是不能违背的。另外也可以配置一个UI界面,如果是生产环境就建议部署docker应用,自己本地体验实际上用免费的桌面软件就好了。

2025-03-01 13:31:13 5890

原创 MySQL数据库连接池泄露导致MySQL Server超时关闭连接

我们在写代码时,尽量还是使用框架封装的逻辑,比如连接池,比如Spring声明式事务,可以避免编程式事务在写代码时的逻辑漏洞,因为在没触发的时候很难出现,测试很多时候不充分。实际上一起写jdbc的时候还很少出现这个问题,因为那个时候会非常注意连接的回收,事务的提交逻辑,但是Spring自动管理后,这个就很少注意了,因为注解声明式事务太方便了,只有特殊时候才会自己管理事务。

2025-02-24 23:37:04 1178

原创 kafka 3.5.0 raft协议安装

kafka从3.0.0开始推出了raft模式的元数据中心,实际上类似zk,kafka自己命名kraft。使用这种方式搭建kafka集群将不再需要zk,同理,kafka的集群的每个节点可以同时是broker和controller(以前zk充当),也可以是单独的broker,controller(负载不重,不建议单独controller,跟zk没区别),官方说明需要jdk11及以上,实测jdk8可以运行,但是生成建议严格按照官方标定的jdk执行,jdk是向下兼容的,但是不确定是否会涉及新api或新特性的使用。

2025-02-08 17:07:11 1379

使用AI的能力编译ARM版本RDM

RDM ARM程序

2026-03-18

使用AI的能力编译ARM版本RDM

RDM ARM程序

2026-03-18

桌面ipv4网段计算程序

桌面ipv4网段计算程序

2026-01-28

lldb工具包。macos x64

lldb工具包。macos x64

2022-10-08

空空如也

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

TA关注的人

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