创建springboot,命名为:eureka-consumer,引入主要依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>比提供服务方多了一个 restTemplate,通过这个调用远端服务。
@EnableDiscoveryClient // 将当期应用加入到服务治理体系中 @SpringBootApplication @MapperScan("com.example.eurekaconsumer.dao") public class EurekaConsumerApplication { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } public static void main(String[] args) { // SpringApplication.run(EurekaConsumerApplication.class, args); new SpringApplicationBuilder(EurekaConsumerApplication.class).web(true).run(args); } }LoadBalancerClient 先 获取要调用服务的地址和端口号,当然,对于我们两个服务方,这个接口会负载均衡的选择,choose 选择服务名 restTemplate 具体的实行调用。/productRepo 是对方的接口。 写的有点乱,凑合看吧。 我自己还写了许多页面,假装调用一下,点击 下单,调用的就是这个接口
查看两个服务方控制台: 2001 端口的服务
调用本服务的消费方:Services: [eureka-consumer, eureka-client] ==================> 的更新库存信息接口被调用了 调用本服务的消费方:Services: [eureka-consumer, eureka-client] ==================> 的更新库存信息接口被调用了
2002 端口的服务:
调用本服务的消费方:Services: [eureka-consumer, eureka-client] ==================> 的更新库存信息接口被调用了 调用本服务的消费方:Services: [eureka-consumer, eureka-client] ==================> 的更新库存信息接口被调用了 调用本服务的消费方:Services: [eureka-consumer, eureka-client] ==================> 的更新库存信息接口被调用了
消费者方控制台:
收到http://localhost:2002/productRepo远程调用返回的结果:success 收到http://localhost:2002/productRepo远程调用返回的结果:success 收到http://localhost:2001/productRepo远程调用返回的结果:success服务1 收到http://localhost:2002/productRepo远程调用返回的结果:success 收到http://localhost:2001/productRepo远程调用返回的结果:success服务1
这样一个简单的分布式调用就成了。