文章目录
一、前情提要
1.注册中心
server:
port: 8000
#注册中心地址
defaultZone: http://127.0.0.1:8000/eureka
2、服务注册
server:
port: 8100
spring:
application:
name: Hello-World
注册服务项目中的方法(被consumer调用)
/**
* Created by yan on 2019/3/12.
*/
@Controller
public class TestController {
@RequestMapping("test")
@ResponseBody
public String test(){
return "那就这样吧";
}
}
二、使用SpringBoot创建一个consumer项目
1、导入依赖(注意jar包版本和SpringBoot项目匹配问题)
我的SpringBoot项目之前是2.X版本,但是引入的eureka和ribbon是1.X版本,导致项目启动失败,将SpringBoot项目改为1.X版本,正常启动
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2、applicaiton.yml
server:
port: 9000
spring:
application:
name: consumer
eureka:
client:
service-url:
#注册中心地址
defaultZone: http://127.0.0.1:8000/eureka
3、启动类上添加注解@EnableEurekaClient
4、启动类中将RestTemplate注入SpringBoot容器,并开启负载均衡
当然也可以将这段代码写在配置类中(别忘了@configuration),简单测试已简单为主!!!!!!!
@Bean
@LoadBalanced //表示开启客户端负载均衡
RestTemplate restTemplate() {
return new RestTemplate();
}
5、调用方法
/**
* Created by yan on 2019/3/12.
*/
@Controller
public class TestController {
@Autowired
private RestTemplate restTemplate;
@RequestMapping("test")
@ResponseBody
public String test(){
//HELLOW-WORLD是注册中心的消息注册,test为服务注册中的test方法
String body = restTemplate.getForEntity("http://HELLO-WORLD/test", String.class).getBody();
return body;
}
}
6、查看注册中心
启动注册中心、注册服务、消费者
查看注册中心