Spring-Cloud學(xué)習(xí)之Eureka集群搭建-創(chuàng)新互聯(lián)

一.為什么需要集群

上一篇文章講解了如何搭建單個節(jié)點的eureka,這篇講解如何搭建eureka集群,這里的集群還是本地不同的端口執(zhí)行三個eureka,因為條件不要允許,沒有三臺電腦,所以大家將就一下吧,eureka集群的目的就是防止一個點故障導(dǎo)致,整個服務(wù)癱瘓的問題,成為單點故障,因為一個點出問題,還有另一個點頂上去,代替這個點工作,所以集群也實現(xiàn)了高可用、高性能

10年積累的成都做網(wǎng)站、成都網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有寧江免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

二.集群的原理

每一個注冊點都配置有其它點的url,能夠與其他server點進行數(shù)據(jù)的同步,當(dāng)服務(wù)向一個點注冊時,該店就會把該服務(wù)同步到其它注冊點,當(dāng)消費者需要消費時就會向注冊中心詢問具體的服務(wù),注冊中心就會向消費者提供具體的提供該服務(wù)的服務(wù)提供者的訪問地址,最后實現(xiàn)服務(wù)的調(diào)用
Spring-Cloud學(xué)習(xí)之Eureka集群搭建

三.創(chuàng)建集群win環(huán)境配置

這里方便就直接把所有的服務(wù)都泡在本地的win10環(huán)境中,本來真正模擬環(huán)境是要在linux的虛擬機上跑的,大家可以自行百度,原理都一樣的,只不過跑在linux上需要打包發(fā)布,我就直接在win上操作了。首先本地跑多個服務(wù)配置一下,域名映射,在C:\Windows\System32\drivers\etc路徑下的hosts文件中加入:
127.0.0.1 eureka3000.com
127.0.0.1 eureka3001.com
127.0.0.1 eureka3002.com
這里需要提醒的是,修改hosts文件是有權(quán)限的,具體設(shè)置權(quán)限的方法參考win10修改配置文件

四.創(chuàng)建集群

  • 首先創(chuàng)建的目錄如下:創(chuàng)建eureka3000在上一篇文章已經(jīng)講過了(參考搭建Eureka單節(jié)點),創(chuàng)建eureka3001和eureka3001也是一樣,這里就直接粘貼處pom文件了

Spring-Cloud學(xué)習(xí)之Eureka集群搭建

  • eureka3000的pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.org.ldc</groupId>
    <artifactId>eureka3000</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka3000</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!-- 繼承本項目的父工程 -->
    <parent>
        <groupId>com.org.ldc</groupId>
        <artifactId>eureka-father</artifactId>
        <version>1.0.0.RELEASE</version>
    </parent>

    <!--引入eurekaserver  依賴-->
    <dependencies>
        <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-web</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
  • eureka3000的applicatiion.yml文件:
server:
  port: 3000
eureka:
  server:
    enable-self-preservation: false  #關(guān)閉自我保護機制
    eviction-interval-timer-in-ms: 4000 #設(shè)置清理間隔(單位:毫秒 默認是60*1000)
  instance:
    hostname: eureka3000.com
  client:
    serviceUrl:
        defaultZone: http://eureka3001.com:3001/eureka,http://eureka3002.com:3002/eureka   #將自己當(dāng)成服務(wù)注冊到其他注冊中心
spring:
  application:
    name: eureka-server-cluster  #設(shè)置服務(wù)名
  • eureka3000啟動類和原來的一樣
  • eureka3001的pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.org.ldc</groupId>
    <artifactId>eureka3001</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka3001</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <!-- 繼承本項目的父工程 -->
    <parent>
        <groupId>com.org.ldc</groupId>
        <artifactId>eureka-father</artifactId>
        <version>1.0.0.RELEASE</version>
    </parent>

    <!--引入eurekaserver  依賴-->
    <dependencies>
        <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-web</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
  • eureka3001的application文件:
server:
  port: 3001
eureka:
  server:
    enable-self-preservation: false  #關(guān)閉自我保護機制
    eviction-interval-timer-in-ms: 4000 #設(shè)置清理間隔(單位:毫秒 默認是60*1000)
  instance:
    hostname: eureka3001.com
  client:
    serviceUrl:
        defaultZone: http://eureka3000.com:3000/eureka,http://eureka3002.com:3002/eureka   #將自己當(dāng)成服務(wù)注冊到其他注冊中心
spring:
  application:
    name: eureka-server-cluster  #設(shè)置服務(wù)名
  • 啟動類同上

  • eureka3002的pom文件:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.org.ldc</groupId>
    <artifactId>eureka3002</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka3002</name>
    <description>Demo project for Spring Boot</description>
    
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    <!-- 繼承本項目的父工程 -->
    <parent>
        <groupId>com.org.ldc</groupId>
        <artifactId>eureka-father</artifactId>
        <version>1.0.0.RELEASE</version>
    </parent>
    
    <!--引入eurekaserver  依賴-->
    <dependencies>
        <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-web</artifactId>
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

 - eureka3002的application文件:

server:
port: 3002
eureka:
server:
enable-self-preservation: false #關(guān)閉自我保護機制
eviction-interval-timer-in-ms: 4000 #設(shè)置清理間隔(單位:毫秒 默認是60*1000)
instance:
hostname: eureka3002.com
client:
serviceUrl:
defaultZone: http://eureka3001.com:3001/eureka,http://eureka3000.com:3000/eureka #將自己當(dāng)成服務(wù)注冊到其他注冊中心
spring:
application:
name: eureka-server-cluster #設(shè)置服務(wù)名


 - 最后是工程的pom文件內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!--基本信息-->
<description>SpringBoot-Eureka環(huán)境搭建多模塊構(gòu)建示例</description>
<modelVersion>4.0.0</modelVersion>
<name>eureka-father</name>
<packaging>pom</packaging>

<!-- 項目說明:這里作為聚合工程的父工程 -->
<groupId>com.org.ldc</groupId>
<artifactId>eureka-father</artifactId>
<version>1.0.0.RELEASE</version>

<!-- 繼承說明:這里繼承SpringBoot提供的父工程 -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.2.RELEASE</version>
</parent>

<modules>
    <module>eureka3000</module>
    <module>eureka3001</module>
    <module>eureka3002</module>
    <module>user5000</module>
</modules>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.org.ldc</groupId>
            <artifactId>eureka3000</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.org.ldc</groupId>
            <artifactId>eureka3001</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.org.ldc</groupId>
            <artifactId>eureka3002</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.org.ldc</groupId>
            <artifactId>user5000</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
</dependencyManagement>

</project>


在這里說明一下,這里的搭建教程是基于maven的聚合工程搭建的,需要有能搭建maven聚合工程的前提,這里就默認大家會搭建,所以就一頓輸出了,如果還不懂的可以自行去百度。

最后測試就是啟動各個注冊中心,然后最后啟動服務(wù)在瀏覽器分別輸入各個注冊中心的訪問地址,出現(xiàn)如下圖,說明搭建成功
![在這里插入圖片描述](https://img-blog.csdnimg.cn/20191215215951525.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMjU1MDE3,size_16,color_FFFFFF,t_70)
>更多的教程請關(guān)注非科班的科班,一起努力,加油干,路過的小伙伴幫我點個贊,謝謝大家

最后分享一波java的資源,資源包括java從入門到開發(fā)的全套視頻,以及java的26個項目,資源比較大,大小大概是290g左右,鏈接容易失效,獲取的方式是關(guān)注公眾號:非科班的科班,讓后回復(fù):java項目即可獲得,祝大家學(xué)習(xí)愉快

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁題目:Spring-Cloud學(xué)習(xí)之Eureka集群搭建-創(chuàng)新互聯(lián)
文章出自:http://muchs.cn/article30/dgcjpo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、關(guān)鍵詞優(yōu)化建站公司、網(wǎng)站設(shè)計用戶體驗、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司