- 博客(18)
- 收藏
- 关注
原创 Java 对接阿里云 OSS 私有读写(开箱即用)
阿里云 OSS 是一个海量、安全、低成本、高可靠的云端对象存储服务。支持任意形式的文件上传和下载,广泛用于网站托管、图片资源管理、日志存储、大数据分析等领域。默认情况下,OSS 的 Bucket 权限为私有(Private),即只有授权用户可以访问。本文重点介绍如何在 Java 应用中对接私有 Bucket,实现文件的安全上传与受控访问。ACL(Access Control List)是阿里云 OSS 中用于控制 Bucket 和 Object 访问权限的一种机制。类型描述private。
2025-06-05 16:15:54
1182
原创 HashMap 扩容机制深度解析(JDK 1.8)——从源码到性能优化
步骤内容Step 1创建新数组,容量变为原来的两倍(capacity << 1)Step 2遍历旧数组中的每个桶(bucket)Step 3将每个桶中的节点重新分配到新数组中Step 4返回新数组关键点内容扩容时机size > threshold 或链表转树时数组太小扩容大小容量翻倍(左移一位)节点迁移利用位运算快速定位新索引链表转树长度 ≥ 8 且容量 ≥ 64线程安全HashMap 不是线程安全,推荐使用 ConcurrentHashMap。
2025-06-05 14:42:58
908
原创 如何保证分布式项目的一致性?——全面解析分布式事务与一致性方案
一致性(Consistency)是指在一次操作完成后,所有节点看到的数据状态都是一致的。在单体应用中,我们可以通过本地事务(ACID)来保证数据一致性,但在分布式系统中,由于网络通信、节点故障等因素,实现一致性变得更加复杂。在分布式系统中,没有银弹,一致性保障方案的选择取决于你的业务需求、技术栈、团队能力等多个因素。场景推荐方案高并发交易系统TCC 或 Seata长流程业务Saga 模式日志类操作事件驱动 + 最终一致性内部系统2PC(慎用)快速开发验证Seata(AT 模式)📘。
2025-06-05 14:36:53
620
原创 【微信支付V3】商家转账回调 (上手即用 亲测有效 避踩坑)
如何正确处理“商家转账到零钱”功能的异步回调通知?尤其是在生产环境中,由于网络波动、签名验证失败、参数缺失等问题,常常导致回调通知无法正常接收或解析。本文将带你一步步梳理微信支付V3中“商家转账”功能的回调机制,并提供完整的回调处理逻辑代码片段(以Node.js为例),帮助你快速实现安全可靠的回调处理流程。✅ 本文适用于已有微信支付V3商户平台接入经验的开发者🧪 所有示例均已通过实际测试,可直接用于项目部署🔐 包含完整签名验证、数据解密、异步通知处理等核心流程。
2025-05-30 17:50:39
2088
原创 git clone别人代码 并清除贡献者 推送自己仓库
在软件开发过程中,有时会遇到需要更换远程Git仓库的情况。这可能是因为项目迁移、团队重组或是其他原因。本文将详细介绍如何从当前的Git仓库切换到一个新的仓库,并在此过程中创建一个全新的独立分支以防止影响现有贡献者的工作。
2024-11-28 17:09:59
290
原创 nicelock:Java 分布式锁的快速处理方案(亲测有效)
之前博客写过一个基于redis实现的接口防抖实现方式之一,但是感觉不能开箱即用还需要创建自定义注解和aop才能处理防重复提交和接口幂等。在分布式系统中,确保数据一致性是非常重要的。nicelock是一个基于 Redisson 实现的 Java 分布式锁库,它提供了一个简单且强大的注解方式来管理并发访问。与同类工具如lock4j相比,nicelock不仅解决了释放锁时可能出现的问题,还提供了更多的功能,例如自定义超时异常类型等。前提是基于Redisson实现的 jdk为1.8版本。
2024-11-28 15:41:29
1005
原创 java中对接口防重复调用方案(上手即用)
这段代码的主要功能是在使用注解的方法上实现防止重复提交的机制。通过使用缓存来存储正在处理的请求标记,若在有效时间内再次请求相同的操作,则会返回 503 错误,避免重复处理。此代码适用于需要保护幂等性或避免重复操作的场景,如支付、提交表单等。04 在controller对应的业务上添加注解key最好唯一,且修改跟删除较多的地方可以考虑使用05 前端回显因为这里设置了全局异常拦截,前端直接配置就可以获取到接口返回的异常信息。
2024-11-20 09:52:34
1781
原创 Linux安装RabbitMQ(一看就会)
MQ(Message Queue) : 翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为消息中间件通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
2024-11-19 16:48:00
6075
原创 JAVA 新特性之Lambda表达式使用
如果原Stream的元素个数大于N,将返回原Stream的后(原Stream长度-N)个元素所组成的新Stream;刚才在max方法中,我们找的是Stream中的最小值,在min中我们找的是Stream中的最大值,不管是最大值还是最小值起决定作用的是Comparator,它决定了元素比较大小的原则。传入limit的值为2,也就是说被截取后的Stream的最大长度为2,又由于原Stream中有5个元素,所以将截取原Stream中的前2个元素,生成一个新的Stream。//打印结果 max:5。
2024-11-19 16:44:37
631
原创 常见的Java算法
(1)概念:快速排序是指通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。(1)基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。(1)基本思想:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。在这一点,最后的元素应该会是最大的数。
2024-11-19 16:39:45
1227
原创 ElasticSearch快速使用(一看就会)
Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。 Elasticsearch 基于 Apache Lucene 构建,并于 2010 年由 Elasticsearch N.V. 首次发布(现在称为 Elastic)
2024-11-19 16:37:31
2124
原创 Docker简介
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
2024-11-19 16:36:24
1721
原创 ngrok 强大的内网穿透工具
如果不使用内网穿透,只能本机访问。用到了内网穿透,就会给一个公网的ip代替本地ip,这样别人就可以访问到你的本地项目啦
2024-11-19 16:35:12
1391
原创 React整合Ant Design快速使用
antd是AntDesign的简称,它是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
2024-11-19 16:32:15
881
原创 git设置多用户配置
作为一名出色的开发工程师,目前互联网代码托管平台众多同时有些平台已不支持账号和密码的直接gitbash操作。.ssh/目录(C:\Users\自己的用户名\.ssh)下,右键Git Bash Here,打开git-bash窗口。--**用户名输入 自己gitlab的用户名 密码输入这个生成的token就可以进行拉取和提交代码了**Host:可以看作是一个你要识别的模式,对识别的模式,配置对应的主机名和ssh文件。这个错误我是出现在输入密码的时候,我输入的密码是我的登录密码,它提示了我这个错误信息。
2024-11-19 16:16:18
1149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人