天天看點

SpringCloud-01:Eureka叢集搭建,微服務向Eureka注冊

Eureka是SpringCloud用于實作服務注冊與發現最早的元件之一,用于微服務架構下服務的統一登記和管理。

建立SpringCloud項目,勾選Neflix Eureka

建立STS/IDEA spring-boot-starter項目:

new project--spring initializr--勾選SpringCloud Discover下的Eureka Server

內建目前最新的Spring版本:

SpringBoot: 2.2.6.RELEASE
SpringCloud: Hoxton.SR3
           

目前內建的Eureka版本是

2.2.2.RELEASE

單節點Eureka服務端搭建

  1. 在@SpringBootApplication啟動類上面加注解:

    @EnableEurekaServer

  2. 在application.properties中增加Eureka相關配置:
#是否将自己注冊到Eureka Server,預設為true,由于目前就是server,故而設定成false,表明該服務不會向eureka注冊自己的資訊
#eureka.client.register-with-eureka=false
#是否從eureka server擷取注冊資訊,由于單節點,不需要同步其他節點資料,用false
#eureka.client.fetch-registry=false
#設定服務注冊中心的URL,用于client和server端交流
#eureka.client.service-url.defaultZone
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:7900/eureka/
           

浏覽器通路http://localhost:7900 就可以看到一個單機Eureka服務端就搭建好了。

兩個節點叢集的搭建

  1. 修改本機hosts檔案配置,添加ip到域名的映射:
    127.0.0.1 euk1.com
    127.0.0.1 euk2.com
               
  2. 節點1配置

    application-euk1.properties

#peer端的連接配接位址
eureka.client.service-url.defaultZone=http://euk2.com:7902/eureka/
#hostname用來查找主機, appname用來表示分組
eureka.instance.hostname=euk1.com
#tomcat的端口
server.port=7901
           
  1. 節點2的配置

    application-euk2.properties

#peer端的連接配接位址
eureka.client.service-url.defaultZone=http://euk1.com:7901/eureka/
#hostname用來查找主機, appname用來表示分組
eureka.instance.hostname=euk2.com
#tomcat的端口
server.port=7902
           

兩個服務端分别起來即可看到叢集搭建好了。

三個節點的叢集

#application.properties
eureka.client.service-url.defaultZone=http://euk1.com:7901/eureka/,http://euk2.com:7902/eureka/,http://euk3.com:7903/eureka/
spring.profiles.active=euk3
spring.application.name=EurekaServer
---
#application-euk1.properties
eureka.instance.hostname=euk1.com
server.port=7901
---
#application-euk2.properties
eureka.instance.hostname=euk2.com
server.port=7902
---
#application-euk3.properties
eureka.instance.hostname=euk3.com
server.port=7903
           

微服務向Eureka注冊

建立微服務

  1. 每一個微服務需要将自身的服務資訊注冊到Eureka,是以每一個微服務都是Eureka的用戶端,建立SpringCloud微服務的時候,需要勾選

    Spring Cloud Discovery

    下的

    Eureka Discovery Client

    或者手動在pom.xml中添加依賴:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
           
  1. application.properties中添加Eureka服務端(叢集)的位址:
eureka.client.service-url.defaultZone=http://localhost:7900/eureka/
eureka.instance.instance-id="eureka-consumer1"
           

完成以上兩步後啟動服務,該服務會自動向Eureka發起注冊。

參考文檔:

https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.2.RELEASE/reference/html/#registering-with-eureka

繼續閱讀