spring-cloud工程间的调用底层采用http协议
依赖的引入这里就不贴了,cloud版本更新的很快,我使用的是2.0.7版本
生产者&消费者案例
一、基于rest实现
基于rest实现本质上是通过url来直接指向某个服务,并没有通过Eureka注册中心,所以无需Eureka的配置,这个案例还是加上了,以为要便于下个案例的演示。
生产者
生产者注册服务到 Eureka
①配置文件
#给组件起个名字
spring.application.name=spring-cloud-provider
server.port=8081
#eureka.client.register-with-eureka=false
#eureka.client.fetch-registry=false
#指明注册中心的地址
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
②启动类加上注解表示注册该服务到Eureka
/*把服务注册到注册中心
@EnableDiscoveryClient & @EnableEurekaClient 二选一
*/
@SpringBootApplication
@EnableDiscoveryClient
public class ProviderDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderDemoApplication.class, args);
}
}
编写controller
@RestController
public class HelloController {
@RequestMapping("/sayHello/{data}")
public String sayHello(@PathVariable(name = "data") String data){
System.out.println("HelloController.sayHello--->"+data);
String result="生产者 2019年6月24日09:36:04---->"+data;
return result;
}
}
静态页面:
<body>
我是生产者
<hr>
</body>
在浏览器输入http://localhost:8081/sayHello/1
结果:
消费者
消费者向 Eureka请求生产者生产的服务
有两种方式:
方式一:restTemplate
消费者配置文件: