我有简单的服务:
transactions-core-service和transactions-api-service.
transactions-api-service调用transactions-core-service来返回事务列表.使用hystrix命令启用transactions-api-service.
两者都在以下服务ID的Eureka服务器中注册:
TRANSACTIONS-API-SERVICE n/a (1) (1) UP (1) - 192.168.2.12:transactions-api-service:8083
TRANSACTIONS-CORE-SERVICE n/a (1) (1) UP (1) - 192.168.2.12:transactions-core-service:8087
Run Code Online (Sandbox Code Playgroud)
以下是Zuul服务器:
@SpringBootApplication
@Controller
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
Zuul配置:
===============================================
info:
component: Zuul Server
server:
port: 8765
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
zuul:
ignoredServices: "*"
routes:
transactions-api-service:
path: transactions/accounts/**
serviceId: transactions-api-service
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
logging:
level:
ROOT: INFO
org.springframework.web: DEBUG
===============================================
Run Code Online (Sandbox Code Playgroud)
当我尝试使用url(http://localhost:8765/transactions/accounts/123/transactions/786)调用transactions-api-service时,我得到了Zuul异常:
2016-02-13 11:29:29.050 WARN 4936 --- [nio-8765-exec-1] oscnzfilters.post.SendErrorFilter:过滤时出错
com.netflix.zuul.exception.ZuulException:转发org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:131)〜[spring-cloud-net flix-core-1.1. 0.M3.jar:1.1.0.M3]在org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:76)〜[spring-cloud-netflix-core-1.1.0 .M3.jar:1.1.0.M3] ......
如果我单独调用transactions-api-service(with localhost /accounts/123/transactions/786),它可以正常工作.
我错过了Zuul的任何配置吗?
Raf*_*ik 7
您需要通过在zuul服务器的application.yml中添加此属性来更改zuul执行超时 :
# Increase the Hystrix timeout to 60s (globally)
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 60000
Run Code Online (Sandbox Code Playgroud)
请参阅netflix问题上的这个主题:https://github.com/spring-cloud/spring-cloud-netflix/issues/321
您的缩进不正确。代替:
zuul:
ignoredServices: "*"
routes:
transactions-api-service:
path: transactions/accounts/**
serviceId: transactions-api-service
Run Code Online (Sandbox Code Playgroud)
它应该是:
zuul:
ignoredServices: "*"
routes:
transactions-api-service:
path: transactions/accounts/**
serviceId: transactions-api-service
Run Code Online (Sandbox Code Playgroud)
面临同样的问题。就我而言,zuul使用服务发现。作为解决方案,下面的配置就像一个魅力。
ribbon.ReadTimeout=60000
Run Code Online (Sandbox Code Playgroud)
参考属性用法在这里。
| 归档时间: |
|
| 查看次数: |
37130 次 |
| 最近记录: |