部署rabbitmq docker run -dit --name rabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:4.2.0-management 下载插件 curl -L \ -o rabbitmq_delayed_message_exchange.ez \ https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.13.0/rabbitmq_delayed_message_exchange-3.13.0.ez 拷贝到容器 docker cp ./rabbitmq_delayed_message_exchange-4.2.0.ez rabbitmq:/plugins/ 启用插件 docker exec rabbitmq rabbitmq-plugins enable --offline rabbitmq_delayed_message_exchange 最后重启容器。
View Details2026年4月,Rod Johnson在Microsoft JDConf开发者大会上正式发布了Embabel——一个面向企业AI Agent的JVM开源框架。
2026年7月20日,Embabel正式发布了1.0.0 GA版本。项目采用Apache 2.0协议开源,目前已在GitHub上公开。
虚拟线程在Spring Boot中的正确使用方式:
启用方式:配置 spring.threads.virtual.enabled=true
Web请求:自动使用虚拟线程处理(无需额外配置)
异步方法:通过 @Async 自动使用虚拟线程
定时任务:需要配置 SchedulingConfigurer
手动创建:使用 Executors.newVirtualThreadPerTaskExecutor()
注意事项:避免CPU密集型任务,谨慎使用ThreadLocal
我们知道,系统面对大流量、高并发的访问请求时,就可能会出现一系列性能问题,导致服务丧失了即时的响应性。如何时刻确保系统具有应对请求压力的能力,是架构设计的核心问题之一。
经典的服务隔离、限流、降级以及熔断等机制能够在一定程度上确保系统的响应性。但这些机制更多的是从系统架构和应用部署的角度出发解决问题,而不是编程技术本身。今天我们要介绍的是构建系统响应性的一种崭新的解决方案,这就是响应式编程(Reactive Programming)。
我们知道,传统的编程模型采用的是同步阻塞式(Blocking)的请求响应过程,这是现有各种经典解决方案所不得不面对的一种限制。 而响应式编程打破了这种限制,采用了异步非阻塞式(Non-Blocking)的编程模型,从而提高服务的响应能力。
View Details适用场景
继续用Feign的场景
1. 已有的老项目,Feign接口超过20个 迁移成本太高,不值得为了“追新”去重构。
2. 深度依赖Spring Cloud微服务生态 服务发现、负载均衡、熔断降级全部用Spring Cloud那一套,Feign的集成度更高。
3. 团队对Feign非常熟悉 没有学习成本,出了问题知道怎么排查。
4. 不需要响应式编程 业务场景简单,不需要WebFlux,Feign完全够用。
转向@HttpExchange的场景
1. 新项目从零开始 没有历史包袱,直接用Spring官方原生方案。
2. 需要使用响应式编程 WebFlux + @HttpExchange是绝配。
3. 追求性能和资源效率 高并发场景下,@HttpExchange的吞吐量和内存占用都优于Feign。
4. 不想引入Spring Cloud 项目不需要完整的微服务功能,只想用声明式HTTP客户端。
5. 追求技术栈“干净” 希望依赖最小化,不想引入第三方组件。
View Details泳道图
按角色划分为一个个泳道,每个角色的活动散落在各个角色对应的泳道里。泳道图是将模型中的活动按照职责组织起来。这种分配可以通过将活动组织成用线分开的不同区域来表示。由于它们的外观的缘故,这些区域被称作泳道。
时序图
时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序。
活动图
在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等。
状态图
状态图: 通过建立对象的生存周期模型来描述对象随时间变化的动态行为。
协作图
协作图(也叫合作图)是一种交互图。
TransmittableThreadLocal(TTL)是阿里开源的一个线程间数据传递解决方案,解决了InheritableThreadLocal在线程池场景下的问题。
View Details