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服务”,现在的请求流程是:

image.png

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

image.png


猜你喜欢

转载自blog.csdn.net/wolfcode_cn/article/details/80654561