我是靠谱客的博主 儒雅便当,最近开发中收集的这篇文章主要介绍SpringCloud - Eureka注册发现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

提供者与消费者

Eureka原理分析

搭建Eureka服务

服务注册

服务发现


  • 提供者与消费者

  • 服务提供者:
    • 一次业务中,被其它微服务调用的服务(提供接口给其它微服务)
  • 服务消费者:
    • 一次业务中,调用其它微服务的服务(调用其它微服务提供的接口)
  • 服务既可以是服务提供者,也可以是服务消费者
  • Eureka原理分析

  • 服务调用出现的问题
  • 服务消费者该如何获取服务提供者的地址信息?
  • 如果有多个服务提供者,消费者该如何选择?
  • 消费者如何得知服务提供者的健康状态?
  • 案例分析
  • order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口?
  • user-service服务实例启动后,将自己的信息注册到eureka-server(Eureka服务端)这个叫服务注册
  • eureka-server保存服务名称到服务实例地址列表的映射关系
  • order-service根据服务名称,拉取实例地址列表;这个叫服务发现或服务拉取
  • 有多个user-service实例地址,order-service调用时该如何选择?
  • order-service从实例列表中利用负载均衡算法选中一个实例地址
  • 向该实例地址发起远程调用
  • order-service如何得知某个user-service实例是否依然健康,是不是已经宕机?
  • user-service会每隔一段时间(默认30秒)向eureka-server发起请求,报告自己状态,称为心跳
  • 当超过一定时间没有发送心跳时,eureka-server会认为微服务实例故障,将该实例从服务列表中剔除
  • order-service拉取服务时,就能将故障实例排除了
  • 小结
  • 在Eureka架构中,微服务角色有两类:
  • EurekaServer:服务端,注册中心
    • 记录服务信息
    • 心跳监控
  • EurekaClient:客户端
    • Provider:服务提供者,例如案例中的user-service
      • 注册自己的信息到EurekaServer
      • 每隔30秒向EurekaServer发送心跳
    • consumer:服务消费者,例如案例中的 order-service
      • 根据服务名称从EurekaServer拉取服务列表
      • 基于服务列表做负载均衡,选中一个微服务后发起远程调用
  • 搭建Eureka服务

  • 搭建EurekaServer服务步骤如下:
  • 1.创建项目,引入spring-cloud-starter-netflix-eureka-server的依赖

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

  • 3.添加application.yml文件,配置eureka地址

  • 4.测试成功

  • 服务注册

  • user-service,order-service注册到eureka-server中
  • 1.都引入spring-cloud-starter-netflix-eureka-client的依赖

  • 2.都修改配置文件
  • 3.测试成功

  • 另外,可以将user-service多次启动,模拟多实例部署;但为了避免端口冲突,需要修改端口设置:
  • 服务发现

  • 服务拉取是基于服务名称获取服务列表,然后再对服务列表做负载均衡
  • 1.修改OrderService的代码,修改访问的url路径,用服务名代替ip、端口:

  • 2.在order-service的启动类中,给RestTemplate添加@LoadBalanced注解,实现负载均衡

  • spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡

最后

以上就是儒雅便当为你收集整理的SpringCloud - Eureka注册发现的全部内容,希望文章能够帮你解决SpringCloud - Eureka注册发现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部