溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何配置Eureka Server服務端

發(fā)布時間:2020-05-30 12:11:01 來源:億速云 閱讀:575 作者:鴿子 欄目:編程語言

Eureka作為服務注冊與發(fā)現的組件,Eureka2.0已經閉源了,但是本教程還是以Eureka為核心進行展開。

1、三個模塊

       Spring Cloud Eureka是Spring Cloud Netflix微服務套件之一,基于Netflix Eureka做了二次封裝,主要負責完成微服務架構中的服務治理功能。

       eueka的3個重要模塊,eureka-server,service-provider,service-consumer
       eureka-server:服務端,提供服務注冊和發(fā)現;
       eureka-client-service-provider:服務端,服務提供者,通過http rest告知服務端注冊,更新,取消服務;
       eureka-client-service-consumer:客戶端,服務消費者,通過http rest從服務端獲取需要服務的地址列表,然后配合一些負載均衡策略(ribbon)來調用服務端服務。 

2、eureka-server

        Eureka Server 的服務注冊數據存儲層是雙層的 ConcurrentHashMap(線程安全高效的 Map 集合)。
        第一層的key=spring.application.name 也就是客戶端實例注冊的應用名;value 為嵌套的 ConcurrentHashMap。
        第二層的key=instanceId 也就是服務的唯一實例 ID,value 為 Lease 對象,Lease 對象存儲著這個實例的所有注冊信息,包括 ip 、端口、屬性等。
        申明語句如下: 
        private final ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry= new ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>();

 

        服務注冊表沒有持久化到數據庫,我想應該是出于性能的考慮吧。畢竟,注冊表信息是需要定時獲取、更新的。

3、創(chuàng)建服務注冊中心——demo

3.1、引入依賴pom.xml

<dependencies>
          <!--www.1b23.com-->
          <dependency>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
        <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
          </dependency>
     </dependencies>

3.2、eureka server啟動代碼    

       //www.1b23.com
       @SpringBootApplication
       @EnableEurekaServer
       public class EurekaServerApplication {             public static void main(String[] args) {                   SpringApplication.run(EurekaServerApplication.class, args);
            }
       }

@EnableEurekaServer的主要作用是啟動EurekaServer運行環(huán)境和上下文。

3.3、application配置文件

       application配置文件可以是xml或yml結構,我比較喜歡xml結構,yml是縮進格式,我覺得比較容易寫錯。

        server.port=8080

        spring.application.name: eureka-server 

        #服務注冊中心實例的主機名
       eureka.instance.hostname: localhost

        #表示是否將自己注冊在EurekaServer上,默認為true。由于當前應用就是EurekaServer,所以置為false
        eureka.client.register-with-eureka: false

       #表示表示是否從EurekaServer獲取注冊信息,默認為true。單節(jié)點不需要同步其他的EurekaServer節(jié)點的數據


       eureka.client.fetch-registry: false       

       #設置Eureka的地址
       eureka.client.service-url.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3.4、查看eureka server

       訪問http://localhost:8080/地址。如圖上部分

如何配置Eureka Server服務端

        Environment: 環(huán)境,默認為test,生產環(huán)境建議改下,看著順眼
        Data center: 數據中心,生產環(huán)境建議改下
        Current time:當前的系統時間
        Uptime:已經運行了多少時間
        Lease expiration enabled:是否啟用租約過期 ,自我保護機制關閉時,該值默認是true, 自我保護機制開啟之后為false。
        Renews threshold: 每分鐘最少續(xù)約數,Eureka Server 期望每分鐘收到客戶端實例續(xù)約的總數。
        Renews (last min): 最后一分鐘的續(xù)約數量(不含當前,1分鐘更新一次),Eureka Server 最后 1 分鐘收到客戶端實例續(xù)約的總數。

        

        頁面下部分:

如何配置Eureka Server服務端

 

 

    total-avail-memory : 總共可用的內存
    environment : 環(huán)境名稱,默認test 
    num-of-cpus : CPU的個數
    current-memory-usage : 當前已經使用內存的百分比
    server-uptime : 服務啟動時間
    registered-replicas : 相鄰集群復制節(jié)點
   unavailable-replicas :不可用的集群復制節(jié)點,   

    available-replicas :可用的相鄰集群復制節(jié)點

    ipAddr:eureka服務端IP
    status:eureka服務端狀態(tài)


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI