Eureka注册中心

服务调用出现的问题:

  硬编码:

    //2、利用RestTemplate发起http请求,查询用户

    String url = "http://localhost:8081/user/" + order.getUserId();

1、服务消费者该如何获取服务提供者的地址信息

2、如果有多个服务提供者,消费者该如何选择

3、消费者如何得知服务提供者的健康状态

 

Eureka注册中心:

  (1)注册服务信息:每个微服务启动时,都将注册服务信息在Eureka注册中心中,如端口号。【健康状态:每隔30秒发送一次心跳向Eureka确认自己的状态,当隔了30秒未发送时,Eureka则会清除对应的微服务信息】

  (2)拉取服务:当某个微服务请求其它服务时,从Eureka注册中心中拉取请求的服务信息。

1、服务消费者该如何获取服务提供者的地址信息

  服务提供者启动时向Eureka注册自己的信息

  Eureka保存这些信息

  消费者根据服务名称向eureka拉取提供者信息

2、如果有多个服务提供者,消费者该如何选择

  服务消费者利用负责均衡算法,从服务列表中选择一个

3、消费者如何得知服务提供者的健康状态

  服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态

  Eureka会更新记录服务列表信息,心跳不正常会被剔除

  消费者可以拉取到最新的信息

 

在Eeureka框架中,微服务角色有两类:

* EurekaServer:服务端,注册中心

        记录服务信息

        心跳监控

*EurekaClient:客户端

  *provider:服务提供者,例如案例中的user-service

    注册自己的信息到EurekaServer

    每隔30s向EurekaServer发送心跳

  *consumer:服务消费者,例如案例中的order-service

    根据服务名称从EurekaServer拉取服务列表

    基于服务列表做负载均衡,选中一个微服务后发起远程调用。

posted @ 2023-06-20 09:03  佛系粥米  阅读(19)  评论(0编辑  收藏  举报