问题:

在通过RestTemplate进行调用其他项目的API时,由于是在本地调本地,产生了No instances available for localhost错误,导致无法调用。

原因:

既然是负载均衡,那必然是多台服务器的负载均衡,用IP访问就没有意义了,因此用负载均衡的注解时,不能用IP或者localhost,而应该用服务名。

RestTemplate的底层错误原因(摘录):

自动注入的restTemplate中加入了cloud.netflix*包下面的interceptor,

所以默认会通过RibbonLoadBalancerClient去查找注册中心的instances,

如上面的代码,www.baidu.com肯定不存在,所以就报错了。

问题是 因为  LoadBalancedClient  这里的 choose 根据 Consul注册的服务名(spring.cloud.consul.discovery.serviceName=service-producer) 命中一个服务提供者;

这里就不能使用加了LoadBalanced注解的RestTemplate对象了,因为会根据 host 去Consul查找服务提供者,这样就会抛异常 :No instances available for  XXX  ,也就是找不到指定的服务ID

原因:"服务地址:" + serviceInstance.getUri()这儿出现了问题。

解决方案:

在配置类配置RestTemplate时,分别配置负载均衡与默认优先选择,即写两个RestTemplate方法

@LoadBalanced
@Bean
public RestTemplate loadBalanced1() {return new RestTemplate();
}@Primary
@Bean
public RestTemplate restTemplate() {return new RestTemplate();
}

解决RestTemplate的No instances available for localhost错误相关推荐

  1. mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

    mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法 参考文章: (1)mysql出现ERROR1698(28000) ...

  2. 关于解决Server Tomcat v9.0 Server at localhost failed to start的问题

    关于解决Server Tomcat v9.0 Server at localhost failed to start的问题 参考文章: (1)关于解决Server Tomcat v9.0 Server ...

  3. 解决mysql“Access denied for user 'root'@'localhost'”

    2019独角兽企业重金招聘Python工程师标准>>> 解决mysql"Access denied for user 'root'@'localhost'" 我的 ...

  4. 解决Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误的方法

    解决Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误的方法 遇到这个问题的原因很多: 第一种 ...

  5. 解决elasticsearch里拒绝更新mapping设置的错误

    @[TOC] 解决elasticsearch里拒绝更新mapping设置的错误 错误现象 对一个es上已经创建的索引,使用python的elasticsearch_dsl 库, Rejecting m ...

  6. tomcat启动时错误:Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误

    今天第一次遇到Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误,并且在错误提示的后半段出现了 ...

  7. ubuntu18.04.4 安装 dlib (解决 Running setup.py install for dlib ... error错误)

    ubuntu18.04.4 安装 dlib (解决 Running setup.py install for dlib - error错误) 直接安装出现错误: Running setup.py in ...

  8. Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法

    Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法 参考文章: (1)Centos6 升级glibc-2.17,解决 ...

  9. 解决ModuleNotFoundError: No module named ‘numpy.core._multiarray_umath‘ 错误

    解决ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' 错误 文章目录: 一.错误原因分析 二.解决方式 调试了好久 ...

  10. 成功解决调用密钥报错4001 加密方式错误

    成功解决调用密钥报错4001 加密方式错误 目录 解决问题 解决思路 解决方法 解决问题 成功解决调用密钥报错4001 加密方式错误 解决思路 秘钥没有打开,会出现这样的错误! 解决方法 关掉密钥按钮 ...

最新文章

  1. 众创汇定制如何革新工业4.0?
  2. ScheduleThreadPoolExecutor的工作原理与使用示例
  3. hdu 5019 第k大公约数
  4. selenium 等待_Selenium等待:内隐,外显,流利和睡眠
  5. pip/conda导出 requirements.txt 注意事项
  6. git配置用户信息_git系列教程(4)-单用户配置
  7. 作者:程学旗(1972-),男,中国科学院计算技术研究所研究员、博士生导师、副所长,中国科学院网络数据科学与技术重点实验室主任。...
  8. 今天的圆圆的深圳4j
  9. Python 三元表达式、列表推导式、生成器表达式
  10. 2009年IT行业最重要的十大认证
  11. 一周试用yii开发一个带各种该有功能的web程序(三)
  12. 逻辑与、逻辑或||和逻辑非!
  13. 模拟无线透传的STM32的24L01无线模块与串口USART通信
  14. C语言int 类型的表示范围 sizeof()函数
  15. 免费开源解压缩软件7-Zip
  16. linux+cs1.6服务器搭建,Linux玩CS反恐精英的方法
  17. 《潮流时装设计——世界顶级时装CAD制板技巧》——1.1 什么是服装CAD
  18. 移动哨兵远程监控系统方案
  19. 深入理解vue中的slot与slot-scope (简单易懂)
  20. 复杂问题(大型系统)的对象模型通常由哪几个层次组成

热门文章

  1. David G. Lowe课题组 Fully Automatic Multi-target Tracking System
  2. Element 中表格表头添加搜索图标和功能使用
  3. Java多线程系列--【JUC集合09】- LinkedBlockingDeque
  4. 二进制漏洞挖掘技术实战
  5. 财务报表java_财务报表识别
  6. Photoshop插件-证件照-3寸裁剪-3寸排版-脚本开发-PS插件
  7. Linux 错误E45,readonly optionisset(add ...)
  8. SQL 升序、降序排列
  9. 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
  10. java json 特殊字符处理_Json特殊字符处理