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+树进行修改会导致一些问题,如分裂和不饱和节点的产生。

订单系统就该这么设计(万能通用),稳的一批!

这篇文章介绍了订单系统的设计。文章首先概述了订单业务的重要性,然后详细介绍了订单体系、流程管理、技术方案和数据方案等方面的内容。文章强调了在设计订单系统时需要进行全面的考虑,以避免中后期的重构。文章还详细分析了订单业务的三个核心参与方:用户、商户和平台,并从不同的角度对订单流程进行了分段策略的分析。最后,文章总结了订单系统的边界和上下游业务的衔接。

PO、VO、DAO、BO、DTO、POJO 能分清吗?

这篇文章介绍了PO、VO、DAO、BO、DTO、POJO的含义和用途。PO是持久对象,VO是值对象,DAO是数据访问对象接口,BO是业务对象层,DTO是数据传输对象,POJO是简单的Java对象。文章还提到了《阿里巴巴Java开发规范》中关于领域模型的规约,以及各个对象在不同层次中的使用。

分布式ID生成算法——雪花算法

这篇文章介绍了分布式ID生成算法——雪花算法。首先,文章讨论了分布式ID的需求和问题,指出了在分布式系统中使用自增ID可能导致冲突的问题。接着,文章详细介绍了雪花算法的结构和特点,包括符号位、时间戳、工作机器ID和序列号。雪花算法能够在高并发情况下保证分布式ID的全局唯一性,并且生成的ID按照时间升序排列。此外,文章还讨论了时钟回拨问题以及解决方案,并简单介绍了UUID的缺点。

分布式ID生成算法——leaf算法

这篇文章介绍了分布式ID生成算法——leaf算法。它是在雪花算法的基础上提出的,具有全局唯一、高可用、高并发、低延迟、接入简单的优点。leaf算法有两种生成模式,分别是号段模式和雪花ID模式。号段模式下,ID从低位增长,较少的号段浪费,能够容忍MySQL短时不可用。双Buffer优化可以保证无论何时DB出现问题,都有一个buffer可以正常向外提供服务。动态步长根据上一次的更新周期T和号段长度step来决定这一次更新的号段长度。

Spring Cloud Gateway与后端服务问题处理总结

这篇文章介绍了Spring Cloud Gateway与后端服务中遇到的"Connection prematurely closed BEFORE response"问题。其产生原因可能在于连接的生命周期管理,解决办法包括调整后端服务配置、增加JVM启动参数、设置连接的最大空闲时长等。具体来说,可以采用后进先出策略获取连接,将后端服务连接超时时长改为10秒,并设置连接的最大空闲时长为5秒。这些操作需确保网关回收请求在后端服务回收请求之前完成。

JAVA各JDK版本下载地址

这篇文章介绍了JAVA各JDK版本的下载地址,以及对Java 8的介绍。官方公告称Java 8是一款革命性的开发平台,具有升级现有Java编程模式、实现协同开发的特点。 JDK8的开发计划中已完成大部分特性,包括与Lambda相关的几个特性。文章还提到了Java EE 1.6、1.7和1.8各个版本对应的JDK版本。

反射与注解

这篇文章介绍了反射与注解的相关知识。首先介绍了类对象和反射的用法,包括反射操作属性、方法、构造方法等。然后介绍了设计模式中的工厂模式和单例模式。接下来介绍了枚举的基本使用和高级使用。最后介绍了注解的概念、自定义注解和元注解的使用。文章提供了对类的加载、信息获取以及动态创建对象、赋值和方法调用的操作。同时还介绍了工厂模式、单例模式、枚举和注解等相关内容。

Redis实现延迟任务(过期取消订单)

这篇文章介绍了如何使用Redis实现延迟任务(过期取消订单)。首先,文章讨论了生产需求,然后提出了实现思路。接下来,详细说明了这些思路,最后给出了代码封装实现。