尝试在Java WebSphere (TM)64位服务器VM ( 1.8.0_161-b12 (en_US) )上测试WebSphere自由版(WebSphere Application 18.0.0.3/wlp-1.22.cl180320180905-2337)中的微轮廓容错能力,但我无法让舱壁逻辑发挥作用。
创建了REST资源:
import org.eclipse.microprofile.faulttolerance.Bulkhead;
@Path("bulk")
public class BulkheadResource {
@GET
@Bulkhead(1)
public String getBulk() {
return getMessage();
}
private String getMessage() {
String vMessage = "Start: " + System.currentTimeMillis();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return vMessage;
}
}并使用3个线程从JMeter调用它。我的期望是,第一次呼叫会很好,但第二次和第三次将失败,因为呼叫一是占据唯一的线和舱壁将工作。
相反,在5s之后,所有三个线程都返回了一个200响应:
timeStamp elapsed label responseCode threadName grpThreads
1539095137936 5057 GET Bulk 200 Micro Profile 1-1 3
1539095138272 5041 GET Bulk 200 Micro Profile 1-2 2
1539095138608 5029 GET Bulk 200 Micro Profile 1-3 1Server.xml:
<featureManager>
<feature>microProfile-2.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>有什么想法吗?
发布于 2018-10-09 15:22:56
circuitBreaker被链接到实例。在您的示例中,您的bean是依赖范围的,并且它在每个请求中都有自己的断路器。如果您更改为ApplicationScoped,您应该看到您期望发生的事情。
https://stackoverflow.com/questions/52724051
复制相似问题