我录制了一段视频,介绍如何使用MicroProfile Fault Tolerance实现隔板和背压。 隔板后面的想法是将应用程序分成几个隔离功能的执行单元。 在企业Java应用程序中,这通常意味着定义多个线程池。
向客户端施加反压将导致向客户端添加有关系统当前压力的信息,以便客户端对此做出反应,或者使用临时错误响应明确拒绝该请求。
在上一个视频中 ,我展示了如何通过Porcupine扩展使用纯Java EE实现该功能。
在本视频中,我将展示MicroProfile Fault Tolerance如何通过组合JAX-RS异步资源,可完成的Futures, @Asynchronous
和@Bulkhead
,以更少的配置使我们应用相同的原理。
您将在GitHub项目中找到代码,并在MicroProfile Fault Tolerance 规范中找到进一步的说明。 要阅读有关如何构建弹性企业应用程序的主题的更多信息,请阅读以下文章 。
更新2019-03-07:
术语“ 背压”似乎与反应式体系结构中的用法引起了一些混淆。 在这些视频中,我指的是如何使服务行为和响应性更加可预测,以限制队列大小,并对连接到我们服务的客户端所产生的负载施加反压。 这并不意味着使用者(客户端)向生产者(服务器)发送信号以减慢数据发射的速度,而是当我们的服务器受到客户端负载的超负荷威胁时。
定义和约束多个资源池的全部目的是可预测我们的服务是否能够在给定时间内做出响应。 如果不是这种情况,我们希望服务立即拒绝请求,而不必花费过多的客户时间。
有关该主题的更多背景知识,您可以阅读以下文章, 了解如何在过载时施加反压 ,以及有关如何满足生产要求的文章 。
翻译自: https://www.javacodegeeks.com/2019/03/bulkheads-backpressure-microprofile.html