亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud如何構建Eureka應用

發布時間:2021-08-05 15:28:48 來源:億速云 閱讀:148 作者:小新 欄目:編程語言

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

Eureka 介紹

Eureka提供基于REST的服務,在集群中主要用于服務管理。Eureka提供了基于Java語言的客戶端組件,客戶端組件實現了負載均衡的功能,為業務組件的集群部署創造了條件。使用該框架,可以將業務組件注冊到Eureka容器中,這些業務組件可進行集群部署,Eureka主要維護這些服務的列表并自動檢查它們的狀態。

程序結構

Spring Cloud如何構建Eureka應用

創建Eureka Server

maven依賴

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Dalston.SR1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka-server</artifactId>
    </dependency>
  </dependencies>

更改spring boot 啟動端口 在application.yml

server:
 port: 8761

開啟Eureka服務注解 @EnableEurekaServer

@EnableEurekaServer
@SpringBootApplication
public class EKServerApplication {

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

啟動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)

啟動期間會出現一個無法連接到服務器的異常 這個是由于Eureka在啟動的時候會把自己當作一個客戶端去服務器抓取注冊信息

復制代碼 代碼如下:


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

增加如下配置啟動時便不會再出現該異常

eureka:
 client:
  registerWithEureka: false
  fetchRegistry: false

registerWithEureka 聲明是否將自己的信息注冊到Eureka服務器,默認值為true。

fetchRegistry 聲明是否到Eureka服務器中抓取注冊信息,默認值為true。

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

Spring Cloud如何構建Eureka應用

創建服務提供者

依賴

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>

在 application.yml 中配置端口、Eureka實例名稱和Eureka服務地址

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

創建一個 REST 服務

@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);

  }
}

啟動之后在 Eureka 控制臺可以看到服務提供者已經在 Eureka 中注冊

Spring Cloud如何構建Eureka應用

創建服務調用者

依賴

<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-ribbon</artifactId>
    </dependency>

在 application.yml 中配置端口、Eureka實例名稱和Eureka服務地址

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

編寫一個 REST 服務 調用服務提供者的 “/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);
  }
}

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

開啟Eureka客戶端注解 @EnableEurekaServer

@EnableEurekaClient
@SpringBootApplication
public class EkInvokeApplication {

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

啟動之后在 Eureka 控制臺可以看到服務調用者已經在 Eureka 中注冊

之后在瀏覽器訪問服務調用者的 “invoke” 接口 返回如下

Spring Cloud如何構建Eureka應用

以上是“Spring Cloud如何構建Eureka應用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁海县| 贵阳市| 连江县| 旺苍县| 松桃| 平昌县| 堆龙德庆县| 德惠市| 佛学| 惠水县| 虞城县| 临汾市| 革吉县| 大悟县| 琼结县| 额尔古纳市| 边坝县| 巴彦县| 隆回县| 夏河县| 搜索| 漳平市| 文昌市| 酒泉市| 灵丘县| 呼玛县| 莱阳市| 洞口县| 达孜县| 揭阳市| 平江县| 阆中市| 肥东县| 泰和县| 开原市| 泰顺县| 中宁县| 平度市| 河西区| 将乐县| 高雄市|