Ocelot.Provider.Nacos
Ocelot.Provider.Nacos copied to clipboard
Repo for Nacos integration with Ocelot
当停止其中一个service的其中一个服务时,会立即从nacos平台消失掉,但是ocelot不能及时感知到服务已经停止,还会转发到已经停止的服务,DefaultTimeOut改小一点也不起作用,大概能持续到20秒左右才正常不会转发到已停止的服务。会报下面的错误 Ocelot.Responder.Middleware.ResponderMiddleware 'Error Code: ConnectionToDownstreamServiceError Message: Error connecting to downstream service
子服务引用nacos-sdk-csharp.AspNetCore 后,服务运行起来后,控制台一直报这个: failover switch is not found, 00-00---000-VIPSRV_FAILOVER_SWITCH-000---00-00 。 这个不会有影响吧。 然后我新增了个子服务,如:A服务,通过网关调用A服务下的testapi,并未请求通, 网关程序已经添加了如下引用: Ocelot Ocelot.Provider.Nacos Ocelot.Provider.Polly nacos-sdk-csharp.aspnetcore nacos-sdk-csharp.Extensions.Configuration A子服务也添加了nacos-sdk-csharp.aspnetcore,并在 ConfigureServices下添加了services.AddNacosAspNet(Configuration); 并未网关程序下的修改ocelot.json文件,难道必须手动修改ocelot.json文件,添加好A服务的上下游进去吗?不能自动从nacos里获取到服务地址,自动更新么?
我升级 nacos-sdk 到 1.3.5 修改源代码提示 Ocelot.Provider.Nacos.NacosClient.V2.RegSvcBgTask' has been registered
Microsoft.AspNetCore.Hosting.Diagnostics[6] Application startup exception System.AggregateException: One or more errors occurred. (No service for type 'Ocelot.Provider.Nacos.NacosClient.V2.RegSvcBgTask' has been registered.) ---> System.InvalidOperationException: No service for type 'Ocelot.Provider.Nacos.NacosClient.V2.RegSvcBgTask' has been registered. at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider...
· 原扩展因为无法提供自定义的configuration参数,导致如果提供了自定义的Ocelot配置,Nacos的配置项必须在Ocelot的配置节点同级目录下,如: ``` json { "Gateways": { "GlobalConfiguration": { ... }, "Routes": [ ... ], "Nacos": { ... } } } ``` ``` csharp services.AddOcelot(gatewaysConfiguration).AddNacosDiscovery("Nacos"); ``` · 新的扩展方法可以分离两个配置,并且更方便Ocelot的配置动态从Nacos获取,如: ``` json...
使用了最新版的Ocelot之后报的错误 

ocelot.provider.nacos目前版本已经到了1.2.0版本,但nacos-sdk-csharp的主版本是1.1.0,因为ocelot.provider.nacos依懒nacos,是否在制定主版本的时候,与nacos-sdk-csharp的主次版本保持一致?这样在调整或者修复的时候,比较好处理版本问题。