- 博客(1517)
- 资源 (21)
- 收藏
- 关注

原创 浏览器访问管理服务器超时导致请求重试问题分析
背景管理后台上有个批量退款的功能,每次操作退两百笔退款订单,大概会执行4分钟的时间。发现相同的参数和请求路径,每隔两分钟进行重试,总共重试了四次,不像是人为的原因。分析1、谷歌浏览器超过2分钟没有收到服务方的请求,就会进行断开连接。这时就猜测考虑是不是业务处理逻辑太久了,导致浏览器长时间没有接受到后台的返回结果,自动重复提交了记录。3、之前是在管理项目上出现的问题,利用arthas注入程序执行时睡眠10分钟的代码,复现了。重新发起请求原因HTTP/1.1 的一处规范 :If a
2022-04-11 18:35:30
8672
2

原创 周期性的显示调用full gc
目录背景排查cxf问题解决方案背景服务gc日志每十小时执行一次full gc,如下:2022-03-30T05:04:36.659+0800: 1188030.244: [Full GC (System.gc()) 2022-03-30T05:04:36.659+0800: 1188030.244: [CMS: 262271K->253610K(917504K), 0.6862360 secs] 298618K->253610K(1035520K), [Me
2022-03-30 22:24:37
958

原创 排查显示调用System.gc()方法的调用栈
背景项目里查看gc日志发现是由于显式调用了System.gc()导致的full gc, 需要排查该方法的调用栈。Arthas的下载与使用可以看之前写的文档:利用Arthas进行简单的故障注入_韩师学子--小倪的博客-CSDN博客执行第一步,由于java.lang.System是JDK自带的类,Arthas默认关闭了对JDK类的自带类的增强,需要通过options命令打开options unsafe true第二步,使用stack命令,观察谁调用了java.lang.Syst.
2022-03-29 23:55:40
803

原创 故障演练--使用 ChaosBlade 进行混沌实验
一、ChaosBlade 简介ChaosBlade 是阿里开源的混沌工程品牌,包含 chaosblade 工具和 chaosblade-box 平台等项目。ChaosBlade 按照混沌工程的思想,将故障抽象成了一个个实验,并按照科学实验的方法对其过程进行组织。chaosblade 工具支持了大量的故障场景和丰富的命令参数,能够很方便地对常见故障场景进行实验。二、部分 JVM 实验介绍相比于 CPU 使用率飙升等基础设施相关故障导致的系统不稳定,我们的关注点目前更加集中在:系统所依赖的两方或三方
2021-12-04 14:41:31
4798
3

原创 Jmeter压测
目录一、Jmeter基本使用二、请求报文的数据来源三、请求报文构造固定值取值方式动态值取值方式签名取值方式四、分布式压测Master配置Slave配置 五、Q&A一、Jmeter基本使用这里不做详细介绍,可参考:Jmeter官网(Apache JMeter - User's Manual: Getting Started)Jmeter 入门教程(https://www.jianshu.com/p/6bc152ca6126)使...
2021-12-04 12:15:06
951

原创 redisClient的soTimeout偶尔不生效分析
目录背景源码分析参考背景为了方便观察redis的调用情况,接入了redis通用访问组件。项目redis设置socketTimeout时间为200ms,配置最大重试次数为1次。发现项目在调用redis时,有一些单个set语句会达到1s以上的耗时,然后也能拿到执行命令的结果。而根据参数配置,即便再重试一次,也最多400ms就超时了。以下是11月25日api中的两个耗时日志:RedisClusterClientProxy.printRunCommandTimeoutLog:87 re
2021-11-28 12:49:18
1553

原创 基于Redis实现延时消息队列
基本实现相关接口import java.util.Optional;public interface IQueue<E> { boolean add(E item); Optional<E> get(); Optional<E> get(int timeout); long size();}抽象类import com.google.gson.Gson;import org.apache.co...
2021-11-06 15:48:23
1214

原创 Redis分布式锁实现
目录一、高效分布式锁二、Redis分布式锁的缺点三、使用Jedis set命令以及Lua脚本方式实现分布式锁四、使用Redisson+RLock实现分布式锁 锁互斥机制watch dog自动延期机制可重入加锁机制锁释放机制相关实现 优缺点五、参考一、高效分布式锁1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。2、防止死锁在分布式高并发的条件下,比如有个线程获得...
2021-11-06 12:21:35
1715

原创 Maven的 settings.xml 解析
settings.xml介绍 从settings.xml的文件名就可以看出,它是用来设置maven参数的配置文件。 并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在项目的局部配置。 settings.xml中包含类似本地仓储位置、修改远程仓储服务器、认证信息等配置。settings.xml文件一般存在于两个位置: (1)全局配置: ${M2_HOME}/conf/settings.xml; (2)用户配置: user.hom...
2021-10-01 12:15:01
838

原创 MySQL 5.7 虚拟列 (virtual columns)
Generated Column在MySQL 5.7中,支持两种Generated Column,即Virtual Generated Column和Stored Generated Column。前者只将Generated Column保存在数据字典中(表的元数据),并不会将这一列数据持久化到磁盘上;后者会将Generated Column持久化到磁盘上,而不是每次读取的时候计算所得。Stored类型的generated columns可以用作一个物化缓存,用于复杂的条件,这些条件在运行时计算成本
2021-09-05 17:57:08
2661

原创 Mysql的新特性--MRR
MRR的全称是Multi-Range Read Optimization,是优化器将随机IO转化为顺序IO以降低查询过程中IO开销的一种手段。MRR原理执行一个范围查询:mysql > explain select * from stu where age between 10 and 20;+----+-------------+-------+-------+------+---------+------+------+-------------------...
2021-05-31 00:27:07
1035

原创 debug mysql源码 --搭建环境
操作系统:windows10, 期间搭建时出现太多问题,很恶心。准备软件visual studio2015: 下载bison:下载,配置好环境变量,将安装的地址和bin路径配置到Path里去mysql5.7.25:下载,选择好版本,选中source codecmake: 下载配置windows SDK8.1visual studio 2015 安装部署后,记得配置好windows SDK8.1,不然cmake编译时会报错。不会配置的,可以选择新建一个c++项目,软件会自动提示是...
2021-03-21 13:52:33
367

原创 利用Arthas进行简单的故障注入
目录一、概念二、整体逻辑三、相关文档四、故障注入实践一、概念Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。二、整体逻辑Arthas的整体逻辑也是在 Java 的Instrumentation基础上来实现,所有在加载的类会通过Agent的加载, 通过addTransforme...
2021-03-17 19:13:22
2195

原创 Roaring64Bitmap实践
maven依赖<dependency> <groupId>org.roaringbitmap</groupId> <artifactId>RoaringBitmap</artifactId> <version>0.9.0</version></dependency>测试一:优化前后,读写文本期间,序列化与反序列化的耗时import o...
2021-01-24 11:10:01
4393
1

原创 MyBatis动态SQL(注解版)
@InsertProvider实现批量插入数据1.mySql 批量插入数据库语句格式:INSERT INTO[表名]([列名],[列名])VALUES([列值],[列值])),([列值],[列值])),([列值],[列值]));例如:INSERT INTOitems(name,city,price,number,picture)VALUES('耐克运动鞋','广州',500,1000,'003.jpg'),('耐克运动鞋2','广州2',500...
2020-12-10 20:08:38
7980
1

原创 Hikari 数据库连接池配置详解
Hikari 数据库连接池配置详解基本配置<!-- Hikari Datasource --> <bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource" destroy-method="shutdown"> <property name="driverClassName" value="${jdbc.dr...
2020-10-18 11:07:48
4354
1

原创 数据库连接池
数据库连接池目录一、常用的数据库连接池二、基本配置 三、关键配置四、性能配置五、各个连接池的属性说明 1)DBCP 属性说明表2)C3P0 属性说明表3) DRUID 属性说明表一、常用的数据库连接池1)DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。2)c3p0...
2020-10-07 10:57:04
917

原创 MongoTemplate的实战
MongoTemplate的实战一、Mavn依赖: <!--spring data jars--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> </depe.
2020-08-08 11:06:12
3520

原创 WechatPay-API-v3接口规则
WechatPay-API-v3接口规则1、官方文档https://wechatpay-api.gitbook.io/wechatpay-api-v3/2、下面是Java 接入过程:第一步: 阅读微信支付分给的接口规则 说明: https://wechatpay-api.gitbook.io/wechatpay-api-v3/第二步: 微信支付API v3要用第三方CA的证书 所以涉及到 API证书升级新接入商户请参考什么是API证书?如何获取API证书?。已经接入并使用微信..
2020-06-20 15:22:21
7708
2

原创 Java 8 stream练习
Java 8 stream练习Mapmap 方法用于映射每个元素到对应的结果,以下代码片段使用 map 输出了元素对应的平方数:List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);// 获取对应的平方数List<Integer> squaresList = numbers.stream(...
2020-04-12 21:44:07
488

原创 redis的应用场景
redis的应用场景目录1、充值订单超时队列2、缓存系统3、计数器4、消息队列系统5、Bitmap6、HyperLogLog7、list集合的使用8、hash的使用9、sunionstore1、充值订单超时队列创建充值订单时,将订单号chargeOrderId、账号信息id、超时开始时间timeou...
2020-03-03 21:02:49
692

原创 Redis缓存雪崩、穿透、击穿、降级、预热、更新和限流
Redis缓存雪崩、穿透、击穿、降级、预热、更新和限流目录关键词解释缓存雪崩缓存穿透缓存击穿缓存降级缓存预热缓存更新限流关键词解释缓存:将数据库的数据也在内存存入一份,使请求可以直接访问内存,无法再次访问数据库。降级:就是在高并发高负载情况下,选择动态的关闭一下不重要的服务,拒绝访问等,来为重要的服务节省资源,比如电商平台秒杀当天可关闭推荐等...
2020-01-21 15:45:36
1244

原创 Java性能调优七种武器
Java性能调优七种武器目录JDK命令行Eclipse Memory AnalyzerJMX - Jconsole, VisualVMBtraceFlight Recorder Java Mission ControlJProfiler火焰图线上服务有时候我们会碰到下面这些问题: OutOfMemoryError,...
2019-12-16 20:54:36
570

原创 海量数据处理(Set、BitMap、HyperLogLog、BloomFilter)
海量数据处理(Set、BitMap、HyperLogLog、BloomFilter)目录SetBitMap(由bitSet来实现的)HyperLogLogBlommFilter综上所述海量数据处理:基于海量数据上的存储、处理、操作。何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。那解决办法呢?针对...
2019-04-20 22:24:49
1763

原创 IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)
IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)转载:https://blog.csdn.net/kingshown_WZ/article/details/46423771概念:1. 概述 IP地址:人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址,通过IP地址就可以访问到每台主机。...
2018-09-19 09:34:01
50799
8
原创 AppAssember和maven-resources-plugin插件的使用
目标:resources, testResources指定resources插件读取和写入文件的字符编码,比如ASCII,UTF-8或UTF-16。默认情况下,Maven会从项目的src/main/resources目录下查找资源。如果你的资源不在此目录下,可以用<resources>标签指定,同时也支持多个目录。有的时候,资源文件中存在变量引用,可以使用<filtering>标签指定是否替换资源中的变量。变量的来源为pom文件中的<properties>标签中定义的变量。
2025-07-31 11:05:23
575
原创 海外主要支付方式梳理
对于支付来说,其实大多数支付都不能直接对接最终的支付收单方,而是通过其他的三分支付,或者其他的代理去实现我们的支付的,并且每个国家的政策不同,每个国家的支付渠道不同,支付方式也不同,今天梳理一些国家的主要支付方式。对于支付来说,其实大多数支付都不能直接对接最终的支付收单方,而是通过其他的三分支付,或者其他的代理去实现我们的支付的,并且每个国家的政策不同,每个国家的支付渠道不同,支付方式也不同,今天梳理一些国家的主要支付方式。
2025-07-27 12:33:59
277
转载 跨境支付入门~国际支付结算(收款篇)
本文系统介绍了跨境支付中的全球收款业务,重点分析了C2B场景下的电商出海和跨境消费需求。详细阐述了"本地收单+跨境结算"解决方案,包括目标国收款账户开通、跨境资金结算流程及BOP申报要求。以外卡收单为例说明跨境支付公司如何通过银联网络处理中国游客海外刷卡交易,并介绍了Vostro账户在减少中间环节、降低汇兑成本和优化流动性管理方面的优势。
2025-07-27 12:12:29
48
原创 稳定币与RAW协同发展,支付生态变革
是将实物资产的权益以数字通证(Token)形式在区块链上进行确权、存储、流转和交易的创新模式。这一技术突破性地解决了传统实物资产面临的多重痛点。将现实世界资产如基金,私募债,碳资产,贵金属,房地产转化为易于分割,快速流转的链上代币,支持724小时全球低成本交易。确权-区块链不可篡改,交易-724,流动性-分割全球流动,融资成本-全球流动资本资产权利拆分:将完整物权(如房产产权)或未来现金流(如光伏电站收益)拆分为标准化数字单元(如 1% 产权或 1 元收益权)。
2025-07-25 10:04:06
2224
转载 跨境支付入门~国际支付结算(风控篇)
核心防控AML(反洗钱)和CFT(反恐融资)风险,通过四阶KYC认证体系(证件核验到持续监控)和KYB企业审查(股权穿透到贸易背景验证)。更典型的案例是接入国际卡组织的过程:某跨境支付企业为获得VISA收单资质,销售捆绑采购其风控系统(Visa Advanced Authorization),年成本增加300万美元。CDD(客户尽职调查) & EDD(增强型尽职调查):字面表达体现触发的程度不同,通常在KYC与KYB触发风控后,由人工审核进行审查,通常有以下几种方式。重点拦截涉恐组织资金链。
2025-07-25 09:59:53
28
原创 高流量发布会,保障支付系统稳定运行感想
注意要考虑到渠道进行支付成功通知的场景,避免部分支付成功通知请求被限流,导致支付成功处理延迟,用户出现重复支付的场景;10、与上游服务沟通清楚,都涉及到哪些场景的调用,避免出现漏掉相关接口的评估,导致没提前进行准备,系统扛不住;7、渠道侧都有限流策略,需要提前跟渠道侧沟通好,要求渠道侧临时提高下他们接口的限流配置,支持更多的qps;4、进行功能降级,设置开关,非必要功能(涉及写数据表的),活动期间,可以暂时关闭,缓解数据库的压力;5、进行服务接口限流,服务需要进行自我保护,防止流量过大时,压垮服务;
2025-07-04 20:57:55
297
原创 Dify application type
目前有五种:(聊天助手、Agent、文本生成应用、Chatflow、工作流)。订餐助手:分解用户需求(如“订一家附近评分4.5分以上的川菜馆”),调用地图API筛选餐厅,完成预订。定位:基于大语言模型(LLM)的对话式交互助手,擅长处理多轮对话,支持记忆用户历史输入。定位:面向复杂对话流程设计的对话式工作流,支持动态编排和记忆功能。定位:具备任务分解、工具调用和推理能力的智能体,能处理复杂目标。定位:专注于生成结构化文本内容(如文章、邮件、代码)。提供自然的对话体验,可主动引导对话(如设置开场白)。
2025-06-17 19:28:52
327
原创 跨境支付了解
我们从英国旅游回国了,手头上还剩下了4000的英镑,如果我们将这4000直接存入到银行,那就需要在银行开一个现汇的账户,币种就是英镑。由于用户在境外,用户主要使用的是境外支付公司提供的支付服务或是境内支付公司提供的跨境支付服务,如:Paypal,支付宝。有了这个账户后,你到当地后,可以用这个账户里的外币直接进行支付,或是到当地取款,将现汇账户里的外币取出,就变成了现钞。对于第2种场景:商户在境外,用户在境内,用户自己用人民币进行交易,最后以外币结算至境外的商户,最常见于进口贸易,像我们经常使用的海外购。
2025-06-08 10:40:45
451
原创 dify应用探索
智能导购会根据用户意图分类并传递给相应商品导购Agent,返回商品信息。采用Multi-Agent架构,其中Router Agent负责对用户问题进行意图 分析,并路由到其它商品导购Agent,商品导购Agent负责向厥客收 集商品参数信息。自动化架构: 通过 Multi-Agent 系统协调多个子任务,实现数据采集、需求分析和推荐等功能的高效协作。主动式交互: 系统能够主动向顾客询问商品需求,例如规格、品牌偏好、预算等,提供更贴近顾客需求的推荐。如果分类识别为其他时,引导用户调整提问方式。
2025-06-02 17:30:14
442
原创 MCP调研
MCP(Model Context Protocol,模型上下文协议),是由 Anthropic 在 2024 年 11 月底推出的。
2025-06-02 17:23:20
863
原创 使用Cursor自动创建Dify工作流
1、项目文件2、代码编辑区3、AI 聊天面板关闭AI聊天面板后,ctrl + shirt + L键可以新建一个新的聊天面板。
2025-06-02 17:13:58
544
原创 groovy运行poi包处理xlsx文件报NoClassDefFoundError
背景:简单的在java上运行poi包处理xlsx文件,正常解析。使用groovy执行相关xlsx文件解析的程序时,报错。模式中最常见的部分。如果需要使用公共集之外的任何模式,则必须获取完整的OOXML Schemas jar,目前为。原因:OOXML只包含。
2025-04-15 20:09:57
158
原创 ubuntu20 安装python2
包可能位于 Universe 仓库中。如果你需要将 Python 2 设置为默认的 Python 解释器,可以使用。在较新的 Ubuntu 版本中(如 Ubuntu 20.04 及以上),命令时,它将指向 Python 2.7。: 假设你的 Python 3 的路径是。如果运行没有生效,可以手动替换添加。如果仍然无法安装,可以尝试安装。包可能已被移除,但你可以安装。
2025-03-05 19:16:25
482
原创 mac maven编译出现问题
进入 /Library/Internet Plug-Ins/ 目录,删除 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin。前两个环境配置在系统启动时候就会加载,针对所有用户生效,后面四个属于具体用户级别的配置。删除掉 JavaAppletPlugin.plugin 这个插件即可。重新执行 mvn -v runtime 正确。mvn -v 查看 runtime 环境。
2024-11-26 11:56:07
470
EZDML_2神器
2018-12-26
TXT全本小说下载工具V5.0绿色版
2021-04-28
尚硅谷SpringBoot视频教程(上)核心技术篇,(下)整合篇
2018-06-23
例年软件设计师考试真题解析(已经考过了)
2018-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人