Eureka介绍
Eureka是一个服务注册中心,分为服务端(监测客户端信息,心跳等待)和客户端(有消费者 提供者)
搭建Eureka服务端
1. 新建一个项目,导入依赖,不用带版本,父工程标签已经约束版本了
<!-- eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.创建一个启动接口,加上@EnableEurekaServer
@SpringBootApplication
@EnableEurekaServer //开其Eureka服务端
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
3. 配置文件
server: port: 10086 #服务端口号
spring:
application:
name: eurekaserve #eureka服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
搭建Eureka客户端
多实例启动 -Dserver.port=8082
服务注册
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.配置yml文件
spring:
application:
name: user-serve #eureka服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
3. application加上@EnableEurekaClient,消费者需要在Controller修改请求地址(生产者app.name)
@GetMapping("{orderId}")
public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
// 根据id查询订单并返回
Order order = orderService.queryOrderById(orderId);
// String url="http://localhost:8081/user/"+order.getUserId();
String url="http://user-serve/user/"+order.getUserId();
//用生产者的spring.application.name 注册中心会识别
User object = restTemplate.getForObject(url, User.class);
order.setUser(object);
return order;
}
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
@EnableEurekaClient public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
@Bean
@LoadBalanced //开启负载均衡LoadBalanced默认轮询
public RestTemplate restTemplate(){
return new RestTemplate(); }
}