細水長流——Eureka實現Demo

首先,咱們來解釋下什麼是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項目已經編寫完畢

相關文章
相關標籤/搜索