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

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

SpringCloud如何構(gòu)建Eureka應(yīng)用

小編給大家分享一下Spring Cloud如何構(gòu)建Eureka應(yīng)用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),丹寨企業(yè)網(wǎng)站建設(shè),丹寨品牌網(wǎng)站建設(shè),網(wǎng)站定制,丹寨網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,丹寨網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

Eureka 介紹

Eureka提供基于REST的服務(wù),在集群中主要用于服務(wù)管理。Eureka提供了基于Java語言的客戶端組件,客戶端組件實(shí)現(xiàn)了負(fù)載均衡的功能,為業(yè)務(wù)組件的集群部署創(chuàng)造了條件。使用該框架,可以將業(yè)務(wù)組件注冊(cè)到Eureka容器中,這些業(yè)務(wù)組件可進(jìn)行集群部署,Eureka主要維護(hù)這些服務(wù)的列表并自動(dòng)檢查它們的狀態(tài)。

程序結(jié)構(gòu)

Spring Cloud如何構(gòu)建Eureka應(yīng)用

創(chuàng)建Eureka Server

maven依賴

  
    
      
        org.springframework.cloud
        spring-cloud-dependencies
        Dalston.SR1
        pom
        import
      
    
  

  
    
      org.springframework.cloud
      spring-cloud-starter-eureka-server
    
  

更改spring boot 啟動(dòng)端口 在application.yml

server:
 port: 8761

開啟Eureka服務(wù)注解 @EnableEurekaServer

@EnableEurekaServer
@SpringBootApplication
public class EKServerApplication {

  public static void main(String[] args) {
    new SpringApplicationBuilder(EKServerApplication.class).run(args);
  }
}

啟動(dòng)springboot

[Thread-11] o.s.c.n.e.server.EurekaServerBootstrap: Initialized server context
[main] s.b.c.e.t.TomcatEmbeddedServletContainer: Tomcat started on port(s): 8761 (http)
[main] .s.c.n.e.s.EurekaAutoServiceRegistration: Updating port to 8761
[main] c.b.firstEkServer.EKServerApplication: Started EKServerApplication in 8.594 seconds (JVM running for 9.523)

啟動(dòng)期間會(huì)出現(xiàn)一個(gè)無法連接到服務(wù)器的異常 這個(gè)是由于Eureka在啟動(dòng)的時(shí)候會(huì)把自己當(dāng)作一個(gè)客戶端去服務(wù)器抓取注冊(cè)信息

復(fù)制代碼 代碼如下:


com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

增加如下配置啟動(dòng)時(shí)便不會(huì)再出現(xiàn)該異常

eureka:
 client:
  registerWithEureka: false
  fetchRegistry: false

registerWithEureka 聲明是否將自己的信息注冊(cè)到Eureka服務(wù)器,默認(rèn)值為true。

fetchRegistry 聲明是否到Eureka服務(wù)器中抓取注冊(cè)信息,默認(rèn)值為true。

在瀏覽器中訪問 http://localhost:8761 查看Eureka控制臺(tái) 輸入圖片說明

Spring Cloud如何構(gòu)建Eureka應(yīng)用

創(chuàng)建服務(wù)提供者

依賴


      org.springframework.cloud
      spring-cloud-starter-config
    
    
      org.springframework.cloud
      spring-cloud-starter-eureka
    
    
      org.springframework.cloud
      spring-cloud-starter-ribbon
    

在 application.yml 中配置端口、Eureka實(shí)例名稱和Eureka服務(wù)地址

server:
 port: 8080
spring:
 application:
  name: ek-provider
eureka:
 instance:
  hostname: localhost
 client:
   serviceUrl:
    defaultZone: http://localhost:8761/eureka/

創(chuàng)建一個(gè) REST 服務(wù)

@RestController
public class HelloController {

  @RequestMapping("/hello")
  public String hello(HttpServletRequest request) {
    return "hello:" + request.getRequestURL();
  }
}

開啟Eureka客戶端注解 @EnableEurekaServer

@EnableEurekaClient
@SpringBootApplication
public class EkProviderApplication {
  public static void main(String[] args) {
    new SpringApplicationBuilder(EkProviderApplication.class).run(args);

  }
}

啟動(dòng)之后在 Eureka 控制臺(tái)可以看到服務(wù)提供者已經(jīng)在 Eureka 中注冊(cè)

Spring Cloud如何構(gòu)建Eureka應(yīng)用

創(chuàng)建服務(wù)調(diào)用者

依賴


      org.springframework.cloud
      spring-cloud-starter-config
    
    
      org.springframework.cloud
      spring-cloud-starter-eureka
    
    
      org.springframework.cloud
      spring-cloud-starter-ribbon
    

在 application.yml 中配置端口、Eureka實(shí)例名稱和Eureka服務(wù)地址

server:
 port: 9000
spring:
 application:
  name: ek-invoke
eureka:
 instance:
  hostname: localhost
 client:
   serviceUrl:
    defaultZone: http://localhost:8761/eureka/

編寫一個(gè) REST 服務(wù) 調(diào)用服務(wù)提供者的 “/hello”

@RestController
@Configuration
public class InvokeController {

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

  @RequestMapping("/invoke")
  public String invoke() {
    RestTemplate restTemplate = getRestTemplate();
    return restTemplate.getForObject("http://ek-provider/hello", String.class);
  }
}

在傳統(tǒng)模式中,我們通常會(huì)用Apache中的Httpclient來調(diào)用 REST 服務(wù),在這里我們使用 Spring 提供調(diào)用 REST 服務(wù)的組件 RestTemplate。 RestTemplate 本身并不具備調(diào)用分布式服務(wù)的能力,但是RestTemplate的bean被@LoadBalanced注解修飾后,這個(gè)RestTemplate實(shí)例就具有訪問分布式服務(wù)的能力,這得益于 Spring 為其提供的各種攔截器

開啟Eureka客戶端注解 @EnableEurekaServer

@EnableEurekaClient
@SpringBootApplication
public class EkInvokeApplication {

  public static void main(String[] args) {
    new SpringApplicationBuilder(EkInvokeApplication.class).run(args);
  }
}

啟動(dòng)之后在 Eureka 控制臺(tái)可以看到服務(wù)調(diào)用者已經(jīng)在 Eureka 中注冊(cè)

之后在瀏覽器訪問服務(wù)調(diào)用者的 “invoke” 接口 返回如下

Spring Cloud如何構(gòu)建Eureka應(yīng)用

以上是“Spring Cloud如何構(gòu)建Eureka應(yīng)用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文題目:SpringCloud如何構(gòu)建Eureka應(yīng)用
文章路徑:http://weahome.cn/article/iishdd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部