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

SpringCloud?Eureka服務(wù)注冊(cè)中心應(yīng)用入門(mén)詳解

 更新時(shí)間:2022年07月12日 10:09:29   作者:有頭發(fā)的程序猿!  
這篇文章主要介紹了Spring?Cloud?Eureka服務(wù)注冊(cè)中心入門(mén)流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.多節(jié)點(diǎn)無(wú)縫切換問(wèn)題

  • 分布式節(jié)點(diǎn)中的服務(wù)宕機(jī)或者重啟不影響客戶端使用
  • 分布式節(jié)點(diǎn)中的服務(wù)宕機(jī)重啟不影響業(yè)務(wù)服務(wù)內(nèi)部通信

如果在某個(gè)分布式系統(tǒng)中想要解決上述問(wèn)題,那么這篇文章就是精華之處。

回顧一下以前的常用手段:

  • 單節(jié)點(diǎn)運(yùn)行,其他節(jié)點(diǎn)備用,無(wú)法無(wú)縫連接,內(nèi)網(wǎng)通信無(wú)法保證
  • 多節(jié)點(diǎn)運(yùn)行,nginx轉(zhuǎn)發(fā),這種時(shí)候需要加探測(cè),內(nèi)網(wǎng)通信需要先走到nginx
  • 多節(jié)點(diǎn)運(yùn)行,再運(yùn)行g(shù)ateway做靜態(tài)轉(zhuǎn)發(fā),宕機(jī)節(jié)點(diǎn)無(wú)法過(guò)濾

那么服務(wù)注冊(cè)與發(fā)現(xiàn)就油然而生。

2.服務(wù)注冊(cè)與發(fā)現(xiàn) Eureka

Eureka是什么?

Eureka是springcloud的核心模塊之一,它是一個(gè)基于RestFul的服務(wù),用于實(shí)現(xiàn)中間層服務(wù)發(fā)現(xiàn)和故障轉(zhuǎn)移,Eureka對(duì)于微服務(wù)來(lái)說(shuō)是非常重要的。

有了Eureka后,在服務(wù)中通信只需要使用對(duì)應(yīng)的服務(wù)表示,不再需要再配置文件中配一堆地址了,功能類(lèi)似于dubbo的注冊(cè)中心zookeeper。

Eureka原理

Eureka采用C/S的架構(gòu)設(shè)計(jì),所有的客戶端都往服務(wù)端注冊(cè),在客戶端中都與Eureka服務(wù)端保持心跳連接,在內(nèi)網(wǎng)通信中可以直接使用服務(wù)名來(lái)調(diào)用其他服務(wù),例如zuul、gatewway、內(nèi)網(wǎng)RPC通信。

Eureka基于心跳的形式保持連接,在客戶端啟動(dòng)后,默認(rèn)每30s往服務(wù)端發(fā)送心跳,如果服務(wù)端在默認(rèn)90s(三個(gè)周期)后沒(méi)有接收客戶端的心跳,則會(huì)將這個(gè)客戶端移除。

3.Springboot集成Eureka

3.1 父包pom依賴

基于springboot2.6.8,spring-cloud-dependencies2021.0.3

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.6.8</version>
</parent>
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>2021.0.3</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

3.2 eureka服務(wù)端

eureka服務(wù)端依賴

<!--注冊(cè)中心eureka-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

yml配置

server:
  port: 7510

eureka:
  instance:
    hostname: localhost
    #顯示真實(shí)IP 顯示DS replicas副本集
    prefer-ip-address: true
  client:
    # false表示自己端就是注冊(cè)中心,不需要去檢索服務(wù)
    fetch-registry: false
    # false表示不向注冊(cè)中心注冊(cè)自己,因?yàn)樽约罕旧砭褪亲?cè)中心
    register-with-eureka: false
    #其他服務(wù)的注冊(cè)地址
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    #關(guān)閉自我保護(hù)
    enable-self-preservation: false
    #啟用主動(dòng)失效,并且每次主動(dòng)檢測(cè)客戶端 間隔為3s 默認(rèn)60s
    #解決失聯(lián)服務(wù)沒(méi)被移除的問(wèn)題
    eviction-interval-timer-in-ms: 3000

Java代碼

啟動(dòng)類(lèi)添加注解

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

獲取當(dāng)前已注冊(cè)的服務(wù)信息

List<Application> applications = EurekaServerContextHolder.getInstance().getServerContext().getRegistry().getSortedApplications();
applications.forEach(application -> {
    application.getInstances().forEach(info -> {
    	//c.e.e.controller.EurekaTestController    : ORDER-SERVICE -- localhost:order-service:7530
        log.info("{} -- {}", info.getAppName(), info.getInstanceId());
    });
});

3.3 客戶端

pom依賴

<!--注冊(cè)中心eureka client-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

yml配置

server:
  port: 7530

eureka:
  client:
    service-url:
      #服務(wù)端注冊(cè)地址
      defaultZone: http://127.0.0.1:7510/eureka/
  instance:
    #控制臺(tái)status顯示真實(shí)ip 需要配合prefer-ip-address
#    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
    #顯示真實(shí)IP
    prefer-ip-address: true
    #每3秒發(fā)送心跳,證明存活
    lease-renewal-interval-in-seconds: 3
    #告知服務(wù)端超過(guò)5秒未收到當(dāng)前服務(wù)心跳視為掛掉
    lease-expiration-duration-in-seconds: 5

spring:
  application:
    name: order-service
  jackson:
    default-property-inclusion: non_null
    time-zone: Asia/Shanghai
  cloud:
    inetutils:
      #指定取網(wǎng)段的網(wǎng)卡 未開(kāi)始真實(shí)ip時(shí)默認(rèn)就是localhost
      preferred-networks: 192.168.0

preferred-networks和prefer-ip-address均配置時(shí),如下圖所示

都不配置時(shí),如下圖所示,此時(shí)內(nèi)網(wǎng)ip是不通的

啟動(dòng)類(lèi)上加@EnableEurekaClient注解

3.4 控制臺(tái)

訪問(wèn)http://127.0.0.1:7510/,注意不是服務(wù)注冊(cè)地址

同一個(gè)服務(wù)不同端口,一個(gè)客戶端打開(kāi)了instance-id配置,顯示的是真實(shí)IP。一個(gè)未打開(kāi)顯示的是localhost

PS:目前這個(gè)配置已在線上跑過(guò),未發(fā)現(xiàn)其他問(wèn)題!

到此這篇關(guān)于SpringCloud Eureka服務(wù)注冊(cè)中心應(yīng)用入門(mén)詳解的文章就介紹到這了,更多相關(guān)SpringCloud Eureka服務(wù)注冊(cè)中心內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java ObjectMapper使用詳解

    Java ObjectMapper使用詳解

    ObjectMapper類(lèi)是Jackson的主要類(lèi),它可以幫助我們快速的進(jìn)行各個(gè)類(lèi)型和Json類(lèi)型的相互轉(zhuǎn)換,本文給大家介紹Java ObjectMapper的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • 詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存

    詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存

    本篇文章主要介紹了詳解Spring Boot使用redis實(shí)現(xiàn)數(shù)據(jù)緩存,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • Java?Mybatis的初始化之Mapper.xml映射文件的詳解

    Java?Mybatis的初始化之Mapper.xml映射文件的詳解

    這篇文章主要介紹了Java?Mybatis的初始化之Mapper.xml映射文件的詳解,解析完全局配置文件后接下來(lái)就是解析Mapper文件了,它是通過(guò)XMLMapperBuilder來(lái)進(jìn)行解析的
    2022-08-08
  • Java實(shí)現(xiàn)去除文檔陰影的示例代碼

    Java實(shí)現(xiàn)去除文檔陰影的示例代碼

    文稿掃描大家用的都比較頻繁、想是各種證件、文件都可以通過(guò)掃描文稿功能保存到手機(jī)。相比直接拍照,在掃描文稿時(shí),程序會(huì)對(duì)圖像進(jìn)行一些矯正。比如去除陰影、修正傾斜、旋轉(zhuǎn)矯正等。進(jìn)行這些處理后的圖片要更加容易識(shí)別。今天就來(lái)討論一下去除陰影的操作
    2022-12-12
  • java  Swing基礎(chǔ)教程之圖形化實(shí)例代碼

    java Swing基礎(chǔ)教程之圖形化實(shí)例代碼

    這篇文章主要介紹了java Swing基礎(chǔ)教程之圖形化實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java實(shí)現(xiàn)控制臺(tái)輸出兩點(diǎn)間距離

    Java實(shí)現(xiàn)控制臺(tái)輸出兩點(diǎn)間距離

    這篇文章主要介紹了Java實(shí)現(xiàn)控制臺(tái)輸出兩點(diǎn)間距離,涉及了部分編程坐標(biāo)的問(wèn)題,具有一定參考價(jià)值,需要的朋友可以了解下
    2017-09-09
  • java實(shí)現(xiàn)簡(jiǎn)單聊天室單人版

    java實(shí)現(xiàn)簡(jiǎn)單聊天室單人版

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單聊天室的單人版,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Java虛擬機(jī)之對(duì)象創(chuàng)建過(guò)程與類(lèi)加載機(jī)制及雙親委派模型

    Java虛擬機(jī)之對(duì)象創(chuàng)建過(guò)程與類(lèi)加載機(jī)制及雙親委派模型

    這篇文章主要給大家介紹了關(guān)于Java虛擬機(jī)之對(duì)象創(chuàng)建過(guò)程與類(lèi)加載機(jī)制及雙親委派模型的相關(guān)資料,本文通過(guò)示例代碼以及圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Java字節(jié)緩沖流原理與用法詳解

    Java字節(jié)緩沖流原理與用法詳解

    這篇文章主要介紹了Java字節(jié)緩沖流原理與用法,結(jié)合實(shí)例形式總結(jié)分析了java字節(jié)流與緩沖區(qū)相關(guān)原理與操作技巧,需要的朋友可以參考下
    2019-09-09
  • java代理模式(jdk proxy)

    java代理模式(jdk proxy)

    代理(Proxy)是一種設(shè)計(jì)模式,提供了對(duì)目標(biāo)對(duì)象另外的訪問(wèn)方式;這篇文章主要介紹了Java 中的三種代理模式,需要的朋友可以參考下,希望能幫助到你
    2021-07-07

最新評(píng)論