最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud服務注冊和發(fā)現(xiàn)組件Eureka

 更新時間:2021年05月18日 11:26:31   作者:young碼農  
對于微服務的治理而言,其核心就是服務的注冊和發(fā)現(xiàn)。在SpringCloud 中提供了多種服務注冊與發(fā)現(xiàn)組件,官方推薦使用Eureka。本篇文章,我們來講解springcloud的服務注冊和發(fā)現(xiàn)組件,感興趣的可以了解一下

本篇文章,我們來講解springcloud的服務注冊和發(fā)現(xiàn)組件,上一章節(jié)我們講解了如何搭建springcloud的多模塊項目,已經新建了springcloud-eureka-server,springcloud-eureka-client兩個模塊,本章節(jié)就在這基礎上直接使用。

想要了解的請參考:一起來學Spring Cloud | 第一章 :如何搭建一個多模塊的springcloud項目

一、Eureka簡介:

1.1 什么是eureka

Eureka是一個基于REST的服務,主要用于AWS云中的定位服務,以實現(xiàn)中間層服務器的負載平衡和故障轉移,在 Spring Cloud 微服務架構中通常用作注冊中心,我們稱這個服務為 Eureka Server,還有一個與之交互的客戶端稱之為 Eureka Client。

1.2 eureka的功能

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

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

1.3 eureka服務注冊與服務發(fā)現(xiàn)

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

二、springcloud-eureka-server配置

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

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

<parent>標簽就是引入我們第一章節(jié)新建的父工程的pom.xml文件,具體可參考:一起來學Spring Cloud | 第一章 :如何搭建一個多模塊的springcloud項目

<?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>新建一個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的配置項,現(xiàn)在我們使用的是.properties格式,其實工作中我們更加喜歡用.yml格式,只是語法不一樣,有興趣的同學可以去了解yml格式配置。

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

新增啟動類SpringcloudEurekaServerApplication

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

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);
    }
}

啟動SpringcloudEurekaServerApplication服務

在SpringcloudEurekaServerApplication類上右鍵 Run as -> spring boot app,啟動項目。

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

目前上圖紅框中,沒有eureka客戶端注冊到當前的eureka上,接下來,我們創(chuàng)建一個eureka客戶端。

三、springcloud-eureka-client配置

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

<parent>標簽就是引入我們第一章節(jié)新建的父工程的pom.xml文件,具體可參考:一起來學Spring Cloud | 第一章 :如何搭建一個多模塊的springcloud項目

<?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>新建一個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這個配置很重要,eureka可視化窗口上顯示的就是這個名字,以后服務與服務之間相互調用一般都是根據(jù)這個name

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

新加啟動類SpringcloudEurekaClientApplication

通過注解@EnableEurekaClient 表明自己是一個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類上右鍵 Run as -> spring boot app,啟動項目。

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

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

新建一個業(yè)務類ClientTest,類上使用注解@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>    }
}

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

四、總結:

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

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

相關文章

  • Mybatis使用Collection屬性的示例代碼

    Mybatis使用Collection屬性的示例代碼

    本文主要介紹了Mybatis使用Collection屬性的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 詳解SpringBoot應用服務啟動與安全終止

    詳解SpringBoot應用服務啟動與安全終止

    這篇文章主要介紹了SpringBoot應用服務啟動與安全終止,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Springboot詳解RocketMQ實現(xiàn)消息發(fā)送與接收流程

    Springboot詳解RocketMQ實現(xiàn)消息發(fā)送與接收流程

    這篇文章主要介紹了SpringBoot整合RocketMQ實現(xiàn)消息發(fā)送和接收功能,我們使用主流的SpringBoot框架整合RocketMQ來講解,使用方便快捷,本文分步驟給大家介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • idea中的lombok不生效的四種解決方法

    idea中的lombok不生效的四種解決方法

    Lombok項目是一個java庫,它可以自動插入到編輯器和構建工具中,本文將詳細給大家介紹idea中的lombok不生效的四種解決方法,需要的朋友可以參考下
    2023-05-05
  • SpringBoot集成tika實現(xiàn)word轉html的操作代碼

    SpringBoot集成tika實現(xiàn)word轉html的操作代碼

    Tika是一個內容分析工具,自帶全面的parser工具類,能解析基本所有常見格式的文件,得到文件的metadata,content等內容,返回格式化信息,本文給大家介紹了SpringBoot集成tika實現(xiàn)word轉html的操作,需要的朋友可以參考下
    2024-06-06
  • Java AtomicInteger類使用方法實例講解

    Java AtomicInteger類使用方法實例講解

    這篇文章主要介紹了Java AtomicInteger類使用方法實例講解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 解決swagger2.9.2接口文檔顯示的問題

    解決swagger2.9.2接口文檔顯示的問題

    這篇文章主要介紹了解決swagger2.9.2接口文檔顯示的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 基于binarywang封裝的微信工具包生成二維碼

    基于binarywang封裝的微信工具包生成二維碼

    這篇文章主要介紹了基于binarywang封裝的微信工具包生成二維碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐

    SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐

    MyBatis-Plus是基于MyBatis的持久層增強工具,提供簡化CRUD、代碼生成器、條件構造器、分頁及樂觀鎖等功能,極大簡化了開發(fā)工作量并提高了開發(fā)效率,本文就來介紹一下SpringBoot+MyBatis-Plus實現(xiàn)分頁的項目實踐,感興趣的可以了解一下
    2024-11-11
  • Java之Pattern.compile函數(shù)用法詳解

    Java之Pattern.compile函數(shù)用法詳解

    這篇文章主要介紹了Java之Pattern.compile函數(shù)用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08

最新評論

高淳县| 横山县| 雅安市| 叶城县| 崇仁县| 茌平县| 登封市| 大英县| 九寨沟县| 阳城县| 泸定县| 三河市| 务川| 贵港市| 平塘县| 台安县| 临夏县| 张家口市| 鄯善县| 保亭| 策勒县| 广东省| 安顺市| 临城县| 东光县| 留坝县| 仁寿县| 临泽县| 宁陕县| 界首市| 临海市| 晋江市| 工布江达县| 郓城县| 墨脱县| 滨海县| 东源县| 什邡市| 醴陵市| 长乐市| 眉山市|