springcloud-2service consumer

创建使用会员微服务模块-service consumer

思路分析/图解

  1. 创建Moduel(member-service-consumer-80) & 完成配置

  1. new Module->member-service-consumer-80->finish

  1. 检查父子项目的pom是否添加相应的对应module和parent

  1. 本项目的pom.xml可以参考provider的,并删掉多余的依赖

    <dependencies>
        <!--使用版本仲裁-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--说明:starter-actuator是springboot程序的监控系统,可实现系统的健康检测
        可以通过http://localhost:10000/actuator看到相关的连接和信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--相对于provider,删除了以下依赖
        mybatis
        druid
        mysql
        jdbc
        test-->
    </dependencies>
  1. 创建本模块的application.yml

server:
  port: 80
spring:
  application:
    name: member-service-consumer-80
  1. 业务实现

  1. 创建entity实体类。因为这个模块是起的传递作用,实体和provider一致

Member
Result
  1. 注入RestTemplate

RestTemplate基本介绍

1、RestTemplate是Spring提供的用于访问Rest服务的模板类

2、RestTemplate提供了多种便捷访问远程Http服务的方法

3、说明:可以这样理解,通过RestTemplate,我们可以发出http请求(支持Restful)风格),去调用Controller:提供的API接口,就像我们使用浏览器发出http请求,调用该API接口一样。

4、使用简单便捷

官方文档:https://docs.spring.io/spring-framework/docs/5.2.2.RELEASE/javadoc-api/org/springframework/web/client/RestTemplate.html

  • 配置RestTemplate

@Configuration
public class CustomizationBean {
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}
  1. 创建controller

@RestController
@Slf4j
public class MemberConsumerController {
    @Resource
    private RestTemplate restTemplate;

    private static final String MEMBER_SERVICE_PROVIDER_URL="http://localhost:10000";

    @PostMapping("/consumer/add")
    public Result<Member> addMember(Member member){
        //请求的完整url:MEMBER_SERVICE_PROVIDER_URL+"/member/save"
        //member:就是通过restTemplate发出post请求携带数据(对象)
        //Result.class:返回对象类型
        log.info("consumer-member={}",member);
        return restTemplate.postForObject(MEMBER_SERVICE_PROVIDER_URL + "/member/add", member, Result.class);
    }

    @GetMapping("/consumer/query/{id}")
    public Result<Member> queryMemberById(@PathVariable Long id){
        return restTemplate.getForObject(MEMBER_SERVICE_PROVIDER_URL+"/member/query/"+id,
                Result.class);
    }
}
  • 注意踩坑1:因为消费者和生产者的传输机制原因,这儿的生产者是用对象的传输方式,所以在参数那儿需要添加@RequestBody

    public Result addMember(@RequestBody Member member){
  • 注意踩坑2:还是因为在网络中传输,需要把生产者和消费者的entity序列化(2个)。

public class Member implements Serializable {
  • 需要完成以上2点,否则会报错。

  1. 完成测试

测试时注意post/get请求方式。注意参数的形式。


开启仪表盘 Run DashBoard

什么是Run Dashboard

当springcloud的服务有多个时,管理多个服务的启动使用run会不好管理,这样我们就可以使用RunDashboard.

开启步骤

  1. 找到你的项目/.idea/workspace.xml文件在其中添加下面的代码即可。

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
//从这儿开始插入如下内容
  <component name="RunDashboard">
    <option name="configurationTypes">
      <set>
        <option value="SpringBootApplicationConfigurationType"/>
      </set>
    </option>
    <option name="ruleStates">
      <list>
        <Rulestate>
          <option name="name" value="ConfigurationTypeDashboardGroupingRule"/>
        </Rulestate>
        <Rulestate>
          <option name="name" value="StatusDashboardGroupingRule"/>
        </Rulestate>
      </list>
    </option>
  </component> 
  1. 重启IDEA

  1. 菜单栏选取View->ToolWindows->Services(Alt+8)

  1. 左下角操作即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值