首先,咱們來解釋下什麼是Eureka?web
Eureka:基於REST服務的分佈式中間件,主要用於服務管理。服務直接的調用並非經過Eureka,只是維護一些服務的列表。spring
對比上面的圖,咱們舉一個詳細的例子來講明下,咱們能夠將Eureka服務器看做是咱們如今的電商平臺(好比京東),Eureka客戶端的服務提供者看做是供應商(這裏咱們選擇華爲),Eureka客戶端服務器
的服務調用者就是咱們的用戶了。好,理解了上面的架構圖,讓咱們一塊來實現一個李白(服務調用者)在京東(Eureka服務器)購買華爲(Eurake客戶端的服務提供者)手機的小案例。架構
首先,咱們建立3個簡單的maven項目app
建立好以後,咱們首先來搭建京東這個Eureka服務器,在pom.xml中加入Eureka的依賴,以下負載均衡
<dependencyManagement>框架
<dependencies>maven
<dependency>分佈式
<groupId>org.springframework.cloud</groupId>測試
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
再編寫一個啓動類
@SpringBootApplication
@EnableEurekaServer
public class StartUp {
public static void main(String[] args) {
new SpringApplicationBuilder(StartUp.class).web(true).run(args);
}
}
這時候,咱們啓動發現報錯,這是由於,京東這個項目也註冊到Eureka服務端,服務端默認端口8761,所以咱們須要設置一些Eureka的配置
此時咱們再啓動項目,就會發現啓動正常了,咱們訪問,localhost:8761查看Eureka
好,到這一步,Eureka到服務器咱們已經搭建好了,下面咱們將華爲註冊到京東上去,操做eureka-huawei項目,一樣,咱們首先在pom.xml中加入依賴
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<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>
</dependencies>
編寫啓動類
咱們提供一個手機購買的方法
建立application.yml文件,將咱們華爲項目註冊進入京東(Eureka服務器)
這時候咱們再啓動華爲項目,再次訪問localhost:8761,這時候咱們就會發現華爲這個Eureka服務提供商被咱們註冊進來了
測試咱們的手機功能:localhost:8000/phone/1
最後,咱們來操做咱們的eureka-customer項目,一樣先添加依賴,這裏咱們多引入了一個ribbon框架,由於如今大部分服務器都是負載均衡,咱們使用多時候不須要知道具體是由哪一個服務器提供,
啓動類同huawei項目相同,這裏再也不重複
yml文件只是改下名稱,一樣註冊到咱們Eureka服務器
這裏咱們用restTemplate來調用服務,編寫一個配置類,提供RestTemplate
最後,咱們再編寫controller,寫一個購買手機服務,用來購買咱們華爲提供的商品
好,如今咱們再啓動customer項目,查看localhost:8761
這時,咱們的李白也註冊了一個京東帳戶了,接下來,他就能夠買產品了,咱們調用http://localhost:9000/buyPhone/3,發現他成功的購買了華爲的商品
到此一個簡單的Eureka項目已經編寫完畢