SpringCloud极简入门(三)服务提供者与消费者
作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。
需求:构建消费者和提供者两个服务,实现消费者和提供者之间的通信
一.服务提供者
改造我们的项目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极简入门(三)服务提供者与消费者相关推荐
- SpringCloud极简入门|zuul智能路由回退、认证、转发功能demo 第五讲
开篇点题 在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统. 本章将讲解zuu ...
- APISIX 极简入门(国产微服务网关)
1. 概述 APISIX 是基于 OpenResty + etcd 实现的云原生.高性能.可扩展的微服务 API 网关.它是国人开源,目前已经进入 Apache 进行孵化,牛逼!!! OpenRest ...
- [转载]芋道 Soul 极简入门(国产微服务网关)
摘要: 原创出处 http://www.iocoder.cn/Soul/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 由于原著写作时间时间有点久了:有部分类容需要更新,后去个人会再发布文章 ...
- Docker极简入门
原 Docker极简入门 2018年05月22日 20:25:12 阅读数:44 一.Docker概述 Docker通过一个包括应用程序运行时所需的一切的可执行镜像启动容器,包括配置有代码.运行时.库 ...
- Python极简入门教程
前言 为了方便各位小白能轻松入门Python,同时加深自己对Python的理解,所以创造了"Python极简入门教程",希望能帮到大家,若有错误请多指正,谢谢.极简入门教程代表着不 ...
- SkyWalking 极简入门
1. 概述 1.1 概念 SkyWalking 是什么? FROM http://skywalking.apache.org/ 分布式系统的应用程序性能监视工具,专为微服务.云原生架构和基于容器(Do ...
- Seata 极简入门
1. 概述 Seata 是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务. 1.1 四种事务模式 Seata 目标打造一站式的分布事务的解决方案,最终会提供四种事务 ...
- RL极简入门:从MDP、DP MC TC到Q函数、策略学习、PPO
前言 22年底/23年初ChatGPT大火,在写ChatGPT通俗笔记的过程中,发现ChatGPT背后技术涉及到了RL/RLHF,于是又深入研究RL,研究RL的过程中又发现里面的数学公式相比ML/DL ...
- 机器学习极简入门课程
开篇词 | 入门机器学习,已迫在眉睫 大家好,我是李烨.现就职于微软(Microsoft),曾在易安信(EMC)和太阳微系统(Sun Microsystems)任软件工程师.先后参与过聊天机器人.大数 ...
- tensorflow平台极简方式_TensorFlow极简入门教程
原标题:TensorFlow极简入门教程 随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架.本文介绍了TensorFlow 基础,包括静态计 ...
最新文章
- Android Handler sendMessage和 sendMessageDelayed的使用
- ORACLE Recyclebin管理及flashback recyclebin中的对象
- java mysql aio_Java中的NIO,BIO,AIO分别是什么
- Android编译系统分析三:make完整编译android系统
- (原创) 电源滤波为何要用几个不同量级的电容并联?
- Oracle Service Bus简介
- integer 最大值_JAVA源码之Integer
- 问题五十四:怎么用ray tracing画参数方程表示的曲面(2)—— bezier surface
- 控件内部显示不正确原因---没有调用layoutSubview的父类方法
- 杭电acm2030汉字统计
- MFC CListCtrl 将一个列表的选中项添加到另一个列表
- Java正则表达式之Matcher类的find和matches方法的区别
- qt结合arcgis for qt开发(鼠标点击地图获取坐标,坐标转换)
- 安卓抖音怎么切换国际版Tiktok自带无水印下载
- 自定义组件时 Binary XML file line Error inflating class 异常
- 卡方检验在关联分析中的应用
- 100天精通Python丨黑科技篇 —— 26、代理ip技术(request)
- 卡塔兰(Catalan)数
- 【单片机毕业设计】【mcuclub-cl-015】基于单片机的地铁到站检测的设计
- 人无远虑,必有近忧:在35岁到来之前,移动app软件开发工程师