Spring-Cloud之Eureka注冊(cè)中心環(huán)境搭建(單節(jié)點(diǎn))

一 Eureka概述

  • 服務(wù)啟動(dòng)時(shí)會(huì)生成服務(wù)的基本信息對(duì)象InstanceInfo,然后在啟動(dòng)時(shí)會(huì)register到服務(wù)治理中心。
  • 注冊(cè)完成后會(huì)從服務(wù)治理中心拉取所有的服務(wù)信息,緩存在本地次绘。 之后服務(wù)會(huì)被30s(可配置)發(fā)送一個(gè)心跳信息窟却,續(xù)約服務(wù)。
  • 如果服務(wù)治理中心在90s內(nèi)沒(méi)有收到一個(gè)服務(wù)的續(xù)約卵洗,就會(huì)認(rèn)為服務(wù)已經(jīng)掛了,會(huì)把服務(wù)注冊(cè)信息刪掉弥咪。
  • 服務(wù)停止前过蹂,服務(wù)會(huì)主動(dòng)發(fā)送一個(gè)停止請(qǐng)求,服務(wù)治理中心會(huì)刪除這個(gè)服務(wù)的信息聚至。
  • 如果Eureka Server收到的心跳包不足正常值的85%(可配置)就會(huì)進(jìn)入自我保護(hù)模式酷勺,在這種模式下,Eureka Server不會(huì)刪除任何服務(wù)信息扳躬。

二 Eureka架構(gòu)圖

在這里插入圖片描述

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

Registery:表示服務(wù)向注冊(cè)中心注冊(cè)脆诉。
Renew:表示服務(wù)向注冊(cè)中心發(fā)送心跳甚亭,表示該服務(wù)還活著,注冊(cè)中心不能刪除改服務(wù)击胜。
Cancel:表示注冊(cè)中心能刪除該服務(wù)
Get Registery:表示該服務(wù)重新注冊(cè)
Replicate:表示注冊(cè)中心之間相互注冊(cè)
Remote Call:表示遠(yuǎn)程調(diào)用

三 搭建Eureka環(huán)境

  • 創(chuàng)建SpringBoot項(xiàng)目


    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

  • 刪除多余的目錄(src等目錄亏狰,因?yàn)閯?chuàng)建maven的聚合工程需要)只剩下pom文件,名字叫做eureka-father作為聚合工程的父級(jí)工程偶摔,如圖


    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

  • 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>    <!-- 項(xiàng)目說(shuō)明:這里作為聚合工程的父工程 -->    <groupId>com.org.ldc</groupId>    <artifactId>eureka-father</artifactId>    <version>1.0.0.RELEASE</version>    <!-- 繼承說(shuō)明:這里繼承SpringBoot提供的父工程 -->    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.0.2.RELEASE</version>    </parent>    <!-- 表示子模塊 -->    <modules>        <module>eureka3000</module>    </modules>    <!-- 子模塊的依賴 -->    <dependencyManagement>        <dependencies>            <dependency>                <groupId>com.org.ldc</groupId>                <artifactId>eureka3000</artifactId>                <version>0.0.1-SNAPSHOT</version>            </dependency>        </dependencies>    </dependencyManagement></project>
  • 創(chuàng)建子模塊eureka3000暇唾,方法如圖所示


    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

  • 子模塊的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">    <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>    <!-- 繼承本項(xiàng)目的父工程 -->    <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>
  • 子模塊的啟動(dòng)類如下:這里需要注意的就是要在類上加上@EnableEurekaServer注解
package com.org.ldc.eureka3000;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication@EnableEurekaServerpublic class Eureka3000Application {    public static void main(String[] args) {        SpringApplication.run(Eureka3000Application.class, args);    }}
  • 子模塊的application.properties文件的內(nèi)容如下:
server:  port: 3000eureka:  server:    enable-self-preservation: false  #關(guān)閉自我保護(hù)機(jī)制    eviction-interval-timer-in-ms: 4000 #設(shè)置清理間隔(單位:毫秒 默認(rèn)是60*1000)  instance:    hostname: localhost  client:    registerWithEureka: false #不把自己作為一個(gè)客戶端注冊(cè)到自己身上    fetchRegistry: false  #不需要從服務(wù)端獲取注冊(cè)信息(因?yàn)樵谶@里自己就是服務(wù)端,而且已經(jīng)禁用自己注冊(cè)了)    serviceUrl:      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
  • 以上創(chuàng)建的表示一個(gè)eureka節(jié)點(diǎn)辰斋,啟動(dòng)子模塊的啟動(dòng)類策州,然后瀏覽器訪問(wèn)http://localhost:3000,就會(huì)出現(xiàn)如下頁(yè)面,紅色框內(nèi)一開(kāi)始使沒(méi)有內(nèi)容的宫仗,因?yàn)槲疫@是搭建的有三個(gè)節(jié)點(diǎn)eureka和有注冊(cè)服務(wù)的服務(wù)工程够挂,所以紅色框內(nèi)會(huì)出現(xiàn)內(nèi)容,所以搭建不要糾結(jié)這個(gè)藕夫,只要出現(xiàn)這個(gè)界面下硕,就說(shuō)明eureka環(huán)境搭建好了,但是使單節(jié)點(diǎn)的汁胆,不是集群的

    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

    接著創(chuàng)建服務(wù)模塊梭姓,創(chuàng)建過(guò)程和創(chuàng)建子模塊一樣,不再贅述嫩码,名字叫做user5000誉尖,如圖eureka3001、eureka3001是我創(chuàng)建的另外的兩個(gè)注冊(cè)中心節(jié)點(diǎn)


    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

  • 服務(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">    <modelVersion>4.0.0</modelVersion>    <groupId>com.org.ldc</groupId>    <artifactId>user5000</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>user5000</name>    <description>Demo project for Spring Boot</description>    <properties>        <java.version>1.8</java.version>    </properties>    <!-- 繼承本項(xiàng)目的父工程 -->    <parent>        <groupId>com.org.ldc</groupId>        <artifactId>eureka-father</artifactId>        <version>1.0.0.RELEASE</version>    </parent>    <dependencies>        <dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-netflix-eureka-client</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>
  • application.yml文件內(nèi)容如下:
server:  port: 5000eureka:  client:    serviceUrl:        defaultZone: http://localhost:3000/eureka/  #eureka服務(wù)端提供的注冊(cè)地址 參考服務(wù)端配置的這個(gè)路徑  instance:    instance-id: user-1 #此實(shí)例注冊(cè)到eureka服務(wù)端的唯一的實(shí)例ID     prefer-ip-address: true #是否顯示IP地址    leaseRenewalIntervalInSeconds: 10 #eureka客戶需要多長(zhǎng)時(shí)間發(fā)送心跳給eureka服務(wù)器铸题,表明它仍然活著,默認(rèn)為30 秒 (與下面配置的單位都是秒)    leaseExpirationDurationInSeconds: 30 #Eureka服務(wù)器在接收到實(shí)例的最后一次發(fā)出的心跳后铡恕,需要等待多久才可以將此實(shí)例刪除,默認(rèn)為90秒spring:  application:    name: server-user #此實(shí)例注冊(cè)到eureka服務(wù)端的name 
  • 啟動(dòng)類如下:需要加上@EnableEurekaClient 注解
    package com.org.ldc.user5000;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication@EnableEurekaClient //開(kāi)啟eureka客戶端public class User5000Application {    public static void main(String[] args) {        SpringApplication.run(User5000Application.class, args);    }}
  • 最后測(cè)試先啟動(dòng)注冊(cè)中心的啟動(dòng)類丢间,然后啟動(dòng)服務(wù)模塊的啟動(dòng)類探熔,最后訪問(wèn)localhost:3000出現(xiàn)如下圖說(shuō)明搭建成功


    在這里插入圖片描述

    <figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">在這里插入圖片描述</figcaption>

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

更多的教程請(qǐng)關(guān)注公眾號(hào) 非科班的科班,烘挫。假如你覺(jué)得我寫(xiě)的好诀艰,路過(guò)的請(qǐng)點(diǎn)個(gè)贊,謝謝饮六。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末其垄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子卤橄,更是在濱河造成了極大的恐慌绿满,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窟扑,死亡現(xiàn)場(chǎng)離奇詭異喇颁,居然都是意外死亡漏健,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)橘霎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蔫浆,“玉大人,你說(shuō)我怎么就攤上這事茎毁】税茫” “怎么了忱辅?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵七蜘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我墙懂,道長(zhǎng)橡卤,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任损搬,我火速辦了婚禮碧库,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘巧勤。我一直安慰自己嵌灰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布颅悉。 她就那樣靜靜地躺著沽瞭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剩瓶。 梳的紋絲不亂的頭發(fā)上驹溃,一...
    開(kāi)封第一講書(shū)人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音延曙,去河邊找鬼豌鹤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛枝缔,可吹牛的內(nèi)容都是我干的布疙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼愿卸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼拐辽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起擦酌,我...
    開(kāi)封第一講書(shū)人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤俱诸,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后赊舶,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體睁搭,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赶诊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了园骆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舔痪。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锌唾,靈堂內(nèi)的尸體忽然破棺而出锄码,到底是詐尸還是另有隱情,我是刑警寧澤晌涕,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布滋捶,位于F島的核電站,受9級(jí)特大地震影響余黎,放射性物質(zhì)發(fā)生泄漏重窟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一惧财、第九天 我趴在偏房一處隱蔽的房頂上張望巡扇。 院中可真熱鬧,春花似錦垮衷、人聲如沸厅翔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)刀闷。三九已至,卻和暖如春描姚,著一層夾襖步出監(jiān)牢的瞬間涩赢,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工轩勘, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筒扒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓绊寻,卻偏偏與公主長(zhǎng)得像花墩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子澄步,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容