日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

spring cloud服務之間的調用之ribbon詳解

瀏覽:19日期:2023-06-27 15:24:48
前言

昨天,我們通過一個實例演示了,spring-cloud服務注冊組件——Eureka的基本配置和簡單用法,但是服務注冊就是為了方便后期的發現和調用,所以今天我們趁熱打鐵,分享下spring-cloud服務之間的調用。

服務間的調用

關于spring-cloud的服務調用,我們首先需要了解它的兩個核心組件Ribbon和Feign。

我們都知道,spring boot的接口都是基于REST實現的,但是在實際線上運行的時候,考慮到用戶規模、服務可用性等方面的因素,我們一般很少是單節點運行的,通常都是以集群模式部署的,但是在集群部署中,又有一個核心的問題必須解決——負載均衡。關于負載均衡,各位小伙伴應該不陌生,最常用的組件之一nginx其中一個很核心的用途就是做負載均衡,但是nginx在實際做負載均衡的時候,確實不夠方便,需要手動配置服務地址,如果服務地址發生變化,相關配置也需要修改,所以不夠靈活。

當然spring cloud作為一款微服務綜合框架,它自然也提供了自己的一套負載均衡解決方案,所以接下來我們就來看下spring cloud的負載均衡組件——Ribbon。

Ribbon

Ribbon中文的意思是絲帶、帶狀物,正如它的含義,它就是連接調用方和服務之間的紐帶。

依賴

我們先通過一個簡單實例,來演示下,然后在示例的過程中來解釋,首先是它的核心依賴:

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> <version>2.2.9.RELEASE</version></dependency>配置

這個組件你需要添加到服務調用方的依賴中。同時,還需要增加它的配置:

@Configurationpublic class RibbonConfig { // 多節點負載 @LoadBalanced @Bean(name = 'restTemplate') public RestTemplate restTemplate() {return new RestTemplate(); }}

@LoadBalanced注解的作用是啟用多節點負載,這樣后期我們在調用的時候,RestTemplate客戶端其實就是通過負載均衡的方式在調用服務提供者。

服務調用方

然后,在服務調用方,我們通過RestTemplate去調用我們的服務提供者:

@Autowiredprivate RestTemplate restTemplate;@GetMapping('/ribbon')public Object queryUserByProductId() { List<JSONObject> jsonObjectList = Lists.newArrayList(); for (int i = 0; i < 10; i++) {JSONObject forObject = restTemplate.getForObject('http://user-center/user/' + (i + 1), JSONObject.class);jsonObjectList.add(forObject); } return jsonObjectList;}

這里我們通過前面配置的restTemplate來調用我們的用戶服務,接口的地址就是我們eureka注冊中心顯示的地址:

spring cloud服務之間的調用之ribbon詳解

這里的地址不區分大小寫,都可以正常訪問。調用十次,主要是為了測試負載均衡的效果。

服務提供者

首先我們看下服務提供者配置:

server.port=8776eureka.client.service-url.defaultZone=http://localhost:8999/eureka, http://localhost:9000/eureka

第一個配置是指定服務的端口,如果在本地啟動的話,需要每啟動一次改一個端口,否則會提示端口沖突,如果你用的是IDEA的話,要先運行多應用啟動:

spring cloud服務之間的調用之ribbon詳解

第二個配置就是設定我們的注冊中心,我們有兩個注冊中心,所以指定了兩個地址。

服務提供者就是一個簡單的controller,在controller內部,我們通過DiscoveryClient打印出被調用者的信息,方便我們查看。

@RestControllerpublic class UserController { private Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private DiscoveryClient discoveryClient; @GetMapping('/user/{id}') public JSONObject getUserById(@PathVariable(name = 'id') Long id) {List<ServiceInstance> instances = discoveryClient.getInstances('user-center');logger.info('instances = {}', instances);JSONObject user = new JSONObject();user.put('id', id);user.put('name', 'syske');return user; }}

這里需要注意的是,我們導入的DiscoveryClient是org.springframework.cloud.client.discovery包下的,如果不是同這個類,啟動的時候會報錯:

Consider defining a bean of type ’com.netflix.discovery.DiscoveryClient’ in your configuration.

測試

我們分別啟動服務調用發和被調用方,這里我啟動了5個user-center,同時eureka服務也啟動了兩個,這個兩個注冊中心互相注冊監控,在實際應用中也可以確保服務穩定性。5個user-center有2個注冊在8999的注冊中心上,有3個注冊在9000的注冊中心上:

spring cloud服務之間的調用之ribbon詳解

spring cloud服務之間的調用之ribbon詳解

然后,我們訪問product的ribbon接口:

http://localhost:8881/ribbon

瀏覽器返回結果如下:

spring cloud服務之間的調用之ribbon詳解

同時,在user-center端口為8771和8775的控制臺,會看到如下信息:

spring cloud服務之間的調用之ribbon詳解

spring cloud服務之間的調用之ribbon詳解

為什么只有8771和8775收到了請求,因為8771和8775都注冊到了8999的注冊中心,而且我們的product-service也注冊在該服務中心,所以就只調用了8771和8775這兩個服務:

spring cloud服務之間的調用之ribbon詳解

根據運行結果,我們還發現在10次請求中,8771和8775各處理五次,這里面還有一個潛藏的知識點:Ribbon默認的負載策略是輪詢策略,這樣可以確保同一個注冊中心下的所有服務節點接收到同樣的請求頻次。

如果你把user-center(5個服務)、product-serive都注冊在同一個注冊中心,那么你會發現每個服務都會被調用2次。

總結

總體來說,Ribbon對用戶來說感知確實不夠強,而且經過我的測試,我發現就算拿掉ribbon的依賴,依然可以正常負載均衡,這是因為eureka-client的依賴,已經添加過ribbon的依賴了:

spring cloud服務之間的調用之ribbon詳解

好了,今天的Ribbon分享就先到這里吧,我們明天分享基于Feign的聲明式調用。

到此這篇關于spring-cloud服務之間的調用之ribbon的文章就介紹到這了,更多相關spring cloud服務調用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费看黄色91| 老牛国产精品一区的观看方式| 日本在线不卡视频| 亚洲狼人精品一区二区三区| 91精品国产自产观看在线 | 91精品国产调教在线观看| 久久精品123| 久久高清精品| 一区二区国产精品| 久久只有精品| 欧美日韩一区二区三区视频播放| 国产精品日本欧美一区二区三区| 日本一区中文字幕| 久久免费福利| 国产在线日韩| 日韩欧美中文字幕电影| 成人在线超碰| 羞羞答答国产精品www一本| 91成人精品观看| 天堂а√在线最新版中文在线| 99在线|亚洲一区二区| 欧美色综合网| 欧美一区久久久| 美女精品在线观看| 麻豆国产欧美日韩综合精品二区| 久久精品亚洲欧美日韩精品中文字幕| 男人的天堂久久精品| 精品视频在线你懂得| 亚洲神马久久| 久久三级中文| 在线一区二区三区视频| 精品五月天堂| 久热re这里精品视频在线6| 久久国际精品| 欧美精品自拍| 国产成人在线中文字幕| 亚洲三级视频| 水蜜桃精品av一区二区| 亚洲涩涩av| 午夜精品成人av| 日韩毛片一区| 在线看片不卡| 国产成人久久| 日本久久二区| 一级欧洲+日本+国产| 荡女精品导航| 欧美专区一区| 欧美日韩国产高清| 国内精品麻豆美女在线播放视频| 水蜜桃久久夜色精品一区的特点| 成人午夜在线| 国产亚洲欧美日韩在线观看一区二区 | 国产精品17p| 欧美日韩视频| 免费看av不卡| 麻豆精品视频在线| 午夜天堂精品久久久久| 国产综合精品一区| 福利精品一区| 国产欧美在线| 亚洲精品系列| 日韩午夜在线| 91精品推荐| 麻豆成全视频免费观看在线看| 青青草91久久久久久久久| 日韩精品一卡| 国产一区调教| 久久精品资源| 国产精品手机在线播放| 日本一区二区三区视频在线看| 亚洲一区二区三区四区五区午夜 | 国产精品宾馆| 欧美亚洲三级| 日韩中文字幕一区二区高清99| 午夜欧美精品久久久久久久| 久久久一二三| 四虎884aa成人精品最新| 激情视频网站在线播放色| 国产亚洲精品美女久久| 天堂va在线高清一区| 亚洲深深色噜噜狠狠爱网站| 精品中文一区| 99久久夜色精品国产亚洲1000部| 在线天堂资源www在线污| 久久精品欧洲| 国产一区二区三区天码| 国产精品一国产精品k频道56| 日本va欧美va欧美va精品| 一区二区三区午夜视频| 中文字幕日韩亚洲| 久久福利影视| 天堂成人免费av电影一区| 久久都是精品| 喷白浆一区二区| 亚洲丝袜啪啪| 欧美永久精品| 久久99免费视频| 久久女人天堂| 日韩欧美二区| 99免费精品| 中国女人久久久| 免费日本视频一区| 亚洲97av| 国产精品一国产精品| 九九久久国产| 91精品精品| 视频一区中文字幕国产| 日韩中文一区二区| 欧美亚洲一级| 成人在线视频区| 久久网站免费观看| av不卡在线| 日本成人在线网站| 美女精品视频在线| 久久夜夜操妹子| 中国女人久久久| 日本不卡一区二区三区| 国产精品调教| 中文字幕在线免费观看视频| 深夜视频一区二区| 久久xxxx| 国产精品theporn| 日韩在线高清| 女同性一区二区三区人了人一| 免费在线欧美视频| 国产精品一区二区av日韩在线| 成人在线免费观看网站| 欧美日韩国产免费观看| 91成人精品在线| 在线一区av| 日本精品影院| 日韩一二三区在线观看| 久久久亚洲欧洲日产| 久久精品成人| 欧美专区一区| 激情欧美日韩一区| 欧美日本二区| 999国产精品999久久久久久| 只有精品亚洲| 91视频精品| 亚洲毛片一区| 涩涩av在线| 91精品国产自产观看在线| 日本久久成人网| 欧美日韩91| 一区久久精品| 久久99蜜桃| 蜜桃视频一区二区| 日韩成人三级| 国产日韩欧美一区| 国产精品日韩久久久| 精品国产乱码久久久久久樱花| 免费看的黄色欧美网站 | 久久国产视频网| 久久亚洲专区| 国产精品密蕾丝视频下载| 女主播福利一区| 久久一区精品| 日日夜夜免费精品视频| 日韩成人亚洲| 国产精品视频一区二区三区四蜜臂| 亚洲二区视频| 久久精品国产免费| 日韩美女国产精品| 99视频在线精品国自产拍免费观看| 精品国产美女a久久9999| 综合激情网...| 蜜桃精品在线| 久久一区精品| 国产亚洲欧美日韩精品一区二区三区| 99在线观看免费视频精品观看| 日韩国产综合| 久久精品国产亚洲一区二区三区| 日韩精品一区二区三区中文在线 | 高清一区二区三区| 久久激情av| 免费黄网站欧美| 欧美手机在线| 久草免费在线视频| 国产日韩免费| 亚洲精品国产日韩| 国产偷自视频区视频一区二区| 日韩精品中文字幕第1页| 麻豆91精品91久久久的内涵| 日本a级不卡| 亚洲精品无播放器在线播放| 国产亚洲高清视频| 国产综合视频| 香蕉人人精品| 亚洲h色精品| 群体交乱之放荡娇妻一区二区| 国产精品99一区二区三区| 麻豆视频一区| 精品视频91| 欧美日韩一区二区三区四区在线观看 | 最近高清中文在线字幕在线观看1| 国产精品久久久久久模特| 奇米777国产一区国产二区| 亚洲不卡视频| 国产探花在线精品|