Eureka注册中心-01

Eureka注册中心

主要学习知识:

  1、远程调用的问题

  2、Eureka原理

  3、搭建EurekaServer

  4、服务注册

  5、服务发现

 

一、远程服务调用出现的问题

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

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

  (2)Eureka保存这些信息

  (3)消费者根据服务名称向Eureka拉取提供者信息

 

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

  (1)服务消费者利用负载均衡算法,从服务列表中挑选一个

 

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

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

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

  (3)消费者就可以拉取到最新的信息

 

 

二、Eureka的原理

1、服务提供者启动时向Eureka注册自己的信息,Eureka保存这些信息。

2、消费者根据服务名称向Eureka拉取提供者信息。

3、服务消费者利用负载均衡算法,从服务列表中挑选一个。

4、服务提供者会每隔30秒向EurekaServer发送心跳请求,报告健康状态,Eureka会更新记录服务列表信息,心跳不正常会被剔除,消费者就可以拉取到最新的信息。

 

总结:

Eureka架构中,微服务角色有两类:

1、EurekaServer:服务端,注册中心

(1)记录服务信息

(2)心跳监控

 

2、EurekaClient:客户端

(1)Provider:服务提供者,列如案例中的user-service【用户信息】

① 注册自己的信息到EurekaServer

② 每隔30秒向EurekaServer发送心跳

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

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

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

 

 

实践:

 

 

 

 

三、搭建EurekaServer

1、创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖

(1) 其中Eureka的搭建需要创建独立的微服务

(2) 引入依赖:spring自动装配和Eureka所有的配置都做好了,直接使用。

 

 

2、编写启动类,添加@EnableEurekaServer注解

 

 

 

3、添加application.yml文件,编写下面的配置:端口信息、微服务名称、Eureka地址

 

 

为什么要写eureka的地址?因为eureka也是一个微服务,所以需要把自己也注入到eureka中。以后eureka如果多了这里配的是eureka集群的地址。用逗号隔开。

四、服务注册

user-service【用户信息】项目注册到EurekaServer步骤如下:

1、user-service项目引入sprin-cloud-starter-netflix-eureka-client的依赖

 

 

 

 

2、在application.yml文件,编写下面的配置:服务名称+服务地址=服务注册

 

 

五、服务的发现【拉取】

order-service完成服务拉取

服务拉取是基于服务名称获取服务列表,然后在对服务列表做负载均衡

1、修改OrderService代码,修改访问的url路径,用服务名代替ip、端口:

 

 

 

2、order-service项目的启动类OrderApplication中的RestTemplate添加负载均衡注解:

 

 

 

 

 

 

 

 

 

 

 

 

总结:

1、搭建EurekaServer

  (1) 引入eureka-server依赖

  (2) 添加@EnableEurekaServer注解

  3) application.yml中配置eureka地址

2、服务注册

  (1) 引入eureka-client依赖

  (2) application.yml中配置eureka地址

3、服务发现

  (1) 引入eureka-client依赖

  (2) application.yml中配置eureka地址

  (3) RestTemplate添加@LoadBalanced注解

  (4) 用服务提供者的服务名称远程调用

 

 

 

 

 

 

posted @ 2022-05-05 19:58  追星月?问酒缘。  阅读(30)  评论(0)    收藏  举报