Zuul 不转发请求到其他微服务
Zuul not forwarding requests to other micro-services
我正在使用 spring 引导微服务。我已经配置了 eureka、zuul 代理和另一个微服务(帐户)。如果我直接从帐户打电话,它工作正常。帐户和 zuul 服务器都显示在尤里卡上。
当我尝试使用 zuul 代理时,它正在获取状态代码 200OK
但没有得到任何结果
下面是我对 zuul 的配置
Zuul.yml
server:
port: 8076
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:8078/eureka/
instance:
hostname: localhost
health-check-url-path: /actuator/health
status-page-url-path: /actuator/info
logging:
level:
com.netflix.discovery: 'ON'
org.springframework.cloud: DEBUG
zuul:
ignoredServices: '*'
routes:
account:
serviceId: ACCOUNT
url: http://192.168.0.62:8081/
stripPrefix: false
predicate:
- Path=/accounts/**
debug:
requests: true
management:
security:
enabled: false
endpoints:
web:
exposure:
include: '*'
到目前为止的控制台日志
route matched=ZuulRoute{id='account', path='/account/**',
serviceId='ACCOUNT', url='http://192.168.0.62:8081/',
stripPrefix=false, retryable=null, sensitiveHeaders=[],
customSensitiveHeaders=false, }
--------------------------- Mapped to org.springframework.cloud.netflix.zuul.web.ZuulController@7bb67520
actuator/env
的日志
"zuul.ignoredServices": {
"value": "*"
},
"zuul.routes.account.serviceId": {
"value": "ACCOUNT"
},
"zuul.routes.account.url": {
"value": "http://192.168.0.62:8081/"
},
"zuul.routes.account.stripPrefix": {
"value": false
},
"zuul.routes.account.predicate[0]": {
"value": "Path=/accounts/**"
},
"zuul.debug.requests": {
"value": true
},
"management.security.enabled": {
"value": false
},
"management.endpoints.web.exposure.include": {
"value": "*"
}
如果有什么东西丢失了,我无法从这里得到任何东西,请检查并告诉我。任何帮助都会有用
谢谢。
如果需要更多信息,请告诉我。
如我所见,您设置了 Eureka,但没有正确使用它。首先在 zuul yaml 你有
eureka:
client:
registerWithEureka: true
您不需要使用 eureka 注册您的 zuul 应用程序,因为您直接访问 zuul 网关,没有任何服务会尝试定位并到达您的网关。
然后
account:
serviceId: ACCOUNT
url: http://192.168.0.62:8081/
stripPrefix: false
predicate:
- Path=/accounts/**
如果您有服务发现功能,则不需要 url
属性 和 predicate: - Path
,请尝试:
account:
serviceId: <YOUR_ACCOUNT_SERVICE_ID>
stripPrefix: false
path: /account/**
默认serviceId为:
spring:
application:
name: <YOUR_ACCOUNT_SERVICE_ID>
检查我来自 here
的回答
我正在使用 spring 引导微服务。我已经配置了 eureka、zuul 代理和另一个微服务(帐户)。如果我直接从帐户打电话,它工作正常。帐户和 zuul 服务器都显示在尤里卡上。
当我尝试使用 zuul 代理时,它正在获取状态代码 200OK
但没有得到任何结果
下面是我对 zuul 的配置
Zuul.yml
server:
port: 8076
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:8078/eureka/
instance:
hostname: localhost
health-check-url-path: /actuator/health
status-page-url-path: /actuator/info
logging:
level:
com.netflix.discovery: 'ON'
org.springframework.cloud: DEBUG
zuul:
ignoredServices: '*'
routes:
account:
serviceId: ACCOUNT
url: http://192.168.0.62:8081/
stripPrefix: false
predicate:
- Path=/accounts/**
debug:
requests: true
management:
security:
enabled: false
endpoints:
web:
exposure:
include: '*'
到目前为止的控制台日志
route matched=ZuulRoute{id='account', path='/account/**', serviceId='ACCOUNT', url='http://192.168.0.62:8081/', stripPrefix=false, retryable=null, sensitiveHeaders=[], customSensitiveHeaders=false, } --------------------------- Mapped to org.springframework.cloud.netflix.zuul.web.ZuulController@7bb67520
actuator/env
的日志"zuul.ignoredServices": {
"value": "*"
},
"zuul.routes.account.serviceId": {
"value": "ACCOUNT"
},
"zuul.routes.account.url": {
"value": "http://192.168.0.62:8081/"
},
"zuul.routes.account.stripPrefix": {
"value": false
},
"zuul.routes.account.predicate[0]": {
"value": "Path=/accounts/**"
},
"zuul.debug.requests": {
"value": true
},
"management.security.enabled": {
"value": false
},
"management.endpoints.web.exposure.include": {
"value": "*"
}
如果有什么东西丢失了,我无法从这里得到任何东西,请检查并告诉我。任何帮助都会有用
谢谢。
如果需要更多信息,请告诉我。
如我所见,您设置了 Eureka,但没有正确使用它。首先在 zuul yaml 你有
eureka:
client:
registerWithEureka: true
您不需要使用 eureka 注册您的 zuul 应用程序,因为您直接访问 zuul 网关,没有任何服务会尝试定位并到达您的网关。
然后
account:
serviceId: ACCOUNT
url: http://192.168.0.62:8081/
stripPrefix: false
predicate:
- Path=/accounts/**
如果您有服务发现功能,则不需要 url
属性 和 predicate: - Path
,请尝试:
account:
serviceId: <YOUR_ACCOUNT_SERVICE_ID>
stripPrefix: false
path: /account/**
默认serviceId为:
spring:
application:
name: <YOUR_ACCOUNT_SERVICE_ID>
检查我来自 here
的回答