微服务远程调用方式之Ribbon

一. 微服务远程调用方式之Ribbon

思考:如何实现远程调用?
1.1 使用Ribbon来实现远程调用(实现步骤及代码)
01.在启动类配置文件中添加RestTemplate的bean
02.使用restTemplate.getObject()获取远程接口的信息.

	@Bean
    @LoadBalanced//加了此注解后就可以做负载均衡
    public RestTemplate restTemplate(){
	    return new RestTemplate();
    }

Service业务层

@Autowired
private RestTemplate restTemplate;
//PRODUCT-SERVER某服务名称. 参数1:被调用服务接口地址  参数2:被调用某商品实体Product.class(例:下单服务调用商品服务)
Product product = restTemplate.getObject("http://PRODUCT-SERVER/get?id=" + productId, Product.class);

1.2 使用Ribbon实现负载均衡
01.请求地址不写具体ip和端口,而是使用远程服务id
02.在RestTemplate的bean上贴上@LoadBalanced注解
1.3 负载均衡策略调整(配置)

#注意:服务的名称需要和代码中的服务名称一致,不然是修改不了负载均衡策略.
PRODUCT-SERVER:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule

二. Spring中可以使用RestTemplate来操作REST资源
主要包含以下几个方法:
RestTemplate有点类似于一个WebService客户端请求的模版,可以调用http请求的WebService,并将结果转换成相应的对象类型。
getForEntity(),getForObject(),发送HTTP GET请求,getForEntity()返回的是ResponseEntity对象,里面包含响应实体对象及响应状态码,而getForObject()则直接返回响应实体对象;
postForEntity(),postForObject(),发送HTTP POST请求,postForEntity()返回的是ResponseEntity对象,里面包含响应实体对象及响应状态码,而postForObject()则直接返回响应实体对象;
put(),发送HTTP PUT请求;
delete(),发送HTTP DELETE请求;
exchange(),可以发送GET、POST、PUT和DELETE中的任意一种请求,同时还可以自定义请求头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山雨木公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值