Ocelot+Consul无法匹配下游路由解决办法

最近这段时间一直在研究微服务架构,在实际操作中却遇到了一个困扰我整整大半个月的一个大坑,就是在本地测试时Ocelot请求接口正常,但是到我把接口部署服务器时却一直请求接口失败,提示无法匹配下游路由;如下图所示:Ocelot+Consul无法匹配下游路由解决办法_第1张图片
Consul服务如下图所示:
Ocelot+Consul无法匹配下游路由解决办法_第2张图片
Ocelot配置信息如下图所示:
Ocelot+Consul无法匹配下游路由解决办法_第3张图片
因为这个问题我整整在网上找了大半个月的资料,却没有找到一个正确的解决方法,正当我准备放弃时却无意间一位博主提到了:“当服务和 Consul 在同一台电脑上时,Ocelot 最终变换成 http://hostname:port/url 的形式进行访问。如果 http://hostname:port/url,还是返回 错误代码 HTTP ERROR 500 访问失败。就是 hostname 不能转换为 ipaddress.”,需要再系统的hosts里面把consul注册的节点ip配置到文件中去,打开系统目录:c:/windows/system32/drivers/etc找到hosts文件,打开hosts文件并在最后面添加一条记录,果然这样配置后问题就解决了;

通过这个事我是真实的体会到了在绝望中找到希望是什么感觉,就一个字“爽”,特此写下这篇博客,一是希望给和我一样遇到这种问题的同僚提供一点帮助,二是提醒自己在以后的人生路上遇到困难时再坚持下,可能就找到希望了

你可能感兴趣的:(.Net,Core,微服务架构,c#)