欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

想要了解的請(qǐng)參考:一起來(lái)學(xué)Spring Cloud | 第一章 :如何搭建一個(gè)多模塊的springcloud項(xiàng)目

一、Eureka簡(jiǎn)介:

1.1 什么是eureka

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

1.2 eureka的功能

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

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

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

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

二、springcloud-eureka-server配置

我們首先回顧一下上一章節(jié)的項(xiàng)目目錄結(jié)構(gòu):

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

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

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

# 設(shè)置的eureka端口號(hào)
server.port=8761
# 設(shè)置eureka的主機(jī)地址
eureka.instance.hostname=localhost
#表示是否將自己注冊(cè)到Eureka Server,默認(rèn)為true。由于當(dāng)前應(yīng)用就是Eureka Server,故而設(shè)置為false
eureka.client.registerWithEureka=false
#表示是否從Eureka Server獲取注冊(cè)信息,默認(rèn)為true。因?yàn)檫@是一個(gè)單點(diǎn)的Eureka Server,不需要同步其他的Eureka Server節(jié)點(diǎn)的數(shù)據(jù),故而設(shè)置為false
eureka.client.fetchRegistry=false
#Eureka server地址,查詢服務(wù)和注冊(cè)服務(wù)都需要依賴這個(gè)地址,多個(gè)地址可用逗號(hào)(英文的)分割
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
# 服務(wù)模塊名稱
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版本不對(duì),可嘗試去父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)項(xiàng)目。

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

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

三、springcloud-eureka-client配置

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

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

<?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項(xiàng)目</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ù)之間相互調(diào)用一般都是根據(jù)這個(gè)name

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

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

通過(guò)注解@EnableEurekaClient 表明自己是一個(gè)eurekaclient,可以注入到對(duì)應(yīng)配置的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)項(xiàng)目。

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

測(cè)試springcloud-eureka-client中是否可以正常使用

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

@RestController注解相當(dāng)于@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碼農(nóng)") String name) {<br>        return name + ",welcome to springcloud! server port:" + port;<br>    }
}

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

四、總結(jié):

完成所有功能后,項(xiàng)目目錄結(jié)構(gòu)如下:

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

相關(guān)文章

  • spring boot security自定義認(rèn)證的代碼示例

    spring boot security自定義認(rèn)證的代碼示例

    這篇文章主要介紹了spring boot security自定義認(rèn)證,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 利用java制作一個(gè)小的目錄查詢器的方法

    利用java制作一個(gè)小的目錄查詢器的方法

    下面小編就為大家?guī)?lái)一篇利用java制作一個(gè)小的目錄查詢器的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 詳解微信開(kāi)發(fā)之a(chǎn)ccess_token之坑

    詳解微信開(kāi)發(fā)之a(chǎn)ccess_token之坑

    access_token分類(lèi)一是普通access_token,二是網(wǎng)頁(yè)授權(quán)access_token。這篇文章主要介紹了詳解微信開(kāi)發(fā)之a(chǎn)ccess_token之坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • java實(shí)現(xiàn)dijkstra最短路徑尋路算法

    java實(shí)現(xiàn)dijkstra最短路徑尋路算法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)dijkstra最短路徑尋路算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java中Optional的使用詳細(xì)解析

    java中Optional的使用詳細(xì)解析

    這篇文章主要介紹了java新特性之Optional的詳細(xì)解析,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • mybatis xml中特殊字符處理及特殊符號(hào)

    mybatis xml中特殊字符處理及特殊符號(hào)

    這篇文章主要介紹了mybatis xml中特殊字符處理及mybatis特殊符號(hào)處理技巧,mybatis特殊符號(hào)處理給大家介紹了兩種寫(xiě)法,感興趣的朋友一起看看吧
    2018-03-03
  • Rabbit消息重試機(jī)制問(wèn)題記錄

    Rabbit消息重試機(jī)制問(wèn)題記錄

    消息重試機(jī)制就是在消息處理失敗之后重新發(fā)送,主要時(shí)為了解決消息發(fā)送過(guò)程可能會(huì)出現(xiàn)的問(wèn)題,例如 網(wǎng)絡(luò)故障、服務(wù)臨時(shí)不可用 等,這篇文章主要介紹了Rabbit消息重試機(jī)制問(wèn)題記錄,需要的朋友可以參考下
    2024-08-08
  • Mybatis-plus基于redis實(shí)現(xiàn)二級(jí)緩存過(guò)程解析

    Mybatis-plus基于redis實(shí)現(xiàn)二級(jí)緩存過(guò)程解析

    這篇文章主要介紹了Mybatis-plus基于redis實(shí)現(xiàn)二級(jí)緩存過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口

    SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口

    接口限流是為了保護(hù)系統(tǒng)和服務(wù),防止因?yàn)檫^(guò)多的請(qǐng)求而崩潰,本文主要介紹了SpringCloud+Redis實(shí)現(xiàn)Api接口限流防止惡意刷接口,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Spring中基于XML的面向切面編程(AOP)詳解

    Spring中基于XML的面向切面編程(AOP)詳解

    這篇文章主要詳細(xì)介紹了Spring中基于XML的面向切面編程(AOP),文中通過(guò)代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-04-04

最新評(píng)論