1.新建maven模块,pom中添加eureka服务端依赖
<dependency>
<!--eureka服务端-->
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.EurekaApplication类中添加Eureka启动注解@EnableEurekaServer
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
3.application.yml中配置eureka服务名称和地址信息
server:
port: 10086 #端口号
spring:
application:
name: eurekaserver #eureka的服务名称
eureka:
client:
service-url: #eureka的地址信息
defaultZone: http://127.0.0.1:10086/eureka
4.负载均衡加一个注解即可,在远程调用RestTemplate方法上加@LoadBalanced注解实先负载均衡
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
5.服务发现,将远程调用的url地址换成其他服务的服务名称
public Order queryOrderById(Long orderId) {
// 1.查询订单
Order order = orderMapper.findById(orderId);
// 2.利用RestTemplate发起http请求,查询用户
// 2.1 url路径
//String url = "http://127.0.0.1:10086/user" + order.getUserId();
String url = "http://userservice/user/" + order.getUserId();
//2.2 发送http请求,实现远程调用
User user = restTemplate.getForObject(url, User.class);
//3.封装user到Order
order.setUser(user);
// 4.返回
return order;