美文网首页SpringCloud极简入门手册
SpringCloud极简入门(三)服务提供者与消费者

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

作者: 叩丁狼教育 | 来源:发表于2018-04-24 11:00 被阅读206次

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

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

一.服务提供者

改造我们的项目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服务",现在的请求流程是:

image.png

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

image.png
WechatIMG7.jpeg

相关文章

  • SpringCloud极简入门(三)服务提供者与消费者

    作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 需求:构建消费者和提供者两个服务,实现消费者和提供者之间的...

  • SpringCloudH第二章:Eureka服务注册中心

    springCloud :1) 服务注册中心2)服务提供者向注册中心注册服务3)服务消费者向注册中心获取服务 这一...

  • Feign声明式服务调用

    技术需求点: 在SpringCloud部署的微服务系统中,消费者通过Feign组件调用提供者的微服务。 一.Fei...

  • springcloud-服务注册与发现Eureka

    什么是服务注册与发现 服务消费者找到服务提供者的这种机制称为服务发现,又或者服务注册。 服务提供者、服务消费者、服...

  • SpringCloud【Greenwich版本】第三章 熔断器(

    序言 上一章节我们已经学习了最基本的Feign服务的提供者与消费者,本章主要想和大家分享下SpringCloud的...

  • 服务发现之consul

    什么是服务发现 服务发现有三个角色,服务提供者,服务消费者,服务中介。服务中介是联系服务提供者和服务消费者的桥梁。...

  • Eureka Server学习笔记

    基础架构服务注册中心服务提供者服务消费者 服务提供者 服务消费者 服务注册中心

  • 服务注册与发现

    SpringCloud服务注册与发现主要交互流程如下: 【服务提供者】启动时向【注册中心】注册,【注册中心】维护注...

  • SpringCloud极简入门(二)服务注册与发现

    作者:陈刚,叩丁狼高级讲师。原创文章,转载请注明出处。 一.服务治理 服务治理从名字上理解就是对服务的管理,我们知...

  • Spring Cloud系列--Spring Cloud Eur

    Eureka 核心要素 服务注册中心:提供服务注册与发现功能。 服务提供者:提供服务的应用。 服务消费者:消费者从...

网友评论

  • E丶Tok_build1709:这里服务器的调用时使用了Ribbon的调用机制,RestTemplateBean上要加上注解@LoadBalanced才能这样调用。
  • 90後小玩家:文中那个resttemplate bean少了个标签吧,不能用服务名调用服务,只能用ip+端口
    E丶Tok_build1709:确实是少了一个注解,还好你发现了这个坑
  • 0a1fd350024c:都是入门级别的,作用不大,已经公司架构上线一套微服务,需要提供技术支持的请@我
    叩丁狼教育:@if哥 这套文章目前主要是提供给同学参考入门的。这位童鞋空了也可以写几篇深入的参考参考。

本文标题:SpringCloud极简入门(三)服务提供者与消费者

本文链接:https://www.haomeiwen.com/subject/jlwdlftx.html