SpringCloud之服務註冊

hahadelphi發表於2021-09-09

類似於DUBBO 的zookeeper, SpringCloud本身提供一套服務註冊中心--eureka

與zookeeper的區別在於

1:zookeeper本身就是一個應用,安裝即可用;eureka其實是一個jar,需要新建一個maven專案,以及手動配置埠和pom檔案。釋出後即可使用

2:zookeeper本身不提供web端展示,需要重新安裝配置dubbo客戶端或者dubbokeeper實時監控服務;eureka釋出成功後,即可有對應的spring 服務監控頁面。

 

搭建SpringCloud的服務註冊中心-eureka

1.新建maven專案eureka-server,eureka-server是作為一個子專案,目錄結構如下

圖片描述

eureka-server還是比較簡單的,主要需要修改這三個檔案:EurekaServerApplication,application.yml,pom.xml

1.pom.xml

圖片描述


         UTF-8
         UTF-8
         1.8
     
 
     
         <!--eureka server --&gt
         
             org.springframework.cloud
             spring-cloud-starter-eureka
         
         
             org.springframework.cloud
             spring-cloud-starter-eureka-server
         
         <!-- spring boot test--&gt
         
             org.springframework.boot
             spring-boot-starter-test
             test
         
     

     
         
             
                 org.springframework.cloud
                 spring-cloud-dependencies
                 Dalston.RC1
                 pom
                 import
             
         
     

圖片描述

spring-cloud-starter-eureka-server:erueka註冊中心核心依賴包
當然,作為一個springboot專案,需要依賴於:

         org.springframework.boot
         spring-boot-starter-parent
         1.5.3.RELEASE
          <!-- lookup parent from repository --&gt
  

所有的子專案都是springcoot專案,所以該依賴放在了父專案的pom中

2.application.yml

springboot啟動時,會自動掃描該配置檔案,當然,application.properties也是可以的

圖片描述

 server:
    port: 8761
 
 eureka:
    instance:
        hostname: localhost
    client:
        registerWithEureka: false
        fetchRegistry: false
        serviceUrl:
            defaultZone: {eureka.instance.hostname}:${server.port}/eureka/

圖片描述

其中:server.port:定義埠號

        eureka.instance.hostname:定義eureka為本地ip,釋出測試或者線上環境視情況配置

   eureka.client.registerWithEureka:是否註冊本身,這裡不需要。所以為false

           eureka.client.fetchRegister:是否從伺服器獲取註冊資訊,這裡也不需要

           eureka.client.serviceUrl.defaultZone:定義服務註冊地址,後續的提供或者消費都需要透過該地址進行註冊

3.EurekaServerApplication.java

springboot啟動檔案

圖片描述

@EnableEurekaServer
@SpringBootApplicationpublic class EurekaServerApplication {    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

圖片描述

@EnableEurekaServer:表明他是服務註冊中心

@SpringBootApplication:表明他是springboot專案

 

最後:啟動該專案,就可以了

瀏覽器開啟:

圖片描述

從中可以看出,eureka服務註冊中心已經啟動成功。只是目前的application中沒有任何內容,當然,我們只是搞定了這個註冊中心,還沒有任何的服務呢

下面,我們來嘗試寫一個服務,同時註冊到該註冊中心

 

註冊服務eureka-client

首先,還是來看下這個專案eureka-client的結構

圖片描述

還是修改這三個檔案:EurekaClientApplication,application.yml,pom.xml(所有的springboot專案,這三個檔案也是最基本的,缺一不可)

1.pom.xml

圖片描述


         
             org.springframework.cloud
             spring-cloud-starter-eureka
         
         
             org.springframework.boot
             spring-boot-starter-web
         
 
         
             org.springframework.boot
             spring-boot-starter-test
             test
         
     
 
     
         
             
                 org.springframework.cloud
                 spring-cloud-dependencies
                 Dalston.RC1
                 pom
                 import
             
         
     

圖片描述

2.application.yml

圖片描述

eureka:
    client:
         serviceUrl:
             defaultZone: eureka/server:
     port: 8762spring:
     application:
         name: eureka-client

圖片描述

eureka.client.serviceUrl.defaultZone:與eureka-server中的配置檔案配置一樣就行了

server.port:定義埠號

spring.application.name:定義專案名,方便在註冊中心檢視

3.EurekaClientApplication.java

圖片描述

@SpringBootApplication
@EnableEurekaClient
@RestControllerpublic class EurekaClientApplication {    public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
    }

    @Value("${server.port}")
    String port;

    @RequestMapping("/")    public String home() {        return "hello world from port " + port;
    }
}

圖片描述

@EnableEurekaClient:同意註冊到註冊中心

 

再啟動eureka-client 後,會發現如圖:

圖片描述

eureka-client已經註冊成功

直接輸入:

圖片描述

 

至此,基礎的服務註冊中心搭建成功,有問題希望大家多提意見,謝謝!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2804601/,如需轉載,請註明出處,否則將追究法律責任。

相關文章