Spring Cloud微服務單體部署Eureka服務器

什麼是Eureka,爲什麼需要Eureka

eureka在Spring Cloud系列的微服務框架中是一個服務發現組件的角色,通俗來說就是一個消息販子。在微服務框架中,很多功能被拆成了一個個的服務,所謂服務,可以認爲就是項目。比如用戶管理,就可以做一個用戶服務,也就是這個項目,只處理了用戶相關的功能。那麼原先一個單體架構的項目,就可以拆分成一個個的微服務,這個數量可能會很多。而且,這些微服務可能會部署到不同的服務器上面。那麼當用戶請求過來的時候,如何來查找到他所需要的微服務。
這時候,一個角色出現了,那就是服務發現組件。你需要什麼,你直接跟服務組件說,他會告訴你怎麼訪問這個微服務。比如,你對服務發現組件說,我需要登錄,那好,他就把登錄對應的微服務的訪問方式給你。然後,你拿着這個訪問方式,就自己去找登錄的微服務了。這不就是各小說中的百事通嘛。
那麼問題來了,eureka爲什麼會知道各微服務的訪問方式呢?
原來,各微服務如果想要把自己的聯繫方式告訴eureka(這就是註冊),那麼是需要作爲一個eureka的客戶端(eureka-client)。然後,在微服務啓動的時候,就會告訴服務發現組件(eureka-server),我叫啥名字,怎麼聯繫我。到時候,有人來拿着我的名字來找我,你就告訴它我的聯繫方式。那這樣子,服務發現組件就知道了微服務的聯繫方式。
這時候,服務發現組件(eureka-server)對微服務說,我怎麼確保你的聯繫方式是有用的啊,我可不能坑了來我這裏問消息的人。微服務就說了,那我們保持聯繫吧,我每隔一段時間就聯繫一下你,那你就知道我的聯繫方式是有用的啦。(健康檢查)

如何構建一個單體的服務發現組件

  1. 在pom.xml上添加eureka服務器的依賴

    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
  2. 給EurekaApplication添加註解@EnableEurekaServer

    package com.wangguitang.freedom.study.spring.cloud.eureka;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    }
  3. 在配置文件application.yml中添加配置

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

啓動Eureka服務器

  1. 右鍵類EurekaApplication,選中Run As–>Spring Boot App

進一步思考

用單體方式部署服務發現組件好不好?當然不好,如果到時候服務發現組件掛了,那麼所有的微服務豈不是都不能訪問了。所以我們不能把雞蛋放到一個籃子裏,我們要多找幾個服務發現組件,如果一個服務發現組件掛了,那麼我們還可以找其他的服務發現組件,這就是集羣。下一步,我們就來學習如何實現服務發現組件的集羣。
最後獻上Spring Cloud的架構圖

Spring Cloud的架構圖

github代碼

https://github.com/wang465745776/freedom-study-spring-cloud-parent/tree/master/freedom-study-spring-cloud-eureka

發佈了46 篇原創文章 · 獲贊 58 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章