SpringCloud系列三:Springcloud负载均衡及restTemplate参数传递

一 负载均衡

大家有没有发现在上一篇中,我们已经把springcloud负载均衡的配置加入到了项目中,如下图:

并且restTemplate()方法上也加了实现负载均衡的注解@LoadBalanced,如图:

那么我们怎么来演示负载均衡呢?

我们在cloud_cart_service1项目的基础上,重新建一个cloud_cart_service2项目,提供的服务名称一致,端口号变了,如图:

为了方便观察效果,我在details方法上加上一句话表明结果来自哪个服务,如图所示:

启动两个服务提供者以及服务消费者,这时注册中心如下图:

可以看到这时候注册的服务提供者有2个,2222和2221。

 

接下来我们来执行客户端: http://localhost:9999/client/details.do?id=20191203135140574001,反复执行,发现如图所示的结果:

说明负载均衡实验成功了!!!!

 

restTemplate参数传递

对于get请求,比较简单,不作探讨,这里重点是来讲一下post请求的参数传递问题。

Post请求一般用的比较多的方法是restTemplate.postForObject(url, params,Object.class);

服务提供者如图所示:

服务提供者我们用@RequestParam注解来接收参数,即可接收post请求,又可以接收get请求,并输出一句话来观察参数是否接收到了

服务消费端我们也用@RequestParam注解来接收参数,如图所示:

接下来执行: http://localhost:9999/client/list.do,观察后台:

发现参数没有传递过来

接下来,我们把服务端的注解改为@RequestBody ,重新执行,观察

,结果如下图所示:

发现参数顺利传递过来了。

当服务提供者硬是要使用@RequestParam注解来接收参数呢,那客户端需要用MultiValueMap来添加参数,不能用hashmap或linkmap来封装参数了。

MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();

paramMap.add("cartType", "20190624100613533130");

也可以直接写在方法上,如图:

服务提供端:

服务消费端:

执行结果:

这种方式参数也能顺利接收到

Ok,本篇到此为止,希望对您有帮助。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

御前两把刀刀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值