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

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

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

      ribbon客戶端負載均衡

      Ribbon簡介

      參考:https://blog.csdn.net/chengqiuming/article/details/80711168

      Ribbon是Netflix發(fā)布的負載均衡器,它有助于控制HTTP和TCP的客戶端的行為。為Ribbon配置服務提供者地址后,Ribbon就可基于某種負載均衡算法,自動地幫助服務消費者去請求。Ribbon默認為我們提供了很多負載均衡算法,例如輪詢、隨機等。當然,我們也可為Ribbon實現(xiàn)自定義的負載均衡算法。
      在Spring Cloud中,當Ribbon與Eureka配合使用時,Ribbon可自動從Eureka Server獲取服務提供者地址列表,并基于負載均衡算法,請求其中一個服務提供者實例。展示了Ribbon與Eureka配合使用時的架構

      客戶端負責均衡

      負載均衡又區(qū)分了兩種類型:

      1. 客戶端負載均衡(Ribbon)
        服務實例的清單在客戶端,客戶端進行負載均衡算法分配。
        (從上面的知識我們已經(jīng)知道了:客戶端可以從Eureka Server中得到一份服務清單,在發(fā)送請求時通過負載均衡算法,在多個服務器之間選擇一個進行訪問)
      2. 服務端負載均衡(Nginx)
        服務實例的清單在服務端,服務器進行負載均衡算法分配

      客戶端負責均衡ribbon

      graph TD
      服務消費者-->ribbon
      ribbon-->服務清單1
      ribbon-->服務清單2
      ribbon-->服務清單3
      服務清單1-->eureka里的服務1
      服務清單2-->eureka里的服務2
      服務清單3-->eureka里的服務3
      

      使用

      @EnableDiscoveryClient
      @SpringBootApplication
      public class ConsumerMovieApplication {
        @Bean
        @LoadBalanced
        public RestTemplate restTemplate() {
          return new RestTemplate();
        }
       
        public static void main(String[] args) {
          SpringApplication.run(ConsumerMovieApplication.class, args);
        }
      
      }
      

      程序代碼,使用負載均衡

      
      @RestController
      public class MovieController {
        private static final Logger LOGGER = LoggerFactory.getLogger(MovieController.class);
        @Autowired
        private RestTemplate restTemplate;
        @Autowired
        private LoadBalancerClient loadBalancerClient;
       
        @GetMapping("/user/{id}")
        public User findById(@PathVariable Long id) {
          //VIP:virtual IP
          return this.restTemplate.getForObject("http://microservice-provider-user/" + id, User.class);
        }
       
        @GetMapping("/log-user-instance")
        public void logUserInstance() {
          ServiceInstance serviceInstance = this.loadBalancerClient.choose("microservice-provider-user");
          // 打印當前選擇的是哪個節(jié)點
          MovieController.LOGGER.info("{}:{}:{}", serviceInstance.getServiceId(), serviceInstance.getHost(), serviceInstance.getPort());
        }
      }
      
      

      配置

      server:
        port: 8010
      spring:
        application:
          name: microservice-consumer-movie
      eureka:
        client:
          serviceUrl:
            defaultZone:http://localhost:8761/eureka/
        instance:
          prefer-ip-address: true
      
      

      測試

      1. 啟動eureka微服務
      2. 啟動movie-ribbon微服務
      3. 啟動一個user微服務
      4. 啟動第二個user微服務
      5. 觀察eureka的變化
      posted @ 2019-07-01 10:33  張占嶺  閱讀(1169)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 方山县| 欧美视频在线播放观看免费福利资源 | 欧美一区二区三区欧美日韩亚洲| 人妻精品久久无码区| 日本熟妇人妻一区二区三区| 国产精品美女www爽爽爽视频| 日韩加勒比一本无码精品| 国产区成人精品视频| 人妻少妇精品专区性色av| 99精品国产在热久久婷婷| 好看的国产精品自拍视频| 国产一区二区三区在线观| 2021国产精品视频网站| 久久精品午夜视频| 男女扒开双腿猛进入爽爽免费看| 无码人妻久久一区二区三区app| 国产亚洲精品久久久久久无亚洲| 久久精品国产亚洲av天海翼| 91亚洲免费视频| 久久久久国产精品熟女影院 | 亚洲av熟女国产一二三| 久久99久国产精品66| 么公的好大好硬好深好爽视频| 国产偷国产偷亚洲高清人| 国产91麻豆视频免费看| 久久综合久中文字幕青草| www国产无套内射com| 免费视频一区二区三区亚洲激情| 日韩欧美aⅴ综合网站发布| 护士张开腿被奷日出白浆| 欧洲精品码一区二区三区| 国产福利姬喷水福利在线观看| 亚洲天堂久久一区av| 午夜三级成人在线观看| 成人免费无码大片A毛片抽搐色欲 成人啪精品视频网站午夜 | 西西人体大胆444WWW| 亚洲国产成人精品无码区在线观看 | 国产精品一二三中文字幕| 国产精品亚洲二区在线播放| 综合久久av一区二区三区| 亚洲各类熟女们中文字幕|