真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解SpringCloudRibbon負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑

一,問(wèn)題

成都創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺(jué)設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷(xiāo)推廣、網(wǎng)站程序開(kāi)發(fā)、HTML5響應(yīng)式成都網(wǎng)站建設(shè)公司、手機(jī)網(wǎng)站開(kāi)發(fā)、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)、WEB系統(tǒng)開(kāi)發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為攪拌罐車(chē)行業(yè)客戶提供了網(wǎng)站設(shè)計(jì)服務(wù)。

采取eureka集群、客戶端通過(guò)Ribbon調(diào)用服務(wù),Ribbon端報(bào)下列異常

java.net.UnknownHostException: SERVICE-HI

java.lang.IllegalStateException: No instances available for SERVICE-HI

java.lang.IllegalStateException: Request URI does not contain a valid hostname: http://SERVICE-HI

com.netfix.discovery.shared.taransport.TransportException: Cannot execute request on any known server

Spring Cloud版本比較亂,版本關(guān)聯(lián)引用更是亂,最終我切換到  Greenwich.SR1 異常為: No instances available for SERVICE-HI

二、尋找答案 

網(wǎng)上答案千奇百怪

1,Spring Cloud 官網(wǎng),RestTemplate bean配置中添加負(fù)載均衡注解@LoadBalanced,我添加了

@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
  return new RestTemplate();
}

結(jié)果無(wú)效仍然一樣報(bào)錯(cuò)

2,訪問(wèn)的服務(wù)名名稱(chēng)不能有下劃線:

我的名稱(chēng)是“SERVICE-HI”本身就不存在下劃線,所以不考慮這條。

3,主機(jī)名稱(chēng)沒(méi)在系統(tǒng)文件hosts中配置,ping不通你服務(wù)名:

很扯的答案,為什么要配host,負(fù)載多臺(tái)機(jī)器讓主機(jī)名指向誰(shuí)?不考慮此答案

三,分析問(wèn)題

百度不到,自己分析原因,發(fā)現(xiàn)ribbon服務(wù)器沒(méi)有注冊(cè)到 eureka server中

詳解SpringCloud Ribbon 負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑

分析原理:我的客戶端服務(wù)“SERVICE-HI”已經(jīng)成功注冊(cè)到eureka server中了,如果ribbon服務(wù)器不在eureka server中注冊(cè),是不會(huì)知道客戶端服務(wù)“SERVICE-HI”的存在以及它存在的位置,那么結(jié)論就是,因?yàn)閞ibbon服務(wù)器沒(méi)有在eureka server中注冊(cè)成功,所以不能識(shí)別主機(jī)名稱(chēng)。

四,解決問(wèn)題

配置文件

eureka:
 client:
  serviceUrl:
   defaultZone: http://localhost:8761/eureka/
server:
 port: 8764
spring:
 application:
  name: service-ribbon

依賴(lài)導(dǎo)入


  
    org.springframework.boot
    spring-boot-starter-web
  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-ribbon
  

主程序注釋

@SpringBootApplication
@EnableDiscoveryClient
public class ServiceRibbonApplication {
  
  public static void main(String[] args) {    
    SpringApplication.run( ServiceRibbonApplication.class, args );
  }

}

有問(wèn)題,最終發(fā)現(xiàn)@EnableDiscoveryClient標(biāo)簽無(wú)法注冊(cè)到注冊(cè)中心,百度@EnableDiscoveryClient,得到的結(jié)論是

@EnableDiscoveryClient和@EnableEurekaClient一樣,能夠讓注冊(cè)中心能夠發(fā)現(xiàn),掃描到改服務(wù),不同點(diǎn):@EnableEurekaClient只適用于Eureka作為注冊(cè)中心,@EnableDiscoveryClient 可以是Eureka或其他(consul、zookeeper等)注冊(cè)中心 。

具體原因不去分析,這里先直接切換為@EnableEurekaClient注釋

@EnableEurekaClient在哪個(gè)包里簡(jiǎn)直是迷一樣的存在,不同版本的spring cloud 中位置不同,我使用Greenwich.SR1,需要引入下面的包


  org.springframework.cloud
  spring-cloud-starter-netflix-eureka-client

修改主程序注釋

import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;


@SpringBootApplication
@EnableEurekaClient
@EnableHystrix //我開(kāi)啟了段容器
public class ServiceRibbonApplication {

  public static void main(String[] args) {
    SpringApplication.run( ServiceRibbonApplication.class, args );
  }

}

這里提一句在 Greenwich.SR1中段容器在下面包中


  org.springframework.cloud
  spring-cloud-starter-netflix-hystrix

重新啟動(dòng)ribbon,發(fā)現(xiàn)控制臺(tái)輸入

2019-06-15 13:08:06.668 INFO 14796 --- [      main] com.netflix.discovery.DiscoveryClient  : Getting all instance registry info from the eureka server
2019-06-15 13:08:06.878 INFO 14796 --- [      main] com.netflix.discovery.DiscoveryClient  : The response status is 200
2019-06-15 13:08:06.882 INFO 14796 --- [      main] com.netflix.discovery.DiscoveryClient  : Starting heartbeat executor: renew interval is: 30
2019-06-15 13:08:06.886 INFO 14796 --- [      main] c.n.discovery.InstanceInfoReplicator   : InstanceInfoReplicator onDemand update allowed rate per min is 4
2019-06-15 13:08:06.891 INFO 14796 --- [      main] com.netflix.discovery.DiscoveryClient  : Discovery Client initialized at timestamp 1560575286889 with initial instances count: 2
2019-06-15 13:08:06.894 INFO 14796 --- [      main] o.s.c.n.e.s.EurekaServiceRegistry    : Registering application SERVICE-RIBBON with eureka with status UP
2019-06-15 13:08:06.896 INFO 14796 --- [      main] com.netflix.discovery.DiscoveryClient  : Saw local status change event StatusChangeEvent [timestamp=1560575286896, current=UP, previous=STARTING]
2019-06-15 13:08:06.900 INFO 14796 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient  : DiscoveryClient_SERVICE-RIBBON/DESKTOP-FJQITE3:service-ribbon:8764: registering service...
2019-06-15 13:08:06.958 INFO 14796 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient  : DiscoveryClient_SERVICE-RIBBON/DESKTOP-FJQITE3:service-ribbon:8764 - registration status: 204
2019-06-15 13:08:06.961 INFO 14796 --- [      main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8764 (http) with context path ''
2019-06-15 13:08:06.963 INFO 14796 --- [      main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8764
2019-06-15 13:08:06.967 INFO 14796 --- [      main] cn.meylink.ServiceRibbonApplication   : Started ServiceRibbonApplication in 5.868 seconds (JVM running for 7.204)

查看Eureka

詳解SpringCloud Ribbon 負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑

瀏覽器測(cè)試訪問(wèn)成功!?。?/p>

五,附件:Greenwich.SR1 版中常用依賴(lài)

有好多問(wèn)題都是因?yàn)?不同版本中引入不正確的依賴(lài)導(dǎo)致,這里列出 Greenwich.SR1 版中常用依賴(lài),這里都不需要指定版本號(hào)


  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-client
  
  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-eureka-server
  
  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-hystrix
  
  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-ribbon
  
  
  
    org.springframework.cloud
    spring-cloud-starter-openfeign
  
  
  
    org.springframework.cloud
    spring-cloud-config-server
  
  
  
    org.springframework.cloud
    spring-cloud-starter-config
  
  
  
    org.springframework.cloud
    spring-cloud-starter-netflix-zuul
  
  
    org.springframework.boot
    spring-boot-starter-test
    test
  

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)頁(yè)標(biāo)題:詳解SpringCloudRibbon負(fù)載均衡通過(guò)服務(wù)器名無(wú)法連接的神坑
網(wǎng)頁(yè)網(wǎng)址:http://weahome.cn/article/jjccjh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部