一、搭建eureka服务注册中心
1、导入jar包(SpringBoot项目)
2、在启动类上添加注解支持
@EnableEurekaServer
3、配置文件
server:
port: 8888
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8888/eureka #对外服务的路径(注册服务的路径)
fetch-registry: false #不拉取服务列表
registerWithEureka: false #不把自己注册成了服务
二、 服务端
1、添加eureka依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
2、在启动类上添加注解支持
@EnableEurekaClient
3、配置文件
eureka.client.service-url.defaultZone=http://127.0.0.1:8888/eureka #往哪注册
spring.application.name=user-service #注册服务的名字
三、客户端
1、添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2、在启动类上添加注解支持
@SpringBootApplication
@EnableDiscoveryClient
public class EurekaCliApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaCliApplication.class, args);
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
3、配置文件
server:
port: 9090
eureka:
client:
service-url: http://127.0.0.1:8888/eureka #服务端路径
spring:
application:
name: user-cli
4、代码调试
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping("u/{id}")
public Object getUser(@PathVariable Integer id){
List<ServiceInstance> instances = discoveryClient.getInstances("USER-SERVICE");
ServiceInstance serviceInstance = instances.get(0);
URI uri = serviceInstance.getUri();
User u = restTemplate.getForObject(uri+"/user/"+id, User.class);
return u;
}