Closed Nuan-Yang closed 4 years ago
@Nuan-Yang 不好意思,我近期没太在意GitHub上的信息,非常抱歉。据我了解您说的这种情况应该是属于ServiceName和UpstreamPathTemplate中的前缀一致的情况。这样的话可以根据UpstreamPathTemplate的前缀去统配到具体的Downstream服务,然后根据同名的ServiceName去发现服务具体的地址。这样的话您只需要将ServiceName(比如productapi)和UpstreamPathTemplate的前缀(比如/productapi/{everything})配置成一致即可,再次感谢支持。
@Nuan-Yang 不好意思,我近期没太在意GitHub上的信息,非常抱歉。据我了解您说的这种情况应该是属于ServiceName和UpstreamPathTemplate中的前缀一致的情况。这样的话可以根据UpstreamPathTemplate的前缀去统配到具体的Downstream服务,然后根据同名的ServiceName去发现服务具体的地址。这样的话您只需要将ServiceName(比如productapi)和UpstreamPathTemplate的前缀(比如/productapi/{everything})配置成一致即可,再次感谢支持。
还是需要动态路由的吧,网关需要集群而且服务的数量太多配置起来很麻烦。
"Routes": [{
// 用于服务发现的名称,也就是注册到nacos上的名称
"ServiceName": "StockService",
"DownstreamScheme": "http",
//目标服务地址
"DownstreamPathTemplate": "/api/{route}",
//网关地址
"UpstreamPathTemplate": "/gateway/{route}",
"UpstreamHttpMethod": [ "Get", "Post" ],
"LoadBalancerOptions": {
"Type": "RoundRobin"
},
// 使用服务发现
"UseServiceDiscovery": true
}]
启动网关通过 http://localhost:5203/gateway/stock/welcome 只有第一次访问成功,后续再也无法成功(500)提示信息:
fail: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
requestId: 0HMGM9M5DRQFV:00000008, previousRequestId: no previous request id, message: Exception caught in global error handler, exception message: Object reference not set to an instance of an object.
不知道大佬们是否有遇到过?
你好请问现在的nacos for ocelot 的路由配置只能通过 ocelot.json文件去配置吗? 据我所知consul是可以通过consul的服务自动路由过去的http:ip/serviceName/{其他url},通过用户输入的去查找这个服务是否存在,如果存在则自动路由过去。 如果我们这里有这个功能请您告知我应该如何配置,谢谢。