订单系统就该这么设计(万能通用),稳的一批!
这篇文章介绍了订单系统的设计。文章首先概述了订单业务的重要性,然后详细介绍了订单体系、流程管理、技术方案和数据方案等方面的内容。文章强调了在设计订单系统时需要进行全面的考虑,以避免中后期的重构。文章还详细分析了订单业务的三个核心参与方:用户、商户和平台,并从不同的角度对订单流程进行了分段策略的分析。最后,文章总结了订单系统的边界和上下游业务的衔接。
任务调度之Power Job和Snail Job的选择
这篇文章讨论了任务调度工具Power Job和Snail Job的选择。作者指出,这两种工具都是优秀的解决方案,但选择时应考虑业务需求、系统架构和技术栈。Power Job是一个全面、灵活的开源框架,适合企业级应用。Snail Job则由阿里巴巴开源,支持多种编程语言,适用于复杂多变的业务场景。文章比较了两者的特点,建议根据实际需求来选择最适合的工具。
Java
未读
踩坑-SpringBoot中读取HttpServletRequest流陷入死循环
这篇文章介绍了一个在SpringBoot项目中读取HttpServletRequest流的方法遇到的问题。作者在基于Jeepay开源支付系统项目二次开发的过程中,发现使用该方法会导致死循环。经过长时间的测试后,作者确认了该方法在SpringBoot项目中存在问题,并记录了这个坑。文章还提到了SpringMVC中HttpServletRequest读取流的方法,在SpringBoot项目中调用会导致死循环的情况,并建议在SpringBoot项目中使用缓冲流(BufferedReader)进行读取。
Java
未读
Java/JDK 21正式发布!15个特性一览
这篇文章介绍了Java/JDK 21的发布,包括安装包下载、新特性说明等。其中,JDK 21的新特性包括序列集合、分代ZGC、记录模式、switch模式匹配、虚拟线程等。此外,还提到了孵化阶段的Vector API。JDK 21将是一个长期支持版,每两年发布一次。如果是商业用途,需要注意相关的授权。
MySQL按自然年、月、日、季度、周查询数据
这篇文章介绍了在MySQL中如何根据不同的时间单位来查询数据,包括按自然年、自然月、自然日、季度和周。MySQL提供了不同的函数和方法来实现这些查询,可以根据具体的需求选择合适的方法来查询所需的数据。
你真的会写for循环吗?来看看这些常见的for循环优化方式
这篇文章介绍了常见的for循环优化方式。包括普通写法、提取数组长度、倒序写法、Iterator遍历、jdk1.5后的写法、循环嵌套外小内大原则、循环嵌套提取不需要循环的逻辑、异常处理写在循环外等。文章还提到了初始化集合list以及不同优化方式的优缺点和适用场景。
SpringBoot+Mybatis 如何实现流式查询,你知道吗?
这篇文章介绍了如何在SpringBoot+Mybatis中实现流式查询。通过介绍什么是mybatis的流式查询,以及Cursor接口的主要方法,代码实现,具体的应用场景和使用中的注意事项,让读者了解并掌握这种相对冷门但有效的查询方法。文章还提到了一些开发环境配置和使用的工具版本。流式查询可以避免一次性取出大量数据而占用过多内存。
BigDecimal加减乘除运算以及四舍五入
这篇文章介绍了BigDecimal的加减乘除运算以及四舍五入的方法。其中包括加法、减法、乘法、除法和求绝对值的操作。同时还介绍了四舍五入的不同模式,包括ROUND_DOWN、ROUND_UP、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_DOWN和ROUND_HALF_UP。文章末尾还给出了一个示例。
UUID的弊端以及雪花算法
这篇文章介绍了UUID的弊端以及雪花算法。在复杂分布式系统中,需要对大量的数据和消息进行唯一标识,因此需要一个能够生成全局唯一ID的系统。文章首先讨论了为什么需要分布式全局唯一ID以及分布式ID的业务需求、ID生成规则部分硬性要求、ID号生成系统的可用性要求等。接着,介绍了一般通用方案,包括UUID、数据库自增主键和Redis生成全局id策略。然后详细介绍了雪花算法,包括其概述、结构、代码以及优缺点。文章最后指出,UUID数据的无序性和每次插入对索引底层的B+树进行修改会导致一些问题,如分裂和不饱和节点的产生。