spring-cloud简单使用系列之服务消费者的远程调用

1.创建一个user的服务

客户端创建参见spring-cloud简单使用系列之Eureka

2. 在product服务中增加测试接口

package com.dbl.springcloudclientproductserver;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

/**
 * descrription:测试类
 * <p>
 * Create by DbL on 2020/12/8 0008 22:25
 */
@RestController
public class ProductService {
    @Value("${server.port}")
    String port;

    @GetMapping("/product/{id}")
    public String findById(@PathVariable("id") int id) {
        // 返回端口信息  观察负载均衡效果
        return port + "-success:" + id;
    }
}


3.user服务中调用product服务接口

package com.dbl.springclouduserservice;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * descrription:
 * <p>
 * Create by DbL on 2020/12/8 0008 22:44
 */
@RestController
public class TestController {
    @Autowired
    RestTemplate restTemplate;

    @Bean
    @LoadBalanced // 通过@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    @GetMapping("/product/{id}")
    public String queryProductInfo(@PathVariable("id") int id) {
        // 根据名字取获得服务提供者的信息
        return restTemplate.getForObject("http://spring-cloud-product-server/product/" + id, String.class);
    }

}

4.启动测试

启动两个product服务与user服务
启动成功后如图所示:
在这里插入图片描述
idea中勾选下图所示Allow parallel 修改端口后就可以重复启动同一个项目

在这里插入图片描述

调用测试接口,可以发现轮流调用注册的两个服务
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值