目录
2.编写启动类,添加@EnableEurekaServer注解
1.修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口:
2.在order-service项目的启动类OrderApplication中的RestTemplate添加负载均衡注解:
3.在浏览器发起请求localhost:8080/order/101查看userservice的日志输出默认为轮询策略
1.搭建EurekaServer
1.eureka-server的maven项目引入依赖
<!--eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.编写启动类,添加@EnableEurekaServer注解
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args );
}
}
3.添加application.yml文件,编写配置
server:
port: 10086
spring:
application:
name: eurekaserver
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
4.在浏览器访问localhost:10086
2.服务的注册
1.在项目中引入eureka-client依赖
<!--eureka客户端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.在application.yml中配置eureka地址
spring:
application:
name: userserver #注册的服务名
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
3.将一个服务启动多个实例
快捷键CTRL+D
-Dserver.port=8082
4.重启服务
3.服务的发现
1.修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口:
@Service
public class OrderService {
@Autowired
private OrderMapper orderMapper;
@Autowired
private RestTemplate restTemplate;
public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
//2.利用RestTemplate发起http请求,查询用户
String url="http://userservice/user/"+order.getUserId();
User user = restTemplate.getForObject(url, User.class);
//3.封装User到Order
order.setUser(user);
// 4.返回
return order;
}
}
2.在order-service项目的启动类OrderApplication中的RestTemplate添加负载均衡注解:
//创建RestTemplate并注入Spring容器
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}