SpringCould学习笔记之注册与发现 Eureka和Nacos

 

Eureka简介

  Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

  Eureka组件

  Eureka包含两个组件:Eureka Server和Eureka Client。

  1.1 Eureka Server

  Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  Eureka Server本身也是一个服务,默认情况下会自动注册到Eureka注册中心。
  如果搭建单机版的Eureka Server注册中心,则需要配置取消Eureka Server的自动注册逻辑。毕竟当前服务注册到当前服务代表的注册中心中是一个说不通的逻辑。
  Eureka Server通过Register、Get、Renew等接口提供服务的注册、发现和心跳检测等服务。

  2.1 Eureka Client

  Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)
  Eureka Client分为两个角色,分别是:Application Service(Service Provider)和Application Client(Service Consumer)

  2.1.1 Application Service

  服务提供方,是注册到Eureka Server中的服务。

  2.1.2 Application Client

  服务消费方,通过Eureka Server发现服务,并消费。

  在这里,Application Service和Application Client不是绝对上的定义,因为Provider在提供服务的同时,也可以消费其他Provider提供的服务;Consumer在消费服务的同时,也可以提供对外服务。

Nacos简介

Nacos是什么

Nacos是什么?好像没听过,不要紧。那Eureka听说过吧,在SpringCloud中做服务注册中心组件,类似的还有Zookeeper、Consul。

所以Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心

Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。

那么Nacos到底是什么呢, 总结为官网一句话就是:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos的发展历程

首先要说Nacos的发展历程就要从阿里巴巴的内部产品ConfigServer说起了,因为Nacos是ConfigServer 的开源实现

早在2008年阿里就开始服务化的进程(那个时候我好像还在上初中啊),在那个时候阿里内部自研的服务发现解决方案就叫做ConfigServer

ConfigServer经历了十年的发展从V1.0的单机版演变为目前对外公布的V4.0集群版。

2018年7月阿里巴巴高级技术专家许真恩(慕义)发布了Nacos首个开源版本V0.1.0,Nacos作为ConfigServer的开源实现截止目前已经更新到了V1.0.1的大版本,并且支持大规模生产版本。

Nacos能做什么

虽然官方文档也有介绍,但是语言比较官方,我就用大白话谈一点自己的使用感受。

  • 服务注册发现和服务健康检测

    Nacos支持基于DNS和基于RPC的服务发现,服务端可以通过SDK或者Api进行服务注册,相应的服务消费者可以使用DNS或者Http查找的方式获取服务列表。Nacos同时提供对服务的实时健康检查,阻止想不健康的主机或服务发送请求,与Eureka类似Nacos也有友好的控制台界面。

 

  • 动态配置服务

    接触过SpringCloud应该对config有所了解,那么配置中心也就很好理解,Nacos支持动态的配置管理,将服务的配置信息分环境分类别外部管理,并且支持热更新。不过与Config不同Nacos的配置信息存储与数据库中,支持配置信息的监听和版本回滚。

  • 动态DNS服务

    支持权重路由,更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。不过这个特性目前版本还不支持

  • 服务及元数据管理

    Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

 

主流注册中心产品对比

  Nacos Eureka
一致性协议 CP+AP AP
健康检查 TCP/HTTP/MYSQL/Client Beat Client Beat
负载均衡策略 权重/
metadata/Selector
Ribbon
雪崩保护
自动注销实例 支持 支持
访问协议 HTTP/DNS HTTP
监听支持 支持 支持
多数据中心 支持 支持
跨注册中心同步 支持 不支持
SpringCloud集成 支持 支持
Dubbo集成 支持 不支持
K8S集成 支持 不支持

 

eureka-server demo地址

https://github.com/lgz940314/Spring-Cloud-2020/tree/master/eureka-server

你可能感兴趣的:(SpringCould学习笔记之注册与发现 Eureka和Nacos)