Coding One

  • java
  • php
  • python
  • 前端
  • 大数据
  • 操作系统
  • 树莓派
  • 其他
Coding One
如果每天只要敲敲代码,那这样一辈子也挺好。
  1. 首页
  2. java
  3. 正文

Spring Cloud和Zookeeper,成功注册服务,却无法获取实例。[已解决]

2020年9月15日 20317点热度 4人点赞 0条评论

解决方法如下:

最后自己解决了。
问题出在URL地址上。我用的zookeeper版本是3.6.0。
PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";
这种用全大写的方式已经不行了,zookeeper上显示的是小写:cloud-payment-service 【取自服务注册端的spring.application.name属性】

我们也要用小写才行PAYMENT_URL = "http://cloud-payment-service";
才能找到服务。

我的问题情况如下:

使用spring-cloud开发了2个服务,服务注册使用zookeeper。

在zookeeper的zkCli.sh中能够查看到两个服务
在这里插入图片描述

然后通过其中cloud-order-service的项目,通过在controller中的以下代码,访问CLOUD-PAYMENT-SERVICE服务:

在这里插入图片描述
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}

public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";

@Resource
private DiscoveryClient discoveryClient;

@Resource
private RestTemplate restTemplate;

@GetMapping("/consumer/payment/create")
public CommonResult<Payment> create(Payment payment){
    log.info("***payment: {}", payment);
    return restTemplate.postForObject(PAYMENT_URL + "/payment/create", payment, CommonResult.class);
}

结果是:

在这里插入图片描述
{
"timestamp": "2020-04-18T12:52:50.103+0000",
"status": 500,
"error": "Internal Server Error",
"message": "No instances available for CLOUD-PAYMENT-SERVICE",
"path": "/consumer/payment/create"
}

错误内容:

在这里插入图片描述
2020-04-18 20:52:50.092 ERROR 6656 --- [p-nio-80-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: No instances available for CLOUD-PAYMENT-SERVICE] with root causej

ava.lang.IllegalStateException: No instances available for CLOUD-PAYMENT-SERVICE
at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:119) ~[spring-cloud-netflix-ribbon-2.2.1.RELEASE.jar:2.2.1.RELEASE]
at org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:99) ~[spring-cloud-netflix-ribbon-2.2.1.RELEASE.jar:2.2.1.RELEASE]

标签: cloud java spring spring cloud zk zookeeper 微服务 服务注册
最后更新:2020年9月17日

Wang

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 Coding One. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

闽ICP备17024682号