摘要:準備服務端我是用的是一個普通的第一種方式直接使用,寫死第一種方式直接使用,寫死第二種方式第二種方式利用通過應用名獲取,然后再使用第二種方式利用通過應用名獲取,然后再使用第三種方式第三種方式利用,可再里使用應用名字第三種方式利用,可再里使用應
準備
服務端我是用的是一個普通的API
@RestController public class ServerController { @GetMapping("/msg") public String msg(){ return "this is product" msg"; } }第一種方式
直接使用restTemplate,url寫死
@Slf4j @RestController public class ClientController { @GetMapping("/getProductMsg") public String getProductMsg(){ // 1、第一種方式(直接使用restTemplate,url寫死) RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject("http://localhost:9082/msg",String.class); log.info("response={}",response); return response; } }第二種方式
第二種方式(利用loadBalancerClient通過應用名獲取url,然后再使用restTemplate)
@Slf4j @RestController public class ClientController { @Autowired private LoadBalancerClient loadBalancerClient; @GetMapping("/getProductMsg") public String getProductMsg(){ //2、第二種方式(利用loadBalancerClient通過應用名獲取url,然后再使用restTemplate) ServiceInstance serviceInstance = loadBalancerClient.choose("PRODUCT"); String url = String.format("http://%s:%s",serviceInstance.getHost(),serviceInstance.getPort()) + "/msg"; RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject(url,String.class); log.info("response={}",response); return response; } }第三種方式
第三種方式(利用@LoadBalanced,可再restTemplate里使用應用名字)
@Component public class RestTemplateConfig { @Bean @LoadBalanced public RestTemplate restTemplate(){ return new RestTemplate(); } }
@Slf4j @RestController public class ClientController { @Autowired private RestTemplate restTemplate; @GetMapping("/getProductMsg") public String getProductMsg(){ //3、第三種方式(利用@LoadBalanced,可再restTemplate里使用應用名字) String response = restTemplate.getForObject("http://PRODUCT/msg",String.class); log.info("response={}",response); return response; } }github項目
Cloud2Sell
基于SpringCloud微服務演化的點餐Demo系統
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71867.html
摘要:使用調用服務如果需要從應用程序調用遠程服務,你可以使用框架的類,由于實例通常需要在使用之前進行定制,因此不提供任何自動配置的。自動配置的確保將合理的應用于實例。上一篇消息傳遞下一篇使用調用服務 33. 使用RestTemplate調用REST服務 如果需要從應用程序調用遠程REST服務,你可以使用Spring框架的RestTemplate類,由于RestTemplate實例通常需要在使...
摘要:它就是史上最簡單的教程第三篇服務消費者后端掘金上一篇文章,講述了通過去消費服務,這篇文章主要講述通過去消費服務。概覽和架構設計掘金技術征文后端掘金是基于的一整套實現微服務的框架。 Spring Boot 配置文件 – 在坑中實踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實踐版權歸作者所有,轉載請注明出處本文提綱一、自動配置二、自定義屬性三、ran...
摘要:當服務宕機或者不可用時,即請求超時后會調用此方法。添加電影微服務啟動類電影微服務集成斷路器實現失敗快速響應,達到熔斷效果。 SpringCloud(第 014 篇)電影 Ribbon 微服務集成 Hystrix 斷路器實現失敗快速響應,達到熔斷效果 - 一、大致介紹 1、Hystrix 斷路器的原理很簡單,如同電力過載保護器。它可以實現快速失敗,如果它在一段時間內偵測到許多類似的錯誤,...
摘要:服務提供者的運行機制用了雙層結構來維護注冊的服務信息,第一層為服務的名稱,第二層為服務的實例名稱。服務注冊中心的運行機制為了防止服務的異常下線,會周期性的清理列表中未續約的服務。負載均衡器的基本功能維護該服務下的所有節點列表。 Spring Boot Spring Boot有什么作用 Spring Boot通過自動化的配置簡化Spring原有的樣板化的配置。 Spring Boo...
摘要:傳播安全上下文或使用,通過增加的屬性,來增加相關的配置來達到執行隔離策略,控制線程數或者控制并發請求數來達到熔斷降級的作用。 SpringCloud(第 015 篇)電影Ribbon微服務集成Hystrix增加隔離策略控制線程數或請求數來達到熔斷降級的作用 - 一、大致介紹 1、本章節介紹關于Hystrix的2種隔離方式(Thread Pool 和 Semaphores); 2、Thr...
閱讀 1209·2021-11-22 12:05
閱讀 1336·2021-09-29 09:35
閱讀 630·2019-08-30 15:55
閱讀 3122·2019-08-30 14:12
閱讀 954·2019-08-30 14:11
閱讀 2875·2019-08-30 13:10
閱讀 2400·2019-08-29 16:33
閱讀 3327·2019-08-29 11:02