作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。

需求:构建消费者和提供者两个服务,实现消费者和提供者之间的通信

一.服务提供者

改造我们的项目Producer,让成为服务提供者:在该项目中创建ProvideController ,定义方法如下
```
@RestController //@Controller 和 @ResponseBody 的混合注解
public class ProvideController {

@RequestMapping("/provide")
public String provide(@RequestParam(value = "name")String name){return name+":你好呀这里是Producer服务";
}

}

###二.服务消费者
>1.创建SpringBoot项目Consumer,创建过程和Producer一致>2.在主程序类上打上@EnableEurekaClient标签,并且定义bean: RestTemplate ,RestTemplate是Spring封装的一个http请求工具

@SpringBootApplication
@EnableEurekaClient
public class ConsumerApplication {

public static void main(String[] args) {SpringApplication.run(Consumer1Application.class, args);
}//RestTemplate是spring内置的REST规范的http请求封装
@Bean
RestTemplate restTemplate() {return new RestTemplate();
}

}

>3.定义ConsummerController ,注入RestTemplate实例,实现和Producer服务的通信

@RestController
public class ConsumerController {

//注入http请求工具 restTemplate
@Autowired
private RestTemplate restTemplate;@RequestMapping("/consumer")
public String consumer(@RequestParam("name") String name){//执行http请求Producer服务的provide映射地址,返回的数据为字符串类型//PRODUCER:提供者(Producer服务)的注册服务ID//provide :消费方法String result = restTemplate.getForObject("http://PRODUCER/provide?name="+name,String.class);return result;
}

}

>4.Consumer项目配置:application.yml

eureka:
client:
serviceUrl:
defaultZone: http://localhost:1111/eureka/ #注册中心服务地址
server:
port: 3333 #当前服务端口
spring:
application:
name: consumer #当前服务ID
```

5.访问测试:依次启动EurekaServer ,Producer,Consumer ,浏览器输入 http://localhost:3333/consumer?name=zs 返回结果:”zs:你好呀这里是Producer服务”,现在的请求流程是:

访问 http://localhost:1111/ 你将会看到提供者和消费者服务都已经注册:

SpringCloud极简入门(三)服务提供者与消费者相关推荐

  1. SpringCloud极简入门|zuul智能路由回退、认证、转发功能demo 第五讲

    开篇点题 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统. 本章将讲解zuu ...

  2. APISIX 极简入门(国产微服务网关)

    1. 概述 APISIX 是基于 OpenResty + etcd 实现的云原生.高性能.可扩展的微服务 API 网关.它是国人开源,目前已经进入 Apache 进行孵化,牛逼!!! OpenRest ...

  3. [转载]芋道 Soul 极简入门(国产微服务网关)

    摘要: 原创出处 http://www.iocoder.cn/Soul/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 由于原著写作时间时间有点久了:有部分类容需要更新,后去个人会再发布文章 ...

  4. Docker极简入门

    原 Docker极简入门 2018年05月22日 20:25:12 阅读数:44 一.Docker概述 Docker通过一个包括应用程序运行时所需的一切的可执行镜像启动容器,包括配置有代码.运行时.库 ...

  5. Python极简入门教程

    前言 为了方便各位小白能轻松入门Python,同时加深自己对Python的理解,所以创造了"Python极简入门教程",希望能帮到大家,若有错误请多指正,谢谢.极简入门教程代表着不 ...

  6. SkyWalking 极简入门

    1. 概述 1.1 概念 SkyWalking 是什么? FROM http://skywalking.apache.org/ 分布式系统的应用程序性能监视工具,专为微服务.云原生架构和基于容器(Do ...

  7. Seata 极简入门

    1. 概述 Seata 是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务. 1.1 四种事务模式 Seata 目标打造一站式的分布事务的解决方案,最终会提供四种事务 ...

  8. RL极简入门:从MDP、DP MC TC到Q函数、策略学习、PPO

    前言 22年底/23年初ChatGPT大火,在写ChatGPT通俗笔记的过程中,发现ChatGPT背后技术涉及到了RL/RLHF,于是又深入研究RL,研究RL的过程中又发现里面的数学公式相比ML/DL ...

  9. 机器学习极简入门课程

    开篇词 | 入门机器学习,已迫在眉睫 大家好,我是李烨.现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师.先后参与过聊天机器人.大数 ...

  10. tensorflow平台极简方式_TensorFlow极简入门教程

    原标题:TensorFlow极简入门教程 随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.本文介绍了TensorFlow 基础,包括静态计 ...

最新文章

  1. Android Handler sendMessage和 sendMessageDelayed的使用
  2. ORACLE Recyclebin管理及flashback recyclebin中的对象
  3. java mysql aio_Java中的NIO,BIO,AIO分别是什么
  4. Android编译系统分析三:make完整编译android系统
  5. (原创) 电源滤波为何要用几个不同量级的电容并联?
  6. Oracle Service Bus简介
  7. integer 最大值_JAVA源码之Integer
  8. 问题五十四:怎么用ray tracing画参数方程表示的曲面(2)—— bezier surface
  9. 控件内部显示不正确原因---没有调用layoutSubview的父类方法
  10. 杭电acm2030汉字统计
  11. MFC CListCtrl 将一个列表的选中项添加到另一个列表
  12. Java正则表达式之Matcher类的find和matches方法的区别
  13. qt结合arcgis for qt开发(鼠标点击地图获取坐标,坐标转换)
  14. 安卓抖音怎么切换国际版Tiktok自带无水印下载
  15. 自定义组件时 Binary XML file line Error inflating class 异常
  16. 卡方检验在关联分析中的应用
  17. 100天精通Python丨黑科技篇 —— 26、代理ip技术(request)
  18. 卡塔兰(Catalan)数
  19. 【单片机毕业设计】【mcuclub-cl-015】基于单片机的地铁到站检测的设计
  20. 人无远虑,必有近忧:在35岁到来之前,移动app软件开发工程师

热门文章

  1. minio权限之IAM policy配置及用户赋权
  2. 阿里20周年升级价值观:新六脉神剑与它的变革时代
  3. DSP 2812 的经典资料
  4. 用Gitosis搭建Git服务器(经典资料)
  5. 北斗卫星轨道有哪些?
  6. 通过身份证号码获取年龄和出生日期
  7. Java8 根据身份证号获取年龄
  8. 两个程序的爱情故事(刘欣)
  9. VSCode插件,TODO标记
  10. 解决 Android 中的 DNS 域名劫持问题