亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud?Eureka服務注冊中心應用入門實例分析

發布時間:2022-07-12 14:27:15 來源:億速云 閱讀:162 作者:iii 欄目:開發技術

這篇文章主要介紹“SpringCloud Eureka服務注冊中心應用入門實例分析”,在日常操作中,相信很多人在SpringCloud Eureka服務注冊中心應用入門實例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SpringCloud Eureka服務注冊中心應用入門實例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    1.多節點無縫切換問題

    • 分布式節點中的服務宕機或者重啟不影響客戶端使用

    • 分布式節點中的服務宕機重啟不影響業務服務內部通信

    如果在某個分布式系統中想要解決上述問題,那么這篇文章就是精華之處。

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

    • 單節點運行,其他節點備用,無法無縫連接,內網通信無法保證

    • 多節點運行,nginx轉發,這種時候需要加探測,內網通信需要先走到nginx

    • 多節點運行,再運行gateway做靜態轉發,宕機節點無法過濾

    那么服務注冊與發現就油然而生。

    2.服務注冊與發現 Eureka

    Eureka是什么?

    Eureka是springcloud的核心模塊之一,它是一個基于RestFul的服務,用于實現中間層服務發現和故障轉移,Eureka對于微服務來說是非常重要的。

    有了Eureka后,在服務中通信只需要使用對應的服務表示,不再需要再配置文件中配一堆地址了,功能類似于dubbo的注冊中心zookeeper。

    Eureka原理

    Eureka采用C/S的架構設計,所有的客戶端都往服務端注冊,在客戶端中都與Eureka服務端保持心跳連接,在內網通信中可以直接使用服務名來調用其他服務,例如zuul、gatewway、內網RPC通信。

    Eureka基于心跳的形式保持連接,在客戶端啟動后,默認每30s往服務端發送心跳,如果服務端在默認90s(三個周期)后沒有接收客戶端的心跳,則會將這個客戶端移除。

    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服務端

    eureka服務端依賴

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

    yml配置

    server:
      port: 7510

    eureka:
      instance:
        hostname: localhost
        #顯示真實IP 顯示DS replicas副本集
        prefer-ip-address: true
      client:
        # false表示自己端就是注冊中心,不需要去檢索服務
        fetch-registry: false
        # false表示不向注冊中心注冊自己,因為自己本身就是注冊中心
        register-with-eureka: false
        #其他服務的注冊地址
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
      server:
        #關閉自我保護
        enable-self-preservation: false
        #啟用主動失效,并且每次主動檢測客戶端 間隔為3s 默認60s
        #解決失聯服務沒被移除的問題
        eviction-interval-timer-in-ms: 3000

    Java代碼

    啟動類添加注解

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

    獲取當前已注冊的服務信息

    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依賴
    <!--注冊中心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:
          #服務端注冊地址
          defaultZone: http://127.0.0.1:7510/eureka/
      instance:
        #控制臺status顯示真實ip 需要配合prefer-ip-address
    #    instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
        #顯示真實IP
        prefer-ip-address: true
        #每3秒發送心跳,證明存活
        lease-renewal-interval-in-seconds: 3
        #告知服務端超過5秒未收到當前服務心跳視為掛掉
        lease-expiration-duration-in-seconds: 5

    spring:
      application:
        name: order-service
      jackson:
        default-property-inclusion: non_null
        time-zone: Asia/Shanghai
      cloud:
        inetutils:
          #指定取網段的網卡 未開始真實ip時默認就是localhost
          preferred-networks: 192.168.0

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

    SpringCloud?Eureka服務注冊中心應用入門實例分析

    都不配置時,如下圖所示,此時內網ip是不通的

    SpringCloud?Eureka服務注冊中心應用入門實例分析

    啟動類上加@EnableEurekaClient注解

    3.4 控制臺

    訪問http://127.0.0.1:7510/,注意不是服務注冊地址

    SpringCloud?Eureka服務注冊中心應用入門實例分析

    同一個服務不同端口,一個客戶端打開了instance-id配置,顯示的是真實IP。一個未打開顯示的是localhost

    PS:目前這個配置已在線上跑過,未發現其他問題!

    到此,關于“SpringCloud Eureka服務注冊中心應用入門實例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    西充县| 磴口县| 当阳市| 应城市| 黔东| 行唐县| 二连浩特市| 西乌珠穆沁旗| 碌曲县| 仲巴县| 喀什市| 荆州市| 宜城市| 博兴县| 济阳县| 克拉玛依市| 松滋市| 体育| 齐河县| 上虞市| 肥东县| 重庆市| 南宫市| 集安市| 环江| 湟中县| 阳信县| 台中市| 霍城县| 张家口市| 正蓝旗| 隆林| 于都县| 微山县| 图片| 永新县| 荔波县| 饶平县| 苏尼特右旗| 额敏县| 普兰县|