自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Spring Cloud Eureka 入門之服務注冊中心詳解 ...

企業(yè)動態(tài)
Eureka,這里是 Spring Cloud Eureka 的簡稱,是 Spring Cloud Netflix 組件之一。Spring Cloud Netflix 中核心的組件包括了服務治理(Eureka),服務容斷(Hystrix),路由(Zuul)和客戶端負載均衡(Ribbon)。在系列第三篇,服務消費者講解會涉及到 Ribbon 的使用。

 [[195583]]

本文提綱

1. Eureka 服務治理

1.1 什么是 Eureka

1.2 Eureka 集群架構(gòu)

2. 運行 Eureka 工程 springcloud-eureka-server

3. 詳解 Eureka 工程 springcloud-eureka-server

一、Eureka 服務治理

1.1 什么是 Eureka

Eureka,這里是 Spring Cloud Eureka 的簡稱,是 Spring Cloud Netflix 組件之一。Spring Cloud Netflix 中核心的組件包括了服務治理(Eureka),服務容斷(Hystrix),路由(Zuul)和客戶端負載均衡(Ribbon)。在系列第三篇,服務消費者講解會涉及到 Ribbon 的使用。

回到 Spring Cloud Eureka,是基于 Netflix Eureka (Netflix 是 Java 實現(xiàn)的開源軟件)。服務治理(Eureka)包括服務注冊、服務發(fā)現(xiàn)和服務檢測監(jiān)控等,自然本文介紹下 Eureka 作為服務注冊中心。

1.2 Eureka 架構(gòu)

Eureka 作為服務治理,必然滿足下面幾點:

  • 服務本身不存在單點故障,
  • 支持集群,即高可用性
  • 服務與服務之間通過服務注冊中心找到彼此實例

作為服務端(即服務注冊中心),包括

  • 管理服務實例
  • 提供服務注冊或下線
  • 提供服務發(fā)現(xiàn)
  • 提供服務注冊表至兩類客戶端(即服務提供者和消費者)

作為客戶端(即服務提供者和消費者),包括

  • 連接服務注冊中心
  • 向服務注冊中心注冊或者下線服務實例
  •  向服務注冊中心或服務注冊緩存列表查詢服務

Eureka 集群架構(gòu)如圖所示:

二、運行工程

運行 Eureka 工程 springcloud-eureka-server

運行環(huán)境:JDK 7 或 8,Maven 3.0+

技術(shù)棧:Spring Cloud Dalston.SR1、 spring-cloud-netflix 1.3.1、Spring Boot 1.5.4

1. git clone 下載工程 springcloud-learning-example

項目地址見 GitHub - https://github.com/JeffLi1993/springcloud-learning-example

git clone https://github.com/JeffLi1993/springcloud-learning-example.git

2. Maven 編譯安裝這個工程:

  1. cd springcloud-learning-example 
  2. mvn clean install 

3. 運行 springcloud-eureka-server Eureka 工程

右鍵 Main 函數(shù) Run Eureka Server 啟動類 EurekaServerApplication,啟動服務注冊中心工程。

EurekaServerApplication 類地址:/springcloud-learning-example/springcloud-eureka-sample/springcloud-eureka-server/src/main/java/org/spring/springboot/EurekaServerApplication.java

控制臺 Console 看到這類信息,代表啟動成功:

  1. 2017-06-30 10:32:47.549  INFO 2977 --- [      Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server2017-06-30 10:32:47.625  INFO 2977 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8888 (http) 
  2. 2017-06-30 10:32:47.626  INFO 2977 --- [           main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8888 
  3. 2017-06-30 10:32:47.632  INFO 2977 --- [           main] o.s.springboot.EurekaServerApplication   : Started EurekaServerApplication in 23.168 seconds 

4. 訪問 Eureka 注冊中心可視化界面

打開瀏覽器,訪問 http://localhost:8888/ ,如圖所示

可以看到主體信息包括:

  • 系統(tǒng)狀態(tài):環(huán)境、運行時間、更新時間等
  • 注冊信息:服務名、服務地址、服務狀態(tài)
  • 基本信息:環(huán)境、內(nèi)存、副本信息
  • 實例信息:IP、端口

三、工程代碼詳解

詳解 Eureka 工程 springcloud-eureka-server

1.springcloud-eureka-server 工程目錄結(jié)構(gòu)

  1. ├── pom.xml└── src 
  2.     └── main 
  3.         ├── java 
  4.         │   └── org 
  5.         │       └── spring 
  6.         │           └── springcloud 
  7.         │               ├── EurekaServerApplication.java 
  8.         └── resources 
  9.             └── application.yml 

EurekaServerApplication.java Eureka Server 啟動類

application.yml 配置文件

2. pom.xml 配置

  1. <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  2.          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ma ... gt%3B 
  3.      
  4. <modelVersion>4.0.0</modelVersion>     
  5. <groupId>springcloud</groupId>     
  6. <artifactId>springcloud-eureka-server</artifactId>     
  7. <version>0.0.1-SNAPSHOT</version>     
  8.  
  9. <name>springcloud-eureka-server :: Spring Cloud Eureka 服務注冊中心</name>     
  10.  
  11. <!-- Spring Boot 啟動父依賴 --><parent><groupId>org.springframework.boot</groupId>         
  12. <artifactId>spring-boot-starter-parent</artifactId>         
  13. <version>1.5.4.RELEASE</version>     
  14. </parent> 
  15.  
  16.  
  17.     <dependencies> 
  18.         <!-- Spring Cloud Netflix Eureka Server 依賴 --> 
  19.         <dependency> 
  20.             <groupId>org.springframework.cloud</groupId>             
  21.     <artifactId>spring-cloud-starter-eureka-server</artifactId>         
  22.     </dependency> 
  23.          
  24.      
  25.     <!-- Spring Boot Test 依賴 --> 
  26.         <dependency> 
  27.             <groupId>org.springframework.boot</groupId>             
  28.     <artifactId>spring-boot-starter-test</artifactId>           <scope>test</scope>         
  29.     </dependency> 
  30.      
  31.     </dependencies> 
  32.     <dependencyManagement> 
  33.         <dependencies> 
  34.             <!-- Spring Cloud Netflix 依賴 --> 
  35.             <dependency> 
  36.                 <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-netflix</artifactId>                 
  37.     <version>1.3.1.RELEASE</version>                <type>pom</type>                 
  38.     <scope>import</scope>             
  39.     </dependency> 
  40.         </dependencies> 
  41.     </dependencyManagement> 
  42.     <build> 
  43.         <plugins> 
  44.             <plugin> 
  45.                 <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                 
  46.     <configuration> 
  47.                     <source>1.8</source>                     
  48.     <target>1.8</target>                 
  49.     </configuration> 
  50.             </plugin> 
  51.         </plugins> 
  52.     </build> 
  53. </project> 

使用的依賴是

  • spring-cloud-netflix 1.3.1 是 Spring Cloud Dalston.SR1 版本。
  • spring-cloud-starter-eureka-server Eureka Server 模塊依賴

上面提到的客戶端負載均衡 Ribbon ,可以依賴樹中看出 spring-cloud-starter-eureka-server 依賴了 Ribbon 相關(guān)的庫。因為一般 eureka 本身作為服務自注冊實現(xiàn)高可用,也可以作為客戶端調(diào)用其他服務。

3. application.yml 配置

  1. server: 
  2.   port: 8888 # 服務端口eureka: 
  3.   instance: 
  4.     hostname: localhost # 設置主機名 
  5.   client: 
  6.     registerWithEureka: false # 是否向 Eureka 注冊服務。該應用為服務注冊中心,不需要自注冊,設置為 false 
  7.     fetchRegistry: false      # 是否檢索服務。該應用為服務注冊中心,職責為注冊和發(fā)現(xiàn)服務,無需檢索服務,設置為 false 
  8.   server: 
  9.     waitTimeInMsWhenSyncEmpty: 0 # 設置同步為空時的等待時間。默認 5 * MINUTES 

application.property,可以看下面的配置解釋:

  • server.port 設置工程服務端口
  • eureka.instance.hostname Eureka 實例主機名
  • eureka.client.registerWithEureka 是否向 Eureka 注冊服務。服務注冊中心服務,沒有作為集群,所以不需要自注冊,設置為 false
  • eureka.client.fetchRegistry 是否檢索服務。該應用為服務注冊中心,職責為注冊和發(fā)現(xiàn)服務,無需檢索服務,設置為 false
  • eureka.server.waitTimeInMsWhenSyncEmpty 設置同步為空時的等待時間。默認 5 * MINUTES

4.注冊中心應用啟動類

  1. /** 
  2.  * Spring Boot Eureka Server 應用啟動類 
  3.  * 
  4.  * Created by bysocket on 21/06/17. 
  5.  */ 
  6.  
  7. @EnableEurekaServer     // Eureka Server 標識 
  8. @SpringBootApplication  // Spring Boot 應用標識 
  9. public class EurekaServerApplication {     
  10.  
  11. public static void main(String args) {        // 程序啟動入口 
  12.    
  13.        // 啟動嵌入式的 Tomcat 并初始化 Spring 環(huán)境及其各 Spring 組件 
  14.         SpringApplication.run(EurekaServerApplication.class,args); 
  15.         
  16.     } 

@EnableEurekaServer 標志該應用作為 Eureka Server ,并會自動化讀取相關(guān)配置。

四、小結(jié)

此小章節(jié)介紹了如何 Eureka 作為服務注冊中心 Server,下一小結(jié)講下 服務提供者詳解 具體是如何向服務注冊中心注冊自己的。

【本文為51CTO專欄作者“李強強”的原創(chuàng)稿件,轉(zhuǎn)載請通過51CTO聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-07-11 14:48:33

Spring Clou服務提供者

2017-08-18 15:14:04

Spring Clou服務消費者

2025-03-31 08:35:00

Eureka微服務架構(gòu)

2017-06-25 13:33:25

Spring Clou微服務架構(gòu)

2024-11-21 16:09:22

2023-04-28 07:52:14

CAPEureka注冊中心

2019-08-23 10:34:05

微服務Eureka架構(gòu)

2020-06-29 07:58:18

ZooKeeperConsul 注冊中心

2024-07-10 10:51:39

SpringEureka數(shù)據(jù)中心

2020-01-10 10:58:34

ZooKeeperEureka注冊中心

2021-04-28 08:05:30

SpringCloudEureka服務注冊

2021-01-14 07:54:19

Spring Clou應用路由

2024-09-14 09:21:55

Spring微服務服務間調(diào)用

2024-08-05 10:03:53

2018-07-13 09:55:35

Eureka閉源Spring Clou

2022-02-07 07:10:32

服務注冊功能

2021-04-20 17:20:59

SpringColud EurekaNetflix開發(fā)

2023-12-23 18:04:40

服務Eureka工具

2018-03-02 16:11:29

Spring Clou分布式服務跟蹤

2021-08-04 11:54:25

Nacos注冊中心設計
點贊
收藏

51CTO技術(shù)棧公眾號