国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JavaWeb_SpringCloud微服務(wù)_Day1-eureka, ribbon, nacos

這篇具有很好參考價值的文章主要介紹了JavaWeb_SpringCloud微服務(wù)_Day1-eureka, ribbon, nacos。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

認識微服務(wù)

微服務(wù)技術(shù)對比

Dubbo SpringCloud SpringCloudAlibaba
注冊中心 zookeeper, Redis Eureka, Consul Nacos, Eureka
服務(wù)遠程調(diào)用 Dubbo協(xié)議 Feign(http協(xié)議) Dubbo, Feign
配置中心 SpringCloudConfig SpringCloudConfig, Nacos
服務(wù)網(wǎng)關(guān) SpringCloudGateway, Zuul SpringCloudGateway, Zuul
服務(wù)監(jiān)控和保護 dubbo-admin, 功能弱 Hystrix Sentinel

分布式服務(wù)架構(gòu)案例

遠程調(diào)用

  1. 注冊RestTemplate
    /**
     * 創(chuàng)建RestTemplate并注入Spring容器
     * @return
     */
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
    
  2. 服務(wù)遠程調(diào)用RestTemplate
    @Autowired
    private RestTemplate restTemplate;
    
    public Order queryOrderById(Long orderId) {
        // 1.查詢訂單
        Order order = orderMapper.findById(orderId);
        // 2. 利用RestTemplate發(fā)起http請求, 查詢用戶
        // 2.1 url路徑
        String url = "http://localhost:8081/user/"+order.getUserId();
        // 2.2 發(fā)送http請求, 實現(xiàn)遠程調(diào)用
        User user = restTemplate.getForObject(url, User.class);
        // 3 封裝user到order
        order.setUser(user);
        // 4.返回
        return order;
    }
    

eureka注冊中心

原理

在Eureka架構(gòu)中, 微服務(wù)角色有兩類:

  • EurekaServer: 服務(wù)端, 注冊中心
    • 記錄服務(wù)信息
    • 心跳監(jiān)控
  • EurekaClient: 客戶端
    • Provider: 服務(wù)提供者
      • 注冊自己的信息到EurekaServer
      • 每隔30秒向EurekaServer發(fā)送心跳
    • Consumer: 服務(wù)消費者
      • 根據(jù)服務(wù)名稱從EurekaServer拉取服務(wù)列表
      • 基于服務(wù)列表做負載均衡, 選中一個微服務(wù)后發(fā)起遠程調(diào)用

搭建EurekaServer

  1. 引入eureka-server依賴
    <!-- eureka服務(wù)端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
    
  2. 添加@EnableEurekaServer注解
    @EnableEurekaServer
    @SpringBootApplication
    public class EurekaApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaApplication.class, args);
        }
    }
    
  3. 在application.yml中配置eureka地址
    server:
      port: 10086
    spring:
      application:
        name: eurekaserver
    eureka:
      client:
        service-url:
          defaultZone: http://127.0.0.1:10086/eureka/
    

服務(wù)注冊

  1. 引入eureka-client依賴
    <!-- eureka客戶端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
  2. 在application.yml中配置eureka地址
  3. 啟動多個實例: 右鍵服務(wù)copy configuration, 在啟動項vm option中修改端口號

服務(wù)發(fā)現(xiàn)

  1. 給RestTemplate添加@LoadBalanced注解, 負載均衡
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
    
  2. 用服務(wù)提供者的服務(wù)名稱遠程調(diào)用
    // String url = "http://localhost:8081/user/"+order.getUserId();
    String url = "http://userserver/user/"+order.getUserId();
    

Ribbon負載均衡

修改負載均衡

  1. 代碼方式 (全體)
    /**
     * 更換負載均衡策略為隨機
     * @return
     */
    @Bean
    public IRule randomRule()
    {
        return new RandomRule();
    }
    ```erer
    
  2. 配置文件方式 (只針對某個微服務(wù))
    userserver: # 給某個微服務(wù)配置負載均衡規(guī)則,這里是userserver服務(wù)
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 負載均衡規(guī)則 
    

饑餓加載

  • Ribbon默認是采用懶加載, 即第一次訪問時才會創(chuàng)建LoadBalanceClient, 請求時間很長.
  • 饑餓加載在項目啟動時創(chuàng)建, 降低第一次訪問的耗時
    ribbon:
      eager-load: # 饑餓加載
        enabled: true
        clients: userserver # 指定服務(wù)
    

nacos注冊中心

快速入門

  1. 父工程添加spring-cloud-alibaba管理依賴
    <!-- nacos的管理依賴 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2.2.5.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    
  2. nacos客戶端依賴
    <!-- nacos客戶端依賴 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  3. 配置文件
    spring:
      cloud:
        nacos:
            server-addr: localhost:8848 # nacos服務(wù)地址
    
  4. 集群配置
    spring:
      cloud:
        nacos:
            server-addr: localhost:8848 # nacos服務(wù)地址
            discovery:
                cluster-name: SH # 集群地址
    
  5. NacosRule負載均衡策略
    userserver: # 給某個微服務(wù)配置負載均衡規(guī)則,這里是userservice服務(wù)
        ribbon:
            # NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 負載均衡規(guī)則
            NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負載均衡規(guī)則
    
    • 優(yōu)先選擇同集群服務(wù)實例列表
    • 本地集群找不到提供者, 才去其他集群尋找, 并且會報警告
    • 確定了可用實例列表后, 再采用隨機負載均衡挑選實例
  6. 命名空間
    spring:
      cloud:
        nacos:
          discovery:
            namespace: xxx # 命令空間
    
    • namespace用來做環(huán)境隔離
    • 每個namespace都有唯一id
    • 不同namespace下的服務(wù)不可見

eureka和nacos對比

  1. nacos非臨時實例
    spring:
      cloud:
        nacos:
          discovery:
            ephemeral: false # 設(shè)置為非臨時實例
    
  2. nacos與eureka的共同點
    • 都支持服務(wù)注冊和服務(wù)拉取
    • 都支持服務(wù)提供者心跳方式做健康檢測
  3. nacos與eureka的區(qū)別
    • nacos支持服務(wù)端主動檢測提供者狀態(tài): 臨時實例采用心跳模式, 非臨時實例采用主動檢測模式
    • 臨時實例心跳不正常會被剔除, 非臨時實例則不會被剔除
    • nacos支持服務(wù)列表變更的消息推送模式, 服務(wù)列表更新更及時
    • nacos集群默認采用ap方式(強調(diào)數(shù)據(jù)的可用性), 當集群中存在非臨時實例時, 采用cp模式(強調(diào)數(shù)據(jù)的可靠性和一致性); eureka采用ap方式

來源

黑馬程序員. SpringCloud微服務(wù)文章來源地址http://www.zghlxwxcb.cn/news/detail-576652.html

到了這里,關(guān)于JavaWeb_SpringCloud微服務(wù)_Day1-eureka, ribbon, nacos的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 學成在線----day1

    學成在線----day1

    1、項目的背景,包括:是自研還是外包、什么業(yè)務(wù)、服務(wù)的客戶群是誰、誰去運營等問題。 2、項目的業(yè)務(wù)流程 3、項目的功能模塊 4、項目的技術(shù)架構(gòu) 5、個人工作職責 6、個人負責模塊的詳細說明,包括模塊的設(shè)計,所用到的技術(shù),技術(shù)的實現(xiàn)方案等。 一個例子: 我最近參

    2024年02月08日
    瀏覽(22)
  • 黑馬頭條---day1

    黑馬頭條---day1

    手機端查看 1、docker刪除所有鏡像命令 刪除所有鏡像的命令是Docker中一個非常常見的操作。下面是具體的實現(xiàn)步驟和命令示例: 這里的 docker ps -aq 和 docker images -aq 是一系列用于查找和選擇容器和鏡像的 Docker 命令。 2. docker刪除鏡像文件 如果使用 docker rmi 命令時突然出現(xiàn)“

    2024年02月05日
    瀏覽(21)
  • ARM day1

    ARM day1

    ARM可以工作的七種模式 用戶、系統(tǒng)、快中斷、中斷、管理、終止、未定義 ARM核的寄存器個數(shù) 37個32位長的寄存器,當前處理器的模式?jīng)Q定著哪組寄存器可操作,且任何模式都可以存取: PC(program counter程序計數(shù)器)+ CPSR(current program status register當前程序狀態(tài)寄存器)+ 5*SPSR(saved

    2024年01月16日
    瀏覽(19)
  • 瑞吉外賣day1

    瑞吉外賣day1

    本項目(瑞吉外賣)是專門為餐飲企業(yè)(餐廳、飯店)定制的一款軟件產(chǎn)品,包括系統(tǒng)管理后臺和移動端應(yīng)用兩部分。其中系統(tǒng)管理后臺主要提供給餐飲企業(yè)內(nèi)部員工使用,可以對餐廳的菜品、套餐、訂單等進行管理維護。移動端應(yīng)用 心 主要提供給消費者使用,可以在線瀏

    2024年02月03日
    瀏覽(23)
  • Qt : day1

    Qt : day1

    ?2.思維導圖 ? ? ?

    2024年02月16日
    瀏覽(18)
  • 云計算Day1

    查看電腦IP地址:Win+R輸入cmd進入窗口輸入ipconfig ?ipv4地址查看? [root@localhost ~]# root:代表當前登錄系統(tǒng)的用戶的用戶名 localhost:主機名 ~:當前用戶的家目錄 #:超級用戶的命令提示符 啟動網(wǎng)卡:ifup ens33 查看IP地址:ip a 查看時間: 系統(tǒng)時間:date 硬件時間:hwclock -r 修改時間

    2024年04月23日
    瀏覽(18)
  • QT day1

    QT day1

    ?

    2024年02月12日
    瀏覽(19)
  • day1:前端緩存問題

    ? 「目標」 : 持續(xù)輸出!每日分享關(guān)于web前端常見知識、面試題、性能優(yōu)化、新技術(shù)等方面的內(nèi)容。篇幅不會過長,方便理解和記憶。 ? ? 「主要面向群體:」 前端開發(fā)工程師(初、中、高級)、應(yīng)屆、轉(zhuǎn)行、培訓等同學 ? Day1-今日話題 「前端web項目緩存問題如何處理?

    2024年02月12日
    瀏覽(20)
  • 算法筆記day1小結(jié)

    最近在通過胡凡的算法筆記一書學習算法,準備開個帖子記錄下每日學習進展,話不多說那就開始吧! 定義:內(nèi)存地址稱為指針 , 指針變量即存儲地址的變量。(雖然有點繞口,但可以理解為指針就是一個地址,對應(yīng)著內(nèi)存中的一個存儲單元。unsigned類型的整數(shù))。 指針的

    2024年02月19日
    瀏覽(20)
  • 網(wǎng)絡(luò)編程day1

    網(wǎng)絡(luò)編程day1

    2024年02月01日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包