1. 程式人生 > >SpringCloud(二) 服務註冊與發現Eureka

SpringCloud(二) 服務註冊與發現Eureka

圖片 borde 引入 vat red images .cn epo round

1.eureka是幹什麽的?

上篇說了,微服務之間需要互相之間通信,那麽通信就需要各種網絡信息,我們可以通過使用硬編碼的方式來進行通信,但是這種方式顯然不合適,不可能說一個微服務的地址發生變動,那麽整個系統的所有微服務都要重新部署,顯然是不合適的,那麽我們需要一個服務發現機制,服務消費者通過這種機制來獲取服務提供者的網絡信息,並且服務提供者的網絡信息即使變化,服務消費者也不必改變配置。Eureka提供的就是這樣一種服務註冊與發現的功能,也就是所有的服務在啟動的時候都需要把自己的網絡信息告訴Eureka以供所有服務使用

服務提供者、服務消費者、Eureka三者之間的關系

(1)服務提供者在啟動的時候,將自己的網絡信息註冊到Eureka,Eureka存貯這些信息

(2)服務提供者與Eureka之間定時的發送心跳告訴Eureka我還在,如果長時間沒有發送心跳,那麽就表示該服務已經停止,就會註銷該服務

(3)服務消費者可以通過Eureka查詢服務提供者的網絡地址,通過該地址查詢調用服務提供者的接口

2.編寫Eureka server

我們都用maven來管理依賴

1.創建maven工程並添加依

我用的全是最新的版本,對於不同springcloud版本和SpringBoot的兼容不同,詳細看5

技術分享圖片
  1 <!--添加eureka-server依賴-->
  2         <dependency>
  3             <groupId>org.springframework.cloud</groupId>
  4             <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
  5         </dependency><!--添加eureka-client依賴,這個依賴在這裏可以不用加,如果但是如果是多個Eureka server 需要添加,因為Eureka之間需要互相註冊-->
  6
<dependency> 7 <groupId>org.springframework.cloud</groupId> 8 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 9 </dependency> 10 <!--引入SpringCloud的依賴--> 11 <dependencyManagement> 12 <dependencies> 13 <dependency> 14 <groupId>org.springframework.cloud</groupId> 15 <artifactId>spring-cloud-dependencies</artifactId> 16 <version>Finchley.SR1</version> 17 <type>pom</type> 18 <scope>import</scope> 19 </dependency> 20 </dependencies> 21 </dependencyManagement> 22 23 <!-- 註意: 這裏必須要添加,否則各種依賴有問題 推測問題在於目前部分依賴沒有上傳到中央倉庫 --> 24 <repositories> 25 <repository> 26 <id>spring-milestones</id> 27 <name>Spring Milestones</name> 28 <url>http://repo.spring.io/milestone</url> 29 <snapshots> 30 <enabled>false</enabled> 31 </snapshots> 32 </repository> 33 </repositories>
點擊查看代碼

2.編寫配置

  1 server:
  2   port: 8080
  3   tomcat:
  4     uri-encoding: utf-8
  5 eureka:
  6   client:
  7     #是否將自己註冊到Eureka Server,默認為true,由於當前應用就是Eureka,所以設置成false
  8     register-with-eureka: false
  9     #表示是否從Eueka Server獲取註冊信息,默認為true,由於當前是單節點的Eureka Server,沒有其他Eureka Server ,故而設置為false
 10     fetch-registry: false
 11     service-url:
 12       #這裏是交互的地址,所有的服務註冊與查詢服務都需要通過這個地址,這裏可以設置多個地址,用逗號隔開
 13       defaultZone: http://localhost:8080/eureka/
 14   server:
 15     enableSelfPreservation: false     #關閉做我保護模式
 16 
3.編寫啟動類

@SpringBootApplication
@EnableEurekaServer  //啟動一個服務註冊中心提供給其他應用進行對話
public class TouristRegisterCenter {
    public static void main(String[] args) {
        SpringApplication.run(TouristRegisterCenter.class, args);
    }
}

整個啟動類只是加了一個@EnableEurekaServer 註解

4.啟動

然後我們可以看見這樣的頁面就說明恭喜你成功了技術分享圖片

但是註意看instances currently registered with Eureka 這裏面是我們註冊的服務,這是空的(廢話,我還沒註冊呢技術分享圖片),頁面內容英語稍微好一點看看應該就明白了,實在不行就百度翻譯吧


技術分享圖片技術分享圖片

5。關於版本

關於springcloud版本

技術分享圖片

這只是springcloud版本,因為springcloud基於springBoot,所以springcloud與SpringBoot的版本最好對應,詳情可以看一下GitHub上springcloud的信息,附上地址https://github.com/spring-projects/spring-cloud/wiki/Spring-Cloud-Finchley-Release-Notes

6.結束

其實關於Eureka server 總結下來就是

1.添加依賴

2.配置

3.在啟動類添加註解,聲明這是一個Eureka server


就是這麽簡單。。。。。。

SpringCloud(二) 服務註冊與發現Eureka