当前位置:   article > 正文

Eureka快速入门_ereuka

ereuka

Eureka介绍

Eureka 是 Netflix 开发的服务发现框架。Spring Cloud 将其集成在 spring-cloud-netflix 子项目中,以实现 Spring Cloud 的服务发现功能。

Eureka的作用

Eureka的作用

Eureka的主要作用如下:

服务的注册和拉取

服务实例启动后,将自己的信息注册到Eureka服务端,完成服务注册,Eureka服务端保存注册的服务名称到服务实例地址列表的映射关系,然后Eureka客户端根据根据服务的名称,拉取实例地址列表,完成服务发现(服务拉取)。

实现服务间的负载均衡

Eureka客户端从实例列表中利用负载均衡算法选择其中一个实例地址,然后会向该实例地址发送远程调用。

对服务进行健康检测(心跳策略)

消费者每隔一段时间(默认为30秒)向Eureka服务端发起请求,报告自己的状态,即心跳。当一段时间没有发送心跳时,Eureka服务端会认为该微服务实例出现故障,将该实例节点从服务列表中剔除,在Eureka客户端拉取服务的时候就能将故障实例排除。

Eureka注册中心的搭建过程

引入Eureka服务端依赖

在Eureka微服务中引入如下依赖:

 <!--eureka服务端依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

编写启动类

在Eureka服务端微服务的启动类上添加@EnableEurekaServer注解开启Eureka:

@SpringBootApplication
@EnableEurekaServer //通过注解开启eureka表示自己是一个注册中心
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class,args);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

编写配置文件

在application.yml配置文件中配置Eureka的相关配置:

server:
  port: 10086 #服务端口
spring:
  application:
    name: eureka-server #服务名称
eureka:
  client:
    service-url: #eureka注册中心地址信息,自身也是个微服务,会将自己也注册在eureka上
      defaultZone: http://127.0.0.1:10086/eureka
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

完成上述配置后启动服务,浏览器访问服务地址,如果出现如下页面即搭建成功:

在这里插入图片描述

服务注册

服务注册和服务拉取的相关依赖都统一封装在ereuka-client依赖下

引入Eureka客户端依赖

在需要注册的微服务的pom.xml文件中引入如下依赖:

<!--eureka客户端依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

修改配置文件

在配置文件中添加和eureka有关的配置,添加服务名和eureka地址:

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果在访问Eureka服务端页面的时候该服务的名字如图红框中所示展示出来即为该微服务成功注册在Eureka上:

在这里插入图片描述

服务发现

引入Eureka客户端依赖

在需要进行服务发现的微服务的pom.xml文件中引入如下依赖:

<!--eureka客户端依赖-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

修改配置文件

在配置文件中添加和eureka有关的配置,同样添加服务名和eureka地址,服务发现也需要知道eureka地址:

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

服务的拉取和负载均衡

负载均衡只需要在RestTemplate上添加@LoadBalanced注解即可实现,默认的方式为轮询

    @Bean
    @LoadBalanced //开启负载均衡,默认为轮询
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
  • 1
  • 2
  • 3
  • 4
  • 5

服务拉取即修改服务的访问路径,用服务名代替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://localhost:8080/user/" + order.getUserId();
        //将上边这句替换为下边的格式,修改端口号和IP地址为服务名称
        String url = "http://userservice/user/" + order.getUserId();
        User user = restTemplate.getForObject(url, User.class);
        //3、封装User到Order
        order.setUser(user);
        // 4.返回
        return order;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/961168
推荐阅读
相关标签
  

闽ICP备14008679号