我想在Spring集成应用程序中为网关调用添加回退。
我已将对网关的调用包装在带有@HystrixCommand注释的方法中,并在fallbackMethod属性中提供了fallback方法的名称。
@HystrixCommand(fallbackMethod = "getMockData")
public String gatewayCallGetMessage(String name) {
return serviceGateway.getMessage(name);
}
public String getMockData(String name) {
return "mock data";
}
我还在同一个类中定义了回退方法。
我的网关界面如下,
@MessagingGateway
public interface HystrixServiceGateway {
@Gateway(requestChannel = "get.request.channel", replyChannel = "reply.channel")
String getMessage(String name);
}
我在classpath/pom.xml.中有sping-Cloud-starter-hystrix依赖项。此外,我在Spring Boot Application类中有@EnableHystrix注释,如下所示。
@EnableHystrix
public class HystrixIntegrationApplication {
...
}
但是,当服务关闭时,网关调用不会通过,但不会执行回退方法。
我分享了我用来重现我的问题的代码如下,https://github.com/sri420/hystrix-integration-demo
如果有人遇到过类似的问题,并且知道解决方法,请让我知道。
正在从同一类中的getByName调用gatewayCallGetMessage方法。不能从同一类内调用带有@HystrixCommand的方法。
正如在这个问题的答案中所讨论的,这是Spring的AOP的一个限制。
当我在spring aop拦截类上使用注释时,我使用了@target limit匹配方法。但调试时,会提示以下错误。 我的切入点是这样的 其中TimeIt是注释: 我把切点改成能跑了 我不太理解的是,MetricsFilter 类没有这个注释,那么为什么要生成代理呢?任何人都可以帮我吗?谢谢。
我有一个简单的类叫BeaconDao 然而,当我用@service或@component标记beaconDao时,一切都运行得非常好。有人能看出问题所在吗?
我尝试使用SmtpAuthenticator创建邮件服务。组件已正确启动,但用户名和密码字段中存在空值。为什么会这样?
我尝试使用Spring security 3.1 但当我ROLE_USER权限 和控制程序代码
根据我的理解,在methodB()中,我们使用someManager保存一个对象,并调用另一个函数callToSomeOtherServer()。所以这是上层方法中事务的一部分。如果callToSomeOtherServer()失败并抛出someException,整个事务应该回滚,保存的对象不应该在DB中反映。 但这对我不起作用,对象反映在DB中。有人能帮忙让我明白为什么它不起作用吗?