<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SpringBoot3.1.5對應新版本SpringCloud開發(1)-Eureka注冊中心

      服務的提供者和消費者

      服務之間可以通過Spring提供的RestTemplate來進行http請求去請求另一個Springboot的項目,這就叫做服務間的遠程調用。
      當一個服務通過遠程調用去調用另一個服務時,被調用的服務就叫做服務的提供者,調用服務的服務就叫做服務的消費者。
      一個服務可以既是服務的提供者也是服務的消費者。
      

      1、服務調用關系

      • 服務提供者:暴露接口給其它微服務調用
      • 服務消費者:調用其它微服務提供的接口
      • 提供者和消費者的角色其實是相對的

      Eureka注冊中心

      • 遠程調用的問題

      • eureka原理

      • 搭建eurekaServer

      • 服務注冊

      • 服務發現

      eureka的作用

      • 消費者該如何獲取服務提供者的具體信息
        1. 服務提供者啟動時向eureka注冊自己的信息
        2. eureka保存這些信息
        3. 消費者根據服務名稱向eureka拉取提供者信息
      • 如果有多個服務提供者,消費者該如何選擇
        1. 服務消費者利用負載均衡算法,從服務列表中挑選一個
      • 消費者如何感知服務提供者健康狀態
        1. 服務提供者會每隔30s向EurekaServer發送心跳請求,報告健康狀態
        2. eureka會更新記錄服務列表信息,心跳不正常會被剔除
        3. 消費者就可以拉取到最新的信息

      在eureka架構中,微服務角色有兩類:

      • EurekaServer:服務端、注冊中心
        1. 記錄服務信息
        2. 心跳監控
      • EurekaClient:客戶端
        1. provider:服務提供者
          1. 注冊自己的信息到EurekaServer中
          2. 每隔30S向EurekaServer發送心跳
        2. consumer:服務消費者
          1. 根據服務名稱從EurekaServer拉取服務列表
          2. 基于服務列表做負載均衡,選中一個微服務后發起遠程調用

      EurekaServer服務注冊

      • 創建eureka服務端

      父工程引入對應版本的springcloud依賴

      springboot 3.1.5對應

      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-dependencies</artifactId>
          <version>2022.0.4</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
      

      引入eureka服務端依賴

      <dependencies>
          <dependency>
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
          </dependency>
      </dependencies>
      

      啟動eureka服務,在啟動類上添加@EnableEurekaServer注解

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

      配置文件中配置服務名稱-地址-服務端口

      spring:
        application:
          name: eureka-server #微服務名稱
      server:
        port: 10086 #服務端口
      eureka:
        client:
          service-url: #eureka地址信息 eureka自己也是一個微服務,也會被注冊到eureka中 為了做eureka集群
            defaultZone: http://127.0.0.1:10086/eureka
      

      eureka服務端自己也會被注冊到eureka服務中

      然后就可以訪問http://127.0.0.1:10086進入eureka注冊中心了

      • 服務注冊

      確保父工程成功引入cloud依賴后引入eureka服務端依賴

      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
      
      </dependency>
      

      在配置文件中配置eureka服務名稱和地址即可

      server:
        port: 8081
      spring:
        application:
          name: cloud-user
      eureka:
        client:
          service-url:
            defaultZone: http://127.0.0.1:10086/eureka
      
      • 服務發現

      引入依賴

      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
      
      </dependency>
      

      配置地址

      eureka:
        client:
          service-url:
            defaultZone: http://127.0.0.1:10086/eureka
      

      給RestTemplate添加上@LoadBalanced注解,實現同一服務多個地址的負載均衡調用

      //RestTemplate spring提供的遠程調用模塊 允許發送http請求
      @Bean
      @LoadBalanced
      public RestTemplate restTemplate(){
          return new RestTemplate();
      }
      

      使用RestTemplate不通過具體的ip地址而是通過服務名稱遠程調用實現查詢

      @Autowired
      RestTemplate restTemplate;
      @GetMapping("/order/all/{id}")
      public ordersUser getAllById(@PathVariable("id") Integer id){
          String str1 = "http://cloud-order/order/"+id;
          orders od = restTemplate.getForObject(str1, orders.class);
          String str = "http://cloud-user/user/"+od.getOrderuserid();
          user forObject = restTemplate.getForObject(str, user.class);
          ordersUser ordersUser = new ordersUser();
      
          ordersUser.setOrderid(od.getOrderid());
          ordersUser.setUser(forObject);
          ordersUser.setOrdername(od.getOrdername());
          ordersUser.setOrderaddress(od.getOrderaddress());
          ordersUser.setOrderprice(od.getOrderprice());
          ordersUser.setOrdernumber(od.getOrdernumber());
      
          return ordersUser;
      }
      
      posted @ 2024-05-03 16:02  高同學,你好  閱讀(554)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品国产三级国产专i| 韩国无码AV片午夜福利| 亚洲另类激情专区小说图片| 亚洲国产中文字幕在线视频综合| 亚洲欧美综合中文| 在线观看人成视频免费| 久久这里都是精品一区| 成年女人片免费视频播放A| 国产成人精品一区二区秒拍1o| 无码国模国产在线观看免费| 中文字幕久区久久中文字幕| 92国产精品午夜福利免费| 亚洲国产午夜精品福利| 国产欧美日韩精品第二区| 欧美视频精品免费覌看| 北岛玲中文字幕人妻系列| 男女性杂交内射女bbwxz| 亚洲中文字幕在线无码一区二区| 久久99精品国产99久久6男男| 中文国产不卡一区二区| 亚洲精品自拍在线视频| 十四以下岁毛片带血a级| 国产亚洲精品久久久网站好莱| 亚洲国产精品成人av网| 无码av中文字幕久久专区| 视频二区中文字幕在线| 国产精品人成视频免费播放| 欧美精品一区二区三区中文字幕 | 九九热免费在线播放视频| 成在线人免费视频| 亚洲A综合一区二区三区| 无码 人妻 在线 视频| 国产综合久久久久久鬼色| av天堂亚洲天堂亚洲天堂| 四虎永久免费高清视频| 亚洲大尺度一区二区av| 美欧日韩一区二区三区视频| 国产精品一区在线蜜臀| 亚洲av日韩av中文高清性色| 无码人妻aⅴ一区二区三区蜜桃| 精品国产一区二区三区2021|