SpringCloud Eureka 集羣

Eureka集羣介紹

在一個分佈式系統中,服務註冊中心是最重要的基礎部分,
理應隨時處於可以提供服務的狀態。爲了維持其可用性,使用集羣是很好的解決方案。
Eureka通過互相註冊的方式來實現高可用的部署,所以我們只需要將Eureke Server配置其他可用的serviceUrl就能實現高可用部署。

開發環境

  • JDK:1.8
  • SpringBoot:2.1.16.RELEASE
  • SpringCloud:Greenwich.RELEASE

項目結構

  • halo-cloud-parent 父工程
  • halo-cloud-server:9090(默認) 註冊中心
  • halo-cloud-provider:7070 服務提供者
  • halo-cloud-consumer:8080 服務消費者

修改hosts 文件

C:\Windows\System32\drivers\etc

127.0.0.1       cloud9091.com
127.0.0.1       cloud9092.com
127.0.0.1       cloud9093.com

halo-cloud-parent

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--web依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <dependencyManagement>
        <!--引入springcloud依賴的-->
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

halo-cloud-server

   <parent>
        <groupId>com.cloud</groupId>
        <artifactId>parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <!--eureka server 依賴座標-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
@EnableEurekaServer
@SpringBootApplication
public class ServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ServerApplication.class, args);
    }

}

採用不同的配置文件啓動三個不同的註冊中心服務

  • application-peer1.yml
server:  # 服務端口
  port: 9090
spring:
  application:  # 應用名字,eureka 會根據它作爲服務id
    name: cloud9090Server


#  eureka配置
eureka:
  instance:
    hostname: cloud9090.com
  client:
    register-with-eureka: false # 不向eureka server 註冊自己
    fetch-registry: false # 不向eureka server 獲取服務列表
    service-url:   #  eureka server 的地址
      # 單機情況  http://${eureka.instance.hostname}:${server.port}/eureka
      # 集羣 http://cloud9091.com/eureka
      defaultZone: http://cloud9091.com:9091/eureka/,http://cloud9092.com:9092/eureka/
  • application-peer2.yml
server:  # 服務端口
  port: 9091
spring:
  application:  # 應用名字,eureka 會根據它作爲服務id
    name: cloud9091Server


#  eureka配置
eureka:
  instance:
    hostname: cloud9091.com
  client:
    register-with-eureka: false # 不向eureka server 註冊自己
    fetch-registry: false # 服務發現 不向eureka server 獲取服務列表 表示自己端就是註冊中心 我的職責就是維護服務實例 false  自己不獲取註冊信息
    service-url:   #  eureka server 的地址
      # 單機情況  http://${eureka.instance.hostname}:${server.port}/eureka
      # 集羣 http://cloud9090.com/eureka
      defaultZone: http://cloud9090.com:9090/eureka/,http://cloud9092.com:9092/eureka/
  • application-peer3.yml
server:  # 服務端口
  port: 9092
spring:
  application:  # 應用名字,eureka 會根據它作爲服務id
    name: cloud9092Server


#  eureka配置
eureka:
  instance:
    hostname: cloud9092.com
  client:
    register-with-eureka: false # 不向eureka server 註冊自己
    fetch-registry: false # 服務發現 不向eureka server 獲取服務列表 表示自己端就是註冊中心 我的職責就是維護服務實例 false  自己不獲取註冊信息
    service-url:   #  eureka server 的地址
      # 單機情況  http://${eureka.instance.hostname}:${server.port}/eureka
      # 集羣 http://cloud9090.com/eureka
      defaultZone: http://cloud9090.com:9090/eureka/,http://cloud9091.com:9091/eureka/

分別啓動三個註冊中心服務
剩下兩個跟這個配置一樣

測試

  • localhost:9090


  • localhost:9091


  • localhost:9092


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章