日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ribbon之ServerList

發布時間:2025/3/19 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ribbon之ServerList 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ServerList是存數服務實例的對象。

  • ServerList

public?interface?ServerList<T?extends?Server>?{public?List<T>?getInitialListOfServers();/***?Return?updated?list?of?servers.?This?is?called?say?every?30?secs*?(configurable)?by?the?Loadbalancer's?Ping?cycle*?*/public?List<T>?getUpdatedListOfServers();???}
  • StaticServerList

通過靜態配置來維護服務列表。

public?class?StaticServerList<T?extends?Server>?implements?ServerList<T>?{private?final?List<T>?servers;public?StaticServerList(T...?servers)?{this.servers?=?Arrays.asList(servers);}@Overridepublic?List<T>?getInitialListOfServers()?{return?servers;}@Overridepublic?List<T>?getUpdatedListOfServers()?{return?servers;} }
  • AbstractServerList

ServerList攔截器,被LoadBalancer使用。

public?abstract?class?AbstractServerList<T?extends?Server>?implements?ServerList<T>,?IClientConfigAware?{???/***?Get?a?ServerListFilter?instance.?It?uses?{@link?ClientFactory#instantiateInstanceWithClientConfig(String,?IClientConfig)}*?which?in?turn?uses?reflection?to?initialize?the?filter?instance.?*?The?filter?class?name?is?determined?by?the?value?of?{@link?CommonClientConfigKey#NIWSServerListFilterClassName}*?in?the?{@link?IClientConfig}.?The?default?implementation?is?{@link?ZoneAffinityServerListFilter}.*/public?AbstractServerListFilter<T>?getFilterImpl(IClientConfig?niwsClientConfig)?throws?ClientException{try?{String?niwsServerListFilterClassName?=?niwsClientConfig.getProperty(CommonClientConfigKey.NIWSServerListFilterClassName,ZoneAffinityServerListFilter.class.getName()).toString();AbstractServerListFilter<T>?abstractNIWSServerListFilter?=?(AbstractServerListFilter<T>)?ClientFactory.instantiateInstanceWithClientConfig(niwsServerListFilterClassName,?niwsClientConfig);return?abstractNIWSServerListFilter;}?catch?(Throwable?e)?{throw?new?ClientException(ClientException.ErrorType.CONFIGURATION,"Unable?to?get?an?instance?of?CommonClientConfigKey.NIWSServerListFilterClassName.?Configured?class:"+?niwsClientConfig.getProperty(CommonClientConfigKey.NIWSServerListFilterClassName),?e);}} }
  • ConfigurationBasedServerList

通過配置文件參數listOfservers,來實現ServerList.多個用逗號分隔。

public?class?ConfigurationBasedServerList?extends?AbstractServerList<Server>??{private?IClientConfig?clientConfig;@Overridepublic?List<Server>?getInitialListOfServers()?{return?getUpdatedListOfServers();}@Overridepublic?List<Server>?getUpdatedListOfServers()?{String?listOfServers?=?clientConfig.get(CommonClientConfigKey.ListOfServers);return?derive(listOfServers);}@Overridepublic?void?initWithNiwsConfig(IClientConfig?clientConfig)?{this.clientConfig?=?clientConfig;}protected?List<Server>?derive(String?value)?{List<Server>?list?=?Lists.newArrayList();if?(!Strings.isNullOrEmpty(value))?{for?(String?s:?value.split(","))?{list.add(new?Server(s.trim()));}}return?list;} }
  • DiscoveryEnabledNIWSServerList

通過Eureka的服務發現,實現的ServerList.

public?class?DiscoveryEnabledNIWSServerList?extends?AbstractServerList<DiscoveryEnabledServer>{@Overridepublic?List<DiscoveryEnabledServer>?getInitialListOfServers(){return?obtainServersViaDiscovery();}@Overridepublic?List<DiscoveryEnabledServer>?getUpdatedListOfServers(){return?obtainServersViaDiscovery();}private?List<DiscoveryEnabledServer>?obtainServersViaDiscovery()?{List<DiscoveryEnabledServer>?serverList?=?new?ArrayList<DiscoveryEnabledServer>();if?(eurekaClientProvider?==?null?||?eurekaClientProvider.get()?==?null)?{logger.warn("EurekaClient?has?not?been?initialized?yet,?returning?an?empty?list");return?new?ArrayList<DiscoveryEnabledServer>();}EurekaClient?eurekaClient?=?eurekaClientProvider.get();if?(vipAddresses!=null){for?(String?vipAddress?:?vipAddresses.split(","))?{//?if?targetRegion?is?null,?it?will?be?interpreted?as?the?same?region?of?clientList<InstanceInfo>?listOfInstanceInfo?=?eurekaClient.getInstancesByVipAddress(vipAddress,?isSecure,?targetRegion);for?(InstanceInfo?ii?:?listOfInstanceInfo)?{if?(ii.getStatus().equals(InstanceStatus.UP))?{if(shouldUseOverridePort){if(logger.isDebugEnabled()){logger.debug("Overriding?port?on?client?name:?"?+?clientName?+?"?to?"?+?overridePort);}//?copy?is?necessary?since?the?InstanceInfo?builder?just?uses?the?original?reference,//?and?we?don't?want?to?corrupt?the?global?eureka?copy?of?the?object?which?may?be//?used?by?other?clients?in?our?systemInstanceInfo?copy?=?new?InstanceInfo(ii);if(isSecure){ii?=?new?InstanceInfo.Builder(copy).setSecurePort(overridePort).build();}else{ii?=?new?InstanceInfo.Builder(copy).setPort(overridePort).build();}}DiscoveryEnabledServer?des?=?new?DiscoveryEnabledServer(ii,?isSecure,?shouldUseIpAddr);des.setZone(DiscoveryClient.getZone(ii));serverList.add(des);}}if?(serverList.size()>0?&&?prioritizeVipAddressBasedServers){break;?//?if?the?current?vipAddress?has?servers,?we?dont?use?subsequent?vipAddress?based?servers}}}return?serverList;}}



















轉載于:https://blog.51cto.com/881206524/2145823

總結

以上是生活随笔為你收集整理的Ribbon之ServerList的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区日韩电影 | 久久久精品小视频 | av在线资源 | 天天噜 | 男女黄色网 | 野花视频免费在线观看 | 操bbbbb | 超碰97国产精品人人cao | 亚洲一区你懂的 | 婷婷亚洲综合五月天小说 | 综合人人 | 羞辱狗奴的句子有哪些 | 污视频在线观看网址 | 欧美一区二区三区四 | 红桃视频成人 | 欧美在线视频二区 | 亚洲黄色自拍 | 99日精品 | 99精品视频在线观看免费 | 女性私密整形视频 | 亚洲国产精品99久久久久久久久 | 人妻一区二区三区四区 | 九月婷婷 | 午夜久久一区 | 男欢女爱久石 | 另类综合视频 | 久久久久国产精品 | 久久综合一本 | 丝袜脚交国产在线观看 | 国内自拍视频在线播放 | 性色av一区二区三区免费 | 希岛婚前侵犯中文字幕在线 | 波多野结衣一区二区三区高清 | xxxx18国产| 日本四级电影 | 无码人妻aⅴ一区二区三区69岛 | 久久久精品人妻一区二区三区四 | 宅男噜噜噜666在线观看 | 亚洲国产精品成人午夜在线观看 | 日本在线观看免费 | 亚洲最大黄色网址 | 欧美熟妇精品久久久久久 | 九九热这里有精品 | 高清av不卡 | 亚洲在线精品视频 | 日日夜夜爱爱 | 日本网站免费 | 亚洲视频在线播放 | 国产精品高潮呻吟久久aⅴ码 | 天堂网2020 | 水牛影视av一区二区免费 | a天堂在线资源 | 欧美成人三级伦在线观看 | av一级免费 | 国产一区二区在线免费观看视频 | 在线免费观看av网址 | 久久久久高清 | 久射久| av最新版天堂资源在线 | 麻豆传媒在线免费 | 黄色片视频免费在线观看 | 一区二区三区四区视频在线观看 | 国产做爰xxxⅹ性视频国 | 亚洲一区在线免费观看 | 四虎com| 免费av地址 | 人人插人人草 | 精品三级电影 | 亚洲国产aaa | 国产女主播喷水高潮网红在线 | 国产精品日本 | 亚洲精品国产精品乱码不99按摩 | 久久欧 | 国产中文字幕一区二区 | 中文字幕被公侵犯的漂亮人妻 | 捆绑裸体绳奴bdsm亚洲 | 国产伦精品一区二区三区视频黑人 | 国产精品99久久久久久大便 | 日本中文字幕一区二区 | 亚洲国产精品久久久久 | 国产黄色www| 一区视频 | 国产在线青青草 | 99re6在线精品视频免费播放 | 精品人妻无码一区二区三区 | 黄片毛片在线免费观看 | 国产成人综合在线观看 | 被两个男人吃奶三p爽文 | 美国黄色av| 九一九色国产 | 国产+日韩+欧美 | 欧美r级在线观看 | 神马影院午夜伦理片 | 久久久国产精品x99av | 国产精品久久久久久亚洲av | 一起草在线视频 | 亚洲经典一区二区三区四区 | 国产成人精品综合在线观看 | 91在线观看免费高清完整版在线观看 |