前言
这一篇主要介绍服务消费者这一角色如何与注册中心联动,以及如何调用提供的服务。
正文
第一步,依赖
Maven的.pom文件中客户端所需依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.3.RELEASE</version>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
ribbon是负载均衡模块,后面文章会有介绍。
第二步,配置
定义配置文件,命名为application.yml或application.properties均可。
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8762/eureka/
server:
port:
7777
spring:
application:
name: consumer
第三步,调用类
构建服务消费类:
package com.silence.spring.cloud.consumer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class ConsumerController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("/printInfo")
@ResponseBody
public String printInfo() {
String info = restTemplate.getForObject("http://provider/getInfo", String.class);
return info;
}
}
第四步,启动
构建启动类:
package com.silence.spring.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableEurekaClient
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
}
验证
同样,查看注册中心http://localhost:8762/,如果出现如下图,证明连接注册中心成功。
启动运行后,键入http://localhost:7777/printInfo 链接,出现如下内容代表调用成功。