
158
|
第
9
章
Spring-boot
利用其依赖注入的功能简化了舱壁的创建。可以在
application.yml
文件中
指定舱壁的配置,如下所示:
server:
tomcat:
threads:
max: 200
resilience4j.bulkhead:
instances:
OrderService:
maxConcurrentCalls: 150
maxWaitDuration: 1000ms
在代码中,你只需使用
@Bulkhead
装饰器来指定应受舱壁行为影响的方法。在以下示例
中,还指定了降级方法。该方法将在达到舱壁容量,并且请求等待超过
1 s
时调用:
@Bulkhead(name = "OrderService", fallbackMethod = “newOrderBusy”)
public OrderOutcome newOrder(OrderInfo inf){// details omitted}
扩展阅读:扩展微服务
Amazon 和 Netflix 是微服务架构的先驱,他们在 2009 年左右大规模采用了微服务架
构。从那时起,我们学到了很多东西,当然,基于微服务构建的系统的规模也以惊
人的速度增长。为了应对现代系统的规模,Uber 已将其微服务架构发展为基于相关
服务的集合(称为域),正如这篇出色的技术博客文章(
https://oreil.ly/XXW1J
)中所
描述的。
Sam Newton 的书籍内的一个章节“ Microservices at Scale”(
https://or ...