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

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ù)表示,不再需要再配置文件中配一堆地址了,功能類似于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)類添加注解

@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)類上加@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枚舉類型(enum)

    秒懂Java枚舉類型(enum)

    這篇文章主要介紹了秒懂Java枚舉類型(enum),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 使用 Java 類 實(shí)現(xiàn)Http協(xié)議

    使用 Java 類 實(shí)現(xiàn)Http協(xié)議

    這篇文章主要介紹了用幾個(gè)Java類簡(jiǎn)單的實(shí)現(xiàn)了Http協(xié)議相關(guān)資料,感興趣的的朋友可以參考下面具體的文章內(nèi)容
    2021-09-09
  • Spring 使用xml配置AOP的過(guò)程詳解

    Spring 使用xml配置AOP的過(guò)程詳解

    在之前的學(xué)習(xí)中,都是使用注解的方式進(jìn)行AOP的配置.其實(shí)使用xml配置文件也可以配置AOP,本文給大家分享Spring 使用xml配置AOP的過(guò)程,感興趣的朋友一起看看吧
    2023-11-11
  • Java中for、foreach、stream區(qū)別和性能比較詳解

    Java中for、foreach、stream區(qū)別和性能比較詳解

    for、foreach、stream都可以循環(huán)處理數(shù)據(jù),如果單純當(dāng)循環(huán)使用,for、foreach、stream哪個(gè)性能更好,這篇文章主要給大家介紹了關(guān)于Java中for、foreach、stream區(qū)別和性能的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 基于jstree使用JSON數(shù)據(jù)組裝成樹(shù)

    基于jstree使用JSON數(shù)據(jù)組裝成樹(shù)

    這篇文章主要為大家詳細(xì)介紹了基于jstree使用JSON數(shù)據(jù)組裝成樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 解決spring cloud服務(wù)啟動(dòng)之后回到命令行會(huì)自動(dòng)掛掉問(wèn)題

    解決spring cloud服務(wù)啟動(dòng)之后回到命令行會(huì)自動(dòng)掛掉問(wèn)題

    這篇文章主要介紹了解決spring cloud服務(wù)啟動(dòng)之后回到命令行會(huì)自動(dòng)掛掉問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 解決從Map、JSONObject取不存在鍵值對(duì)時(shí)的異常情況

    解決從Map、JSONObject取不存在鍵值對(duì)時(shí)的異常情況

    這篇文章主要介紹了解決從Map、JSONObject取不存在鍵值對(duì)時(shí)的異常情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java內(nèi)存模型(JMM)及happens-before原理

    Java內(nèi)存模型(JMM)及happens-before原理

    這篇文章主要介紹了java內(nèi)存模型(JMM)及happens-before原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springboot 實(shí)現(xiàn)bean手動(dòng)注入操作

    springboot 實(shí)現(xiàn)bean手動(dòng)注入操作

    這篇文章主要介紹了springboot 實(shí)現(xiàn)bean手動(dòng)注入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • 使用純java config來(lái)配置spring mvc方式

    使用純java config來(lái)配置spring mvc方式

    這篇文章主要介紹了使用純java config來(lái)配置spring mvc方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評(píng)論

棋牌| 泸州市| 黄龙县| 宜川县| 定南县| 阳信县| 棋牌| 塔河县| 鄂托克旗| 郸城县| 竹山县| 汝阳县| 炎陵县| 莱西市| 苏州市| 湘西| 新乐市| 壶关县| 隆尧县| 成安县| 普安县| 上高县| 磴口县| 黄龙县| 密山市| 安宁市| 江西省| 裕民县| 新宁县| 修武县| 九龙城区| 郧西县| 富民县| 鞍山市| 江津市| 赤城县| 临高县| 清涧县| 临西县| 阜阳市| 阳山县|