2018-06-17

Eureka--學(xué)習(xí)筆記(1)



目錄

Spring Cloud簡(jiǎn)介
--Eureka
操作步驟
--Eureka Server
----1、新建一個(gè)工程作為Eureka Server
----2、如何運(yùn)行eurekaServer
--Eureka Client
----1蕊温、建一個(gè)工程作為Eureka Client近速。
----2粘招、如何運(yùn)行eureka client藻雌,并注冊(cè)到eureka server
狀態(tài)頁(yè)面與健康顯示
Eureka的健康檢測(cè)
如何改變eureka實(shí)例ID



Spring Cloud簡(jiǎn)介


Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)怀喉,斷路器,智能路由船响,微代理躬拢,控制總線)躲履。分布式系統(tǒng)的協(xié)調(diào)導(dǎo)致了樣板模式, 使用Spring Cloud開發(fā)人員可以快速地支持實(shí)現(xiàn)這些模式的服務(wù)和應(yīng)用程序。他們將在任何分布式環(huán)境中運(yùn)行良好聊闯,包括開發(fā)人員自己的筆記本電腦工猜,裸機(jī)數(shù)據(jù)中心,以及Cloud Foundry等托管平臺(tái)菱蔬。

  • Eureka


    Eureka的簡(jiǎn)介.PNG

操作步驟


Eureka Server

1篷帅、新建一個(gè)工程作為Eureka Server

eurekaServer.PNG

eurekaServer2.PNG

創(chuàng)建完成后的pom.xml文件是這樣的

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.maozi.springcloud</groupId>
    <artifactId>eureka-demo-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-demo-server</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RC2</spring-cloud.version>
    </properties>

    <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-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</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>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

2、如何運(yùn)行eurekaServer

eureka server的例子:

啟動(dòng)類配置:

@SpringBootApplication
@EnableEurekaServer
public class EurekaDemoServerApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(EurekaDemoServerApplication.class).web(true).run(args);
    }
}

eureka server有一個(gè)帶有網(wǎng)頁(yè)的鏈接地址

yml文件的配置:

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    healthcheck:
      enable: true
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaulZone: http://${eureka.instance.hostname}:{server.port}/eureka

啟動(dòng)以后汗销,在瀏覽器中輸入http://localhost:8761/就能看的如下界面

Eureka的UI界面.PNG

Eureka Client

1犹褒、接下來,再建一個(gè)工程作為Eureka Client弛针。

eurekaClient.PNG

創(chuàng)建完成后的pom.xml文件是這樣的

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.maozi</groupId>
    <artifactId>eureka-demo-client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-demo-client</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RC2</spring-cloud.version>
    </properties>

    <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>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</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>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

2叠骑、如何運(yùn)行eureka client,并注冊(cè)到eureka server

當(dāng)客戶端用Eureka注冊(cè)的時(shí)候削茁,它提供自身的元數(shù)據(jù)宙枷,比如主機(jī)、端口茧跋、url慰丛、主頁(yè)地址等等。Eureka接收某個(gè)服務(wù)下所有實(shí)例的心跳消息瘾杭。如果心跳檢測(cè)失斪绮 (超過配置的超時(shí)時(shí)間)了,那么這個(gè)實(shí)例通常會(huì)被從注冊(cè)列表中刪除粥烁。

eureka client例子

啟動(dòng)類:

@SpringBootApplication
@RestController
public class EurekaDemoClientApplication {

    @RequestMapping("/")
    public String home(){
        return "Hello world";
    }

    public static void main(String[] args) {
        new SpringApplicationBuilder(EurekaDemoClientApplication.class).web(true).run(args);
    }
}

yml的配置:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
server:
  port: 8081
spring:
  application:
    name: eureka-demo-client-1

啟動(dòng)server和client端后,找開http://localhost:8761/

注冊(cè)后的UI界面.PNG

在Application中就可以看到注冊(cè)上去的client

啟動(dòng)后,觀察兩邊的啟動(dòng)日志

serverLog.PNG

clientLog.PNG

狀態(tài)頁(yè)面與健康顯示


Eureka實(shí)例的狀態(tài)頁(yè)面和健康指示器默認(rèn)情況下分別用"/info"和"/health"代表贤笆。當(dāng)然這個(gè)是可以改的。默認(rèn)就像下面這樣

yml文件的配置:

eureka:
  instance:
    statusPageUrlPath:${management.context-path}/info
    healthCheckUrlPath:${management.context-path}/health

Eureka的健康檢測(cè)


默認(rèn)情況下讨阻,Eureka用客戶端心跳檢測(cè)來判斷一個(gè)客戶端是否活著芥永。除非有特殊情況,否則這個(gè)客戶端不會(huì)傳播這個(gè)應(yīng)用的健康檢查狀態(tài)給每個(gè)Spring Boot監(jiān)控器钝吮。這就意味著在注冊(cè)成功以后埋涧,將總是宣稱這個(gè)應(yīng)用是"UP"狀態(tài)。這個(gè)行為可以被Eureka健康檢查改變奇瘦,這種改變的結(jié)果就是傳播應(yīng)用的狀態(tài)給Eureka

yml文件的配置:

eureka:
  client:
    healthcheck:
        enabled: true

如何改變eureka實(shí)例ID


默認(rèn)的實(shí)例ID的格式是這樣的:
${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}}
當(dāng)然棘催,可以使用eureka.instance.instanceId覆蓋這種默認(rèn)的設(shè)置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市链患,隨后出現(xiàn)的幾起案子巧鸭,更是在濱河造成了極大的恐慌,老刑警劉巖麻捻,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纲仍,死亡現(xiàn)場(chǎng)離奇詭異呀袱,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)郑叠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門夜赵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乡革,你說我怎么就攤上這事寇僧。” “怎么了沸版?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵嘁傀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我视粮,道長(zhǎng)细办,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任蕾殴,我火速辦了婚禮笑撞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钓觉。我一直安慰自己茴肥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布荡灾。 她就那樣靜靜地躺著瓤狐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪批幌。 梳的紋絲不亂的頭發(fā)上芬首,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音逼裆,去河邊找鬼。 笑死赦政,一個(gè)胖子當(dāng)著我的面吹牛胜宇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播恢着,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼桐愉,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了掰派?” 一聲冷哼從身側(cè)響起从诲,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎靡羡,沒想到半個(gè)月后系洛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體俊性,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年描扯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了定页。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绽诚,死狀恐怖典徊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恩够,我是刑警寧澤卒落,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站蜂桶,受9級(jí)特大地震影響儡毕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜屎飘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一妥曲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钦购,春花似錦檐盟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唱凯,卻和暖如春羡忘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背磕昼。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工卷雕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人票从。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓漫雕,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親峰鄙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子浸间,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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