我正在开发一个spring微服务应用程序。我的应用程序使用api网关、zuul代理、spring,并部署在openshift上。
我的application.properties文件中有以下配置:
zuul.routes.service-name.path=/test/aos/v1/**
zuul.routes.service-name.stripPrefix=false
zuul.routes.service-name.serviceId=service-name
在访问api @ https://URL.com/test/aos/v1/info时,我会得到以下错误
{
"timestamp": "2021-06-20T23:34:36.862+0000",
"status": 404,
"error": "Not Found",
"message": "Not Found",
"path": "/info"
}
我检查了zuul是否没有通过actuator/mappings
注册,这个映射显示在那里。一切都很好。另外,如果我在OCP中直接@ https://CONTAINER_URL.com/test/aos/v1/info中调用后端API容器,那么我将得到预期的结果。
因此,我理解zuul无法找到后端api容器的url。为什么会这样?该应用程序不使用netflix,而是完全依赖openshift注册中心。
我不能和这只虫子站在一起……内部尖叫声
发布于 2021-06-26 02:47:32
需要根据配置的serviceId对目标服务进行服务器列表或URL映射,该服务名为" service -name“。
与其他设置一起添加以下内容-
service-name.ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList
service-name.ribbon.listOfServers= https://example1.com,http://example2.com
或删除serviceId配置,并将容器的URL添加为-
zuul.routes.service-name.url=https://example.com/
https://stackoverflow.com/questions/68060881
复制