SpringCloud——Eureka
注册中心服务端——EurekaServer
导入依赖:EurekaServer
所需配置:
server:
port: 8761
eureka:
instance:
hostname: localhost # eureka服务端的实力名称
client:
fetch-registry: false # false表示自己就是注册中心。我的职责就是维护服务实例,并不需要去检索服务
register-with-eureka: false # false表示自己不需要向注册中心注册自己
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机版)
# defaultZone: http://localhost:8765/eureka/
代码需要:在主类上添加注解
@SpringBootApplication
@EnableEurekaServer//需要这个注解
public class TicketRegserverApplication {
public static void main(String[] args) {
SpringApplication.run(TicketRegserverApplication.class, args);
}
}
注册中心客户端——EurekaClient
需要依赖:EurekaClient
注意:手动导入时需要
1、
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version><!--需要添加这个,与服务端引入依赖后的相对应-->
</properties>
2、以下这一部分写在后面,也是与服务端映入依赖后相对应
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
需要配置:
spring.application.name=ticket-user #客服端的名字
eureka:
client.serviceUrl.defaultZone=http://localhost:8761/eureka/ #与服务器端设置的defaultZone相对应
代码需要:
@Configuration
public class TicketConfig {
@Bean
@LoadBalanced//RestTemplate的javaBean处需要添加这个负载均衡的注解
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
使用:
ResponseEntity<List> responseEntity = restTemplate.getForEntity("http://ticket-movie:8082/movieType/list",List.class);//在java代码中使用restTemplate对象,一个客户端使用另一个客户端的名字(ticket-movie)+端口向客户端发送http请求
注意:有一个坑,客户端的名字不能包含下划线