国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

SpringCloud服務(wù)注冊和發(fā)現組件Eureka

發(fā)布時(shí)間:2021-07-05 18:40 來(lái)源:腳本之家 閱讀:0 作者:young碼農 欄目: 開(kāi)發(fā)技術(shù)

目錄

        本篇文章,我們來(lái)講解springcloud的服務(wù)注冊和發(fā)現組件,上一章節我們講解了如何搭建springcloud的多模塊項目,已經(jīng)新建了springcloud-eureka-server,springcloud-eureka-client兩個(gè)模塊,本章節就在這基礎上直接使用。

        想要了解的請參考:

        一、Eureka簡(jiǎn)介:

        1.1 什么是eureka

        Eureka是一個(gè)基于REST的服務(wù),主要用于A(yíng)WS云中的定位服務(wù),以實(shí)現中間層服務(wù)器的負載平衡和故障轉移,在 Spring Cloud 微服務(wù)架構中通常用作注冊中心,我們稱(chēng)這個(gè)服務(wù)為 Eureka Server,還有一個(gè)與之交互的客戶(hù)端稱(chēng)之為 Eureka Client。

        1.2 eureka的功能

        Eureka 、Consul 、Zookeepe,是Springcloud支持很輕松地實(shí)現服務(wù)的注冊和發(fā)現功能的組件??催^(guò)我上一章博客的同學(xué)一定知道Eureka,Hystrix ,Ribbon,Zuul,都是 Netflix 公司開(kāi)源的,一起被稱(chēng)為 Spring Cloud Netflix,所以Eureka 是Spring Cloud 首選推薦的服務(wù)注冊與發(fā)現組件。

        ps : 但是Eureka 2.0 開(kāi)源工作宣告停止,所以不管后期Eureka 如何發(fā)展,但是對springcloud的影響都不是很大,畢竟還有Consul 、Zookeepe可以選擇。

        1.3 eureka服務(wù)注冊與服務(wù)發(fā)現

        服務(wù)發(fā)現有兩種模式:一種是客戶(hù)端發(fā)現模式,一種是服務(wù)端發(fā)現模式。Eureka采用的是客戶(hù)端發(fā)現模式。Eureka Client需要每30秒給Eureka Server發(fā)一次心跳,同時(shí)更新Server上最新的注冊信息到本地,如果Server多次沒(méi)有收到來(lái)自客戶(hù)端的心跳,那么在90秒內會(huì )被Server上剔除。

        二、springcloud-eureka-server配置

        我們首先回顧一下上一章節的項目目錄結構:

        修改springcloud-eureka-server模塊中的pom.xml文件如下:

        <parent>標簽就是引入我們第一章節新建的父工程的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>
            <parent>
                <groupId>com.haly</groupId>
                <artifactId>springcloud</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </parent>
            <groupId>com.haly</groupId>
            <artifactId>springcloud-eureka-server</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <name>springcloud-eureka-server</name>
            <description>新建一個(gè)springcloud項目</description>
         
            <properties>
                <java.version>1.8</java.version>
                <spring-cloud.version>Greenwich.SR1</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>
         
        </project>

        新增springcloud-eureka-server模塊的application.properties 配置文件

        在application.properties文件中加入eureka的配置項,現在我們使用的是.properties格式,其實(shí)工作中我們更加喜歡用.yml格式,只是語(yǔ)法不一樣,有興趣的同學(xué)可以去了解yml格式配置。

        # 設置的eureka端口號
        server.port=8761
        # 設置eureka的主機地址
        eureka.instance.hostname=localhost
        #表示是否將自己注冊到Eureka Server,默認為true。由于當前應用就是Eureka Server,故而設置為false
        eureka.client.registerWithEureka=false
        #表示是否從Eureka Server獲取注冊信息,默認為true。因為這是一個(gè)單點(diǎn)的Eureka Server,不需要同步其他的Eureka Server節點(diǎn)的數據,故而設置為false
        eureka.client.fetchRegistry=false
        #Eureka server地址,查詢(xún)服務(wù)和注冊服務(wù)都需要依賴(lài)這個(gè)地址,多個(gè)地址可用逗號(英文的)分割
        eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
        # 服務(wù)模塊名稱(chēng)
        spring.application.name=springcloud-eureka-server

        新增啟動(dòng)類(lèi)SpringcloudEurekaServerApplication

        SpringcloudEurekaServerApplication類(lèi)上加上@EnableEurekaServer注解,表示這個(gè)類(lèi)為Eureka Server類(lèi),雖然注解配置簡(jiǎn)單,但是這個(gè)注解底層原理,還是做了很多事的。

        ps :如果@EnableEurekaServer注解不可用,那可能是SpringCloud版本不對,可嘗試去父pom.xml文件中修改下版本version即可

        package com.haly;
         
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
         
        @EnableEurekaServer
        @SpringBootApplication
        public class SpringcloudEurekaServerApplication {
         
            public static void main(String[] args) {
                SpringApplication.run(SpringcloudEurekaServerApplication.class, args);
            }
        }

        啟動(dòng)SpringcloudEurekaServerApplication服務(wù)

        在SpringcloudEurekaServerApplication類(lèi)上右鍵 Run as -> spring boot app,啟動(dòng)項目。

        啟動(dòng)項目成功后,在瀏覽器中輸入 http://localhost:8761,我們可以看到如下頁(yè)面

        目前上圖紅框中,沒(méi)有eureka客戶(hù)端注冊到當前的eureka上,接下來(lái),我們創(chuàng )建一個(gè)eureka客戶(hù)端。

        三、springcloud-eureka-client配置

        修改springcloud-eureka-client模塊中,pom.xml文件如下:

        <parent>標簽就是引入我們第一章節新建的父工程的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>
             
            <parent>
                <groupId>com.haly</groupId>
                <artifactId>springcloud</artifactId>
                 <version>0.0.1-SNAPSHOT</version>
            </parent>
             
            <groupId>com.haly</groupId>
            <artifactId>springcloud-eureka-client</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <name>springcloud-eureka-client</name>
            <description>新建一個(gè)springcloud項目</description>
         
            <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>
         
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
         
        </project>

        修改springcloud-eureka-client模塊的application.properties 配置文件

        ps:spring.application.name這個(gè)配置很重要,eureka可視化窗口上顯示的就是這個(gè)名字,以后服務(wù)與服務(wù)之間相互調用一般都是根據這個(gè)name

        # 服務(wù)端口號
        server.port=9300
        # 服務(wù)名稱(chēng)
        spring.application.name=springcloud-eureka-client
        # 注冊到的eureka服務(wù)地址
        eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

        新加啟動(dòng)類(lèi)SpringcloudEurekaClientApplication

        通過(guò)注解@EnableEurekaClient 表明自己是一個(gè)eurekaclient,可以注入到對應配置的eureka上

        package com.haly;
         
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
        import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
         
        @SpringBootApplication
        @EnableEurekaClient
        public class SpringcloudEurekaClientApplication {
         
            public static void main(String[] args) {
                SpringApplication.run(SpringcloudEurekaClientApplication.class, args);
            }
         
        }

        在SpringcloudEurekaClientApplication類(lèi)上右鍵 Run as -> spring boot app,啟動(dòng)項目。

        啟動(dòng)項目成功后,在瀏覽器中輸入 http://localhost:8761,我們可以看到如下頁(yè)面 ,紅色框標記的地方,出現了Eureka Client的服務(wù)名稱(chēng)(我們在application.properties中配置的名字)

        測試springcloud-eureka-client中是否可以正常使用

        新建一個(gè)業(yè)務(wù)類(lèi)ClientTest,類(lèi)上使用注解@RestController

        @RestController注解相當于@ResponseBody + @Controller合在一起的作用。

        package com.haly;
         
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RequestParam;
        import org.springframework.web.bind.annotation.RestController;
         
        @RestController
        public class ClientTest {
           <br>    @Value("${server.port}")<br>    String port;<br> 
            @RequestMapping("/hello")<br>    public String hello(@RequestParam(value = "name", defaultValue = "young碼農") String name) {<br>        return name + ",welcome to springcloud! server port:" + port;<br>    }
        }

        這時(shí)打開(kāi) 瀏覽器,輸入http://localhost:9300/hello?name=young碼農,頁(yè)面結果如下,證明我們的項目搭建成功了,可以正常寫(xiě)業(yè)務(wù)邏輯了。

        四、總結:

        完成所有功能后,項目目錄結構如下:

        到此這篇關(guān)于SpringCloud服務(wù)注冊和發(fā)現組件Eureka的文章就介紹到這了,更多相關(guān)SpringCloud服務(wù)注冊和 組件Eureka內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

        免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

        国产又色又爽又黄刺激蜜臀AV| 亚洲AV本道一区二区三区四区| 精品人妻久久久久久888| 国产免费不卡午夜福利在线| 中文字幕无线码一区二区| 婷婷丁香五月中文字幕|