SpringCloud学习(二)--消费者微服务对生产者微服务的调用

在已搭建好的微服务项目中创建一个provider微服务作为生产者和一个consumer微服务作为消费者.

 创建生产者微服务

第一步, 在已搭建好的微服务Maven项目上,新建一个Springboot项目作为生产者微服务(provider)

步骤如下图:

1.在springcloud-demo上,右键选择"New"--"Module" 

2.选择"Spring Initializr"选项,即创建Springboot项目 

 3.输出自己心仪的项目名称

 4.在依赖选择内,选中"Spring Cloud Discovery"--"Eureka Discovery Client"和"Web"--"Spring Web"两个依赖即可

5.一直Next即可 

6.provider项目创建好后,springcloud-demo项目结构如下图

创建消费者微服务

同理,按照生产者微服务的创建方式创建一个consumer项目即可.consumer项目创建好后,springcloud-demo项目结构如图

上图中,consumer项目与provider项目共同作为EurekaClient,即服务客户端.

eureka项目作为EurekaServer,即服务的发现与注册中心.

服务客户端EurekaClient实现向服务注册中心EurekaServer的注册

--provider项目

配置application.yml文件

配置启动类

需要在指定Springboot项目的启动类上标注@EnableDiscoveryClient注解,声明该Springboot是一个EurekaClient.

EurekaClient启动类注解也可以使用@EnableEurekaClient注解替换.在SpringCloud中服务发现组件有多种选择,
@EuableDiscoveryClient为各种服务组件提供了支持,该注解是spring-cloud-commons项目的注解,是一个高度的抽象.
@EuableEurekaClient声明是Eureka的Client,该注解是spring-cloud-netflix项目的注解,只能和Eureka一起工作.

--consumer项目

配置application.yml

配置启动类

配置好provider和consumer项目后,便按照"eureka"--"provider"--"consumer"的顺序启动三个Springboot项目

在浏览器上输入http://localhost:8761进入服务发现与注册中心,查看服务是否正常

在Application栏的Status状态栏中,两服务的状态均为UP,说明服务处于正常状态,可供调用.

以上,服务的注册中心、生产者和消费者均已搭建好了,便可以编写调用的逻辑了.进而实现消费者调用生产者的过程

编写生产者供调用的接口

 创建一个根据Id获取用户信息的测试接口即可.

创建一个User实体类,用于返回用户数据

编写获取用户信息的rest方法

生产者的获取用户信息接口编写好了.

编写消费者调用生产者的接口

由于消费者和生产者分别属于两个Springboot项目,启动时占用两个不同的端口,所以存在跨域问题.

需要往IOC容器中注入一个可跨域调用接口的对象RestTemplate

编写消费者调用生产者服务的rest接口

RestTemplate通过getForObject方法,向生产者restUrl为http://localhost:8081/user/{id}这个接口发送GET请求.生产者一旦接收到请求,将会返回一个用户信息.

现在重启生产者和消费者两服务,然后通过浏览器地址输入框进行测试.

 通过调用消费者所提供的(调用生产者的)接口,消费者微服务会获取生产者返回的用户信息,然后由消费者微服务再返回给浏览器端.以上便实现了,消费者微服务获取生产者微服务信息

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值