激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - JAVA教程 - Spring Cloud構建Eureka應用的方法

Spring Cloud構建Eureka應用的方法

2021-04-10 13:17blueskyX JAVA教程

這篇文章主要介紹了Spring Cloud構建Eureka應用的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

eureka 介紹

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

程序結構

Spring Cloud構建Eureka應用的方法

創建eureka server

maven依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<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

?
1
2
server:
 port: 8761

開啟eureka服務注解 @enableeurekaserver

?
1
2
3
4
5
6
7
8
@enableeurekaserver
@springbootapplication
public class ekserverapplication {
 
  public static void main(string[] args) {
    new springapplicationbuilder(ekserverapplication.class).run(args);
  }
}

啟動springboot

?
1
2
3
4
[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

 

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

?
1
2
3
4
eureka:
 client:
  registerwitheureka: false
  fetchregistry: false

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

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

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

Spring Cloud構建Eureka應用的方法

創建服務提供者

依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
<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服務地址

?
1
2
3
4
5
6
7
8
9
10
11
server:
 port: 8080
spring:
 application:
  name: ek-provider
eureka:
 instance:
  hostname: localhost
 client:
   serviceurl:
    defaultzone: http://localhost:8761/eureka/

創建一個 rest 服務

?
1
2
3
4
5
6
7
8
@restcontroller
public class hellocontroller {
 
  @requestmapping("/hello")
  public string hello(httpservletrequest request) {
    return "hello:" + request.getrequesturl();
  }
}

開啟eureka客戶端注解 @enableeurekaserver

?
1
2
3
4
5
6
7
8
@enableeurekaclient
@springbootapplication
public class ekproviderapplication {
  public static void main(string[] args) {
    new springapplicationbuilder(ekproviderapplication.class).run(args);
 
  }
}

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

Spring Cloud構建Eureka應用的方法

創建服務調用者

依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
<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服務地址

?
1
2
3
4
5
6
7
8
9
10
11
server:
 port: 9000
spring:
 application:
  name: ek-invoke
eureka:
 instance:
  hostname: localhost
 client:
   serviceurl:
    defaultzone: http://localhost:8761/eureka/

編寫一個 rest 服務 調用服務提供者的 “/hello”

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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

?
1
2
3
4
5
6
7
8
@enableeurekaclient
@springbootapplication
public class ekinvokeapplication {
 
  public static void main(string[] args) {
    new springapplicationbuilder(ekinvokeapplication.class).run(args);
  }
}

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

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

Spring Cloud構建Eureka應用的方法

總結

eureka 服務器 通過心跳鏈接來維護最新的注冊信息,這些注冊信息都保存在內存中。

eureka 服務提供者 主要進行:

  1. 向 eureka 服務器注冊服務
  2. 發送心跳到 eureka服務器,使 eureka 服務器注冊信息保持最新
  3. 向服務器獲取最新的注冊列表,通常 eureka 客戶端既是服務提供者也是服務調用者,但其主要職責為服務提供。

eureka 服務調用者 主要進行:

  1. 向 eureka 服務器注冊服務
  2. 發送心跳到 eureka服務器,使 eureka 服務器注冊信息保持最新
  3. 向服務器獲取最新的注冊列表,通常 eureka 客戶端既是服務提供者也是服務調用者,但其主要職責為發現與調用。

源碼地址:https://github.com/xc564864894/springcloud/tree/master/eureka(%e4%b8%80)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://my.oschina.net/u/3444403/blog/1627531

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本娇小videos高潮 | 91精品国产综合久久婷婷香蕉 | 黄色va视频 | 91av在线免费播放 | 久久精品亚洲精品国产欧美kt∨ | 欧美日韩一 | 91短视频在线视频 | 在线播放黄色片 | 成人做爰s片免费看网站 | 性少妇freeseⅹbbwhd | 色中色在线播放 | 国产亚洲精品综合一区91 | 亚洲视频精选 | 91婷婷射| 欧美精品国产综合久久 | 亚洲午夜电影 | 精品999www| 狠狠干狠狠操 | 视频一区二区精品 | av在线播放免费观看 | 欧美一级鲁丝片免费看 | 精品国产一区二区三区久久久蜜月 | 日韩app | 日韩999 | 国产成人精品日本亚洲语音 | 久久久久999 | 成人国产精品齐天大性 | 国产精品成人一区二区三区吃奶 | 精品成人国产在线观看男人呻吟 | 黄污免费网站 | 91短视频版高清在线观看免费 | 一区二区三区小视频 | 欧美成年性h版影视中文字幕 | 一区二区三区四区视频在线观看 | 日韩视频一 | 色综av| av一道本 | 久久电影一区二区 | 91精品国产免费久久 | 91九色论坛 | 国产精品久久久久永久免费观看 |