博客
关于我
SpringCloud-Eureka
阅读量:271 次
发布时间:2019-03-01

本文共 1239 字,大约阅读时间需要 4 分钟。

什么是Eureka?

Eureka 是 Netflix 公司开发的一个核心模块,也是其服务注册与发现系统的重要组成部分。作为基于 RESTful APIs 的服务定位系统,Eureka 主要功能是实现云端中间层服务发现和故障转移。服务注册与发现对微服务架构而言至关重要,它通过服务标识符让开发者无需手动修改配置文件即可调用服务,类似于 Dubbo 的注册中心(如 Zookeeper)。


Eureka 的基本架构

Eureka 的架构设计采用了客户-服务器(C-S)模式,其中 Eureka Server 作为服务注册中心,负责管理和存储所有系统中微服务的注册信息。其他微服务作为 Eureka 的客户端需要连接到 Eureka Server 并与之保持心跳连接。通过这种方式,系统管理员可以实时监控各个微服务的状态,SpringCloud 等其他模块(如 Zuul)也可以利用 Eureka Server 发现和调用系统内其他微服务。


Eureka 的核心组件

Eureka 系统主要包含两个核心组件:Eureka ServerEureka Client

  • Eureka Server

    • 负责服务的注册和存储,启动后会将各节点的服务信息注册到 Eureka Server 的服务注册表中。
    • 提供直观的界面让管理员查看所有可用服务节点的信息。
  • Eureka Client

    • Java 客户端,用于简化与 Eureka Server 的交互。
    • 内置了轮询负载均衡器,能够自动根据服务状态进行智能负载均衡。
    • 客户端会向 Eureka Server 发送心跳包(默认周期为 30 秒),如果 Eureka Server 在 90 秒内未接收到心跳包,则会将该服务节点从注册表中移除。

  • Eureka 的三大角色

    在 Eureka 系统中,各个角色协同作用,确保服务的注册、发现和负载均衡:

  • Eureka Server

    • 作为服务注册中心,负责接收和存储所有微服务的注册信息。
  • Service Provider

    • 提供自身服务,通过将服务注册到 Eureka Server,使消费方能够通过服务标识符找到并调用。
  • Service Consumer

    • 消费方从 Eureka Server 获取服务列表,通过负载均衡器智能选择服务实例进行调用。

  • Eureka 与 Dubbo 的对比

    Eureka 和 Dubbo 都是服务注册与发现的解决方案,但两者在架构和实现上有明显差异。

    特性 Eureka Dubbo
    服务定位方式 基于 RESTful API 基于 WebSocket 或 HTTP
    负载均衡算法 轮询(客户端轮询) 智能负载均衡器
    心跳机制 客户端发送心跳(默认 30 秒) 可配置心跳检测
    注册中心类型 单机部署(支持集群) 支持多种注册中心(如 Zookeeper)

    通过以上对比可以看出,Eureka 更适合分布式系统中的服务注册与发现,尤其是在基于微服务架构的云原生环境中。

    转载地址:http://cbfa.baihongyu.com/

    你可能感兴趣的文章
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0007---NIO的三大核心组件关系
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>
    Netty工作笔记0013---Channel应用案例4Copy图片
    查看>>
    Netty工作笔记0014---Buffer类型化和只读
    查看>>
    Netty工作笔记0020---Selectionkey在NIO体系
    查看>>
    Vue踩坑笔记 - 关于vue静态资源引入的问题
    查看>>
    Netty工作笔记0025---SocketChannel API
    查看>>
    Netty工作笔记0027---NIO 网络编程应用--群聊系统2--服务器编写2
    查看>>
    Netty工作笔记0050---Netty核心模块1
    查看>>
    Netty工作笔记0057---Netty群聊系统服务端
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0063---WebSocket长连接开发2
    查看>>
    Netty工作笔记0070---Protobuf使用案例Codec使用
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty工作笔记0085---TCP粘包拆包内容梳理
    查看>>
    Netty常用组件一
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>