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实现延迟任务(过期取消订单)。首先,文章讨论了生产需求,然后提出了实现思路。接下来,详细说明了这些思路,最后给出了代码封装实现。
Java 时间转rfc3339标准格式
这篇文章介绍了一个关于Java时间转换为rfc3339标准格式的问题。作者在对接微信支付时需要用到rfc3339标准格式的时间,但很长时间里找不到正确的教程。因此作者整理了多种时间格式的结果,以解决这个问题。
Spring Boot 最核心的27个注解,你了解多少?
这篇文章介绍了Spring Boot最核心的27个注解。其中包括了Spring相关的6个注解和Spring Boot最核心的20个注解。Spring Boot是Java应用开发领域的主流框架之一,可以方便地创建生产级的Spring应用程序,并与其他框架如Spring Cloud快速集成。Spring Boot的核心原因在于简化了项目的配置,实现了“约定大于配置”的原则。然而,对于这些注解的理解可能会让人感到困惑。因此,要想充分利用Spring Boot,就需要深入了解这些注解的含义和使用方法。