Java
-
Springboot集成Easy Rules引擎,实现一个商品优惠券系统
Easy Rules是一个轻量级的Java规则引擎,它允许开发者将业务规则从代码中解耦出来,使规则的管理和执行更加灵活。 现在让我们一起利用Spring Boot结合Easy Ru…
-
为什么Java NIO就是比BIO高效呢?【内含对比代码】
为什么 Java NIO 比 Java BIO 高效? 非阻塞 I/O: BIO:每个 I/O 操作都会阻塞线程,导致大量线程处于空闲状态,增加了线程管理和上下文切换的开销。 NI…
-
WebSocket有哪些缺点?应该如何解决?
虽然 WebSocket 提供了许多优势,使其成为实时通信的理想选择,但它也有一些缺点和局限性。以下是 WebSocket 的一些主要缺点: 1. 初始握手开销 HTTP 握手:W…
-
SpringBoot整合Resilience4j,解决长时间等待第三方API迟迟不响应的问题
超时控制是确保系统稳定性和可靠性的重要机制之一。特别是在涉及外部依赖和服务调用的情况下,通过合理配置超时机制,可以显著提高系统的稳定性和可靠性,避免因单个组件的问题导致整个系统的崩…
-
SpringBoot与Redisson整合,用注解方式解决分布式锁的使用问题
Redisson 是一个基于 Redis 的 Java 客户端,提供了丰富的分布式锁功能,如红锁(Red Lock)、公平锁、可重入锁等。Redisson 的设计使得开发者可以非常…
-
SpringBoot集成 Resilience4j,解决大量请求情况下的过载问题
Resilience4j限流的应用场景 1. 微服务架构中的 API 网关 在微服务架构中,API 网关是客户端与各个微服务之间的唯一入口点。通过在 API 网关层使用 …
-
SpringBoot整合Flink,实现一个用户个性化推荐系统
通过SpringBoot结合Flink的高性能流处理能力,开发者可以构建出高效、可靠的实时数据处理解决方案。这些应用不仅能够提高企业的运营效率,还能增强竞争力。 应用场景 1. 推…
-
Helidon微服务框架,轻装上阵,效率翻倍
今天换点别的框架聊聊吧,整天都是SpringBoot,太腻了。作为开发人员,多知道点东西,不会坏,就当扩展一下自己的技术视野吧! 请出今天的主角:Helidon Helidon S…
-
SpringBoot整合Seata,解决多个订单相关服务之间数据一致性问题
Seata 的独特之处在于它专门为了解决微服务环境下的分布式事务问题而设计,提供了多种灵活的事务模式(AT、TCC、Saga),并且尽量减少对现有业务逻辑的侵入性。与此同时,Sea…
-
当数据库和中间件都挤在一台双核4G服务器,该如何设计架构保证系统的稳定性和性能?
当你接了一笔十分抠门小老板的私活订单,他只有一台双核4G内存的服务器,仅此一台,十分抠门,不肯加多服务器。 还要满足以下要求: 后端服务用Java语言开发;(我猜想可能是他有个亲戚…
-
在一台服务器同时运行十个Docker容器,请预估一下:会发生什么情况?
只有一台双核4G内存服务器的情况下部署十个相同应用的Docker容器,可能遇到的情况,我进行以下预估: 1. 资源竞争 CPU瓶颈:双核CPU可能不足以同时高效处理十个应用实例的工…
-
【微服务面试】全局事务有哪些弊端?
全局事务,尤其是在分布式系统中使用时(如通过两阶段提交2PC、三阶段提交3PC等机制实现),虽然提供了跨多个资源(如数据库、消息队列等)的原子性操作,确保了数据的一致性和完整性,但…
-
Springboot集成OVal,解决微服务之间数据的一致性和有效性问题
OVal 是一个非常灵活和功能强大的对象验证框架。它不仅支持基本的字段验证,还允许开发者编写复杂的自定义验证逻辑。通过集成OVal,你可以提高代码的质量和安全性,确保数据的一致性和…
-
SpringBoot集成gRPC,解决微服务之间的快速高效的内部通信问题
微服务架构和远程过程调用(RPC)实际上是互补的概念,而不是互斥的。在Java开发中,即便采用了微服务架构,也可能需要使用到RPC机制。 为什么在微服务中仍然需要RPC? 微服务架…
-
分布式任务调度故障教训:我决定换掉LTS的真相
背景 作为一款老牌定时任务组件,LTS(light-task-scheduler)出生于2015年(github开源时间)寿终正寝于2017年,虽然后续也有commit但已经没有实…
-
应对大模型API限流:高效策略助你轻松突破QPS限制
分享技术,用心生活 背景 国内的公有大模型想要调用,基本都会有QPS的限制。那么如何实现我们在请求时候,有针对性的进行限流?被限流的请求又如何知道它的状态?是在队列中排队还是已经被…