在消息队列系统中,保障消息不丢失需要从生产者、消息队列服务端、消费者
2025年05月03日
在生产环境中,随着云原生架构的发展,自动的弹性伸缩、滚动升级、分批发布等云原生能力让用户享受到了资源、成本、稳定性的最优解。但是在应用的缩容、发布等过程中,由于实例下线处理得不够优雅,将会导致短暂的服务不可用,短时间内业务监控会出现大量 io 异常报错;如果业务没做好事务,那么还会引起数据不一致的问题,那么需要紧急手动订正错误数据;甚至每次发布,您需要发告示停机发布,否则您的用户会出现一段时间服务不可用。没处理好服务实例下线,无论发生上述哪种情况,都会对您业务的连续性造成困扰。
2025年05月03日
在编写测试用例的时候遇到有异步或者队列处理的时候经常会用到 Thread.sleep() 等待来进行测试。例如:DLedger 测试选举的过程。当DLedger Leader下线。此时DLedger会重新发起选举,这个选举的过程是需要一定时间。很多时候在测试代码中就会使用 Thread.sleep 。 由于选举需要的时间多少不确定所以sleep时间就会设置为开发者经验的最大值。这样会造成测试代码会变得很慢。 当然开发者可以通过自己轮询来实现减少时间的消耗。
2025年05月03日
Java 17 是Java 最重要的一个LTS版本之一,但是直接从Java 8 过渡到Java 17跨度太大了,势必有些困难。所以胖哥抽时间梳理了一下从Java 9到Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。
2025年05月03日
缓存之王 Caffeine 中,涉及到100w级、1000W级、甚至亿级元素的过期问题,如何进行高性能的定时调度,是一个难题。
下面的问题,来自互联网:
一个大型内容审核平时,在运营设定审核了内容的通过的时间,到了这个时间之后,相关内容自动审核通过
2025年05月03日
在互联网大厂的后端开发领域,Spring Boot3 框架广泛应用于构建高效的应用程序。而随着业务规模的不断扩大,分布式系统的复杂性日益增加,如何确保多个服务实例对共享资源的安全、有序访问,成为了亟待解决的关键问题。分布式锁,作为应对这一挑战的有力手段,发挥着至关重要的作用。在众多实现分布式锁的技术方案中,借助 Redis 来实现具有显著优势,因其出色的性能和丰富的数据结构,成为了广大后端开发者的热门选择。今天,我们就深入探讨一下在 Spring Boot3 项目里,如何巧妙运用 Redis 实现分布式锁。