SpringCloud之RestTemplate调用实现本地负载均衡

1 在 父工程下创建 order_service 模块,作为服务消费者,同时也作为服务提供者
在这里插入图片描述

2 修改application.yml 中的端口

#服务端口号
server:
  port: 8001
  ###服务名称 --注册到注册中心的服务名称
spring:
  application:
    name: order-service

###eureka基本配置信息
eureka:
  client:
    service-url:
      ####当前服务的注册中心地址
     defaultZone: http://localhost:8100/eureka
     ###需要将服务注册到eureka上
    register-with-eureka: true
    #####需要去检索服务信息
    fetch-registry: true

3 编写OrderController,并调用会员服务中的方法

@RestController
public class OrderController {

    //restTemplate 由SpringBoot的web组件提供,并且默认整合了ribbon负载均衡器
    // rest调用方式 底层由httpclient实现
    @Autowired
    private RestTemplate restTemplate;

    //订单服务调用会员服务
    @RequestMapping("/getOrder")
    public String getOrder(){
       //有两种调用方式,1-采用服务 别名方式调用 2-直接调用
       String result= this.restTemplate.getForObject("http://127.0.0.1/getMember",String.class);
        return result;
    }
}

4 编写启动类 OrderApplication

@SpringBootApplication
@EnableEurekaServer
public class OrderApplication
{
    public static void main( String[] args )
    {
        SpringApplication.run(OrderApplication.class, args);
    }

    //把restTemplate注册到SpringBoot容器中
    @Bean
    @LoadBalanced //如果使用 rest 以服务别名方式进行调用,要依赖ribbon负载均衡器,则一定要加此注解
     //LoadBalanced 能让这个restTemplate在请求时拥有客服端负载均衡的能力
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

在这里插入图片描述
说明 用restTemplate 方式调用成功 了

会员服务实现本地负载均衡

订单服务调用会员服务,相对来说这里的订单服务就是客户端,所以实现了客户端的负载均衡

将会员服务的端口修改为 8100 再次启动,原来的不要关闭,相当于启动了两个 member-service 实例
在浏览器中输入 127.0.0.1:8001/getOrder,不断刷新,端口号回来回变化
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值