- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 编程语言发展历程
回顾编程语言的发展历程,从早期的机器语言和汇编语言,到高级语言的兴起,再到结构化编程、面向对象编程以及现代编程语言的多元化发展,每一个阶段都见证了技术的进步和创新。不同的编程语言在各自的时代背景下解决了特定的问题,推动了计算机科学和技术的发展。展望未来,编程语言将继续朝着更加简洁、高效、安全和智能化的方向发展。随着人工智能、大数据、区块链等新兴技术的不断涌现,编程语言也将不断演进,以满足这些领域的需求。例如,未来的编程语言可能会更加注重自然语言交互,使编程变得更加容易和直观;
2025-02-08 15:45:24
788
原创 各系统持久化实现浅析
RocketMQ-持久化同步刷盘1.生产者发送MQ到【Broker】2.【Broker】写入内存,同步模式的设置,会触发直接刷盘操作。物理落盘。3.如果【Broker】有主备,那么备用【Broker】也进行刷盘4.都刷盘成功后,返回生产者ACK异步刷盘1.生产者发送MQ到【Broker】2.【Broker】写入内存,返回生产者ACK3.定时模式和实时模式(默认定时刷盘模式)实时模式:当有数据写入的时候,便会刷新数据,并且每次最多刷新4页(16kb)的数据(调用线程,同步阻塞,等待刷盘结
2024-11-27 17:52:05
443
原创 问题-支付交易-缓存击穿故障
支付接口做压测,微信支付场景。用一个商户跑支付交易,支付流程主要包括:订单防重、商户校验、智能路由、额度等其他逻辑校验、订单入库、发送微信、更新订单。商户校验信息,是以商户维度,缓存在Redis中,30分钟有效期。压测并发提到3000时,刚好遇上其过期。流量直接打到数据库上了,数据库连接资源瞬间耗尽。
2024-11-24 21:29:05
328
原创 后台类交易---统一接口设计的一些思考
后台类交易---统一接口设计的一些思考业务背景原代码设计问题在一次需求开发中,需要给10多个接口添加一个公共字段。并在交易入口处添加统一的校验逻辑。我审视了下现有的接口设计,突然感觉无从下手,也不是没法改,只是在现在的设计上改起来会很丑。以前单个接口加字段时,不觉得有啥问题,现在突然觉得原来设计,扩展性还是有点欠缺。业务背景 收单支付业务,提供支付【/order/pay】,订单查询【/order/orderQuery】,退款【/order/refund】,退款查询【/order/refundQu
2022-03-17 17:19:26
973
原创 问题-微服务调用-feign.FeignException$BadRequest: status 400 xxxx
问题-微服务调用-feign.FeignException$BadRequest: status 400 xxxx1. 问题概述A服务调用B服务某个接口,出现异常【feign.FeignException$BadRequest: status 400 reading CashierAuthBindingApi#pocketShowList(String)】。开始以为是被调用方流程有啥问题,然后查询B服务相关日志,结果发现没有日志相关记录。后面单独测试接口发现问题,确认是入参没有值导致的异常。被调用方法
2021-10-19 08:27:24
6874
原创 Mock相关
Mock相关Mock-对象属性赋值对象代码:public class WebAgreeService { @Resource private SecurityProperties securityProperties; @Value("${agree.new.sign:true}") private boolean newSign;}Mock处理:@Beforepublic void init() { MockitoAnnotations.ini
2021-08-26 10:42:58
544
原创 收单-批量支付-批量支付文件规则设计
收单-批量支付-批量文件规则设计1. 文件名2. 文件大小3. 文件编码4. 文件内容格式4.1 基于分隔符4.2 基于固定位数4.2 基于特殊文件格式1. 文件名建议跟批量支付的批次流水保持一致,考虑防重和文件更新的问题。批次流水也需要有对应的规则,比如固定24位,14位日期 + 10位序列号,纯数据+字母等等。2. 文件大小明确文件大小,防止恶意大文件上传。文件大小可以根据,文件内订单明细数量的上限,例如规定明细不超过5000条。测试时按照5000条,所有字段都达到规定的最大长度,生成一个文件,
2021-07-13 14:22:05
587
原创 收单-基于文件方式的批量交易处理思路
UDMP-b3fe91b03c1eb05a186904007ba89e7d9ae6548523-a36218c7-20210514102151-00000001常用.7z
2021-07-13 13:39:26
571
原创 问题之PreparedStatement executeBatch() 更新仅部分有效
问题之PreparedStatement executeBatch() 更新仅部分有效问题背景某业务场景下,需要批量对订单信息进行更新,分成功和失败,更新不同的字段。涉及两张表,订单表和订单扩展表,一共四条不同的SQL。 一开始想的是,PreparedStatement也支持不同SQL的批量处理,直接遍历orderList集合,将所有要更新的sql都通过addbatch()添加进行,然后每100条执行一次。问题代码成功运行,没报错,也打印出了执行SQL,数量和数据都对上了。但是查看数据库,真正更新了
2021-04-28 13:13:14
1039
原创 收单系统迁移
收单系统迁移分享1. 迁移目标2. 迁移分析2.1 评估迁移规模2.2 信息收集2.3 接口分析2.4 数据库分析3. 功能开发3.1 旧系统接口适配3.2 配套功能开发4. 正式迁移4.1 生产环境自测4.2 迁移客户实测1. 迁移目标 将旧系统客户无感迁移到新系统中。要实现无感,那么新系统需要完全兼容旧系统的相关接口功能。接口请求的URL不变,请求的字段不变,响应结果与处理的逻辑要相匹配 收单商户按批次迁移2. 迁移分析迁移前要充分了解旧系统的相关情况2.1 评估迁移规模通过了解需要
2021-01-20 17:58:50
213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人