应用通信-方案一:RestTemplate

本文介绍了一种在 Spring Cloud 架构下实现负载均衡的方法,通过三种不同的方式调用服务实例,并展示了如何利用 LoadBalancerClient 和 RestTemplate 完成服务间的通信。
@RestController
public class ClientController {

	@Autowired
	private LoadBalancerClient loadBalancerClient;
	
//	@Autowired
//	private RestTemplate template;
	
	@GetMapping("/msg")
	public String msg() {
//		方式一(写死url,部署的ip未知,负载均衡时,访问服务器未知)		
//		RestTemplate restTemplate = new RestTemplate();
//		String response = restTemplate.getForObject("http://localhost:8080/product/getMsg", String.class);
		
//		方式二:使用loadBalancerClient动态拼接url
		ServiceInstance serviceInstance = loadBalancerClient.choose("product");
		String host = serviceInstance.getHost();
		int port = serviceInstance.getPort();
		String url = String.format("http://%s:%s", host,port) + "/product/getMsg";
		RestTemplate template = new RestTemplate();
		String response = template.getForObject(url, String.class);
		
		//方式三:采用配置类方式(使用@LoadBalanced)http://product=》http://serviceId
//		String response = template.getForObject("http://product/product/getMsg", String.class);
		System.out.println(response);
		return response;
	}
}

--------------------------------------------------
@Configuration
public class RestTemplateConfig {

	@Bean
	@LoadBalanced
	public RestTemplate restTemplate() {
		return new RestTemplate();
	}
}

  

转载于:https://www.cnblogs.com/yuefeng123/p/9590349.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值