如何报告 JAXWS SOAP 中的故障转移功能何时处于活动状态?
How to report when failover feature is active in JAXWS SOAP?
我有一个这样构建的客户端:
val strategy = new SequentialStrategy()
strategy.setAlternateAddresses(listOfAddresses)
val feature = new CircuitBreakerFailoverFeature(2, 60000)
feature.setStrategy(strategy)
val factory = new JaxWsProxyFactoryBean()
factory.setServiceClass(classOf[MyService])
factory.setAddress(primaryAddress)
factory.setFeatures(Lists.newArrayList(feature))
factory.create().asInstanceOf[MyService]
我现在遇到的问题是,当我的客户端由于与 primaryAddress
的连接问题而实际转到 alternative
地址之一时,我需要向监视工具报告。但是我找不到如何检测地址之间的那些切换的方法(我考虑过添加自定义拦截器,但我敢打赌有更好的方法来做到这一点)。正确的做法是什么?
看起来或多或少的正确方法是 inject
向 TargetSelector 报告逻辑,如下所示:
class MonitoredCircuitBreakerTargetSelector(errorReporter: Monitoring) extends CircuitBreakerTargetSelector {
@Override
protected void onFailure(context: FailoverTargetSelector#InvocationContext, ex: Exception)= {
errorReporter.report(s"...")
super.onFailure(context, ex)
}
}
然后在 FailoverFeature
上调用 feature.setTargetSelector(new MonitoredCircuitBreakerTargetSelector(errorReporter))
我有一个这样构建的客户端:
val strategy = new SequentialStrategy()
strategy.setAlternateAddresses(listOfAddresses)
val feature = new CircuitBreakerFailoverFeature(2, 60000)
feature.setStrategy(strategy)
val factory = new JaxWsProxyFactoryBean()
factory.setServiceClass(classOf[MyService])
factory.setAddress(primaryAddress)
factory.setFeatures(Lists.newArrayList(feature))
factory.create().asInstanceOf[MyService]
我现在遇到的问题是,当我的客户端由于与 primaryAddress
的连接问题而实际转到 alternative
地址之一时,我需要向监视工具报告。但是我找不到如何检测地址之间的那些切换的方法(我考虑过添加自定义拦截器,但我敢打赌有更好的方法来做到这一点)。正确的做法是什么?
看起来或多或少的正确方法是 inject
向 TargetSelector 报告逻辑,如下所示:
class MonitoredCircuitBreakerTargetSelector(errorReporter: Monitoring) extends CircuitBreakerTargetSelector {
@Override
protected void onFailure(context: FailoverTargetSelector#InvocationContext, ex: Exception)= {
errorReporter.report(s"...")
super.onFailure(context, ex)
}
}
然后在 FailoverFeature
上调用feature.setTargetSelector(new MonitoredCircuitBreakerTargetSelector(errorReporter))