首页 > 其他分享 >Netflix之Eureka

Netflix之Eureka

时间:2023-10-07 15:34:12浏览次数:29  
标签:服务 Netflix Server 注册 Eureka server true

一、Eureka简介

1、背景

传统应用中,组件之间的调用,通过有规范的约束的接口来实现,从而实现不同模块间良好的协作。但是被拆分成微服务后,每个微服务实例的网络地址都可能动态变化,数量也会变化,使得原来硬编码的地址失去了作用。需要一个中心化的组件来进行服务的登记和管理。

2、注册中心的好处

不用关心有多少提供方。

3、注册中心有哪些

  • Eureka
  • Nacos
  • Consul
  • Zookeeper

4、介绍

Eureka是一个RESTful风格的服务,是一个用于服务发现和注册的基础组件,是搭建Spring Cloud微服务的前提之一,它屏蔽了Server和client的交互细节,使得开发者将精力放到业务上。

二、服务注册与发现

服务注册与发现包括两部分,一个是服务器端,另一个是客户端。

1、服务器端

Server是一个公共服务,为Client提供服务注册和发现的功能,维护注册到自身的Client的相关信息,同时提供接口给Client获取注册表中其他服务的信息,使得动态变化的Client能够进行服务间的相互调用。

  • 服务注册表。记录每个注册上来微服务信息,比如服务名称、IP、端口等。注册表提供 查询API(查询可用的微服务实例)和管理API(用于服务的注册和注销)。
  • 服务注册。将微服务信息注册到注册中心。
  • 服务发现。查询可用微服务列表及其网络地址。
  • 服务检查。定时检查已注册的服务。发现某服务长时间未提供心跳包,就从注册表中移除。

2、客户端

Client将自己的服务信息通过一定的方式登记到Server上,并在正常范围内维护自己信息一致性,方便其他服务发现自己,同时可以通过Server获取到自己依赖的其他服务信息,完成服务调用,还内置了负载均衡器,用来进行基本的负载均衡。

  • 注册。微服务启动时,将自己信息注册到注册中心,注册中心存储这些信息(内存中)。
  • 拉取注册中心列表。定时去注册中心拉取注册表信息,缓存到client本地。避免每次请求都去注册中心查找
  • 心跳。微服务与注册中心通过某种机制(心跳)通讯。
  • 调用服务。解析服务名和具体地址对应关系,找到具体地址发起请求。

三、配置

1、注册中心配置

(1)依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

(2)配置文件

server:
  port: 7901
eureka:
  client:
    # 是否将自己注册到Eureka Server,默认是true,由于当前就是server,所以设置false,表明改服务不会注册到Eureka Server
    register-with-eureka: true
    # 是否从Eureka Server获取注册信息,由于当前是单节点,不需要同步其他节点数据,用false
    fetch-registry: true
    # 是否过滤掉非Up的实例
    # filter-only-up-instances: true
    # 设置服务注册中心的url 用于client和server交流
    service-url:
      defaultZone: http://root:[email protected]:7902/eureka/
    # 客户端拉取服务端注册列表信息间隔 默认30s   对于网关如果需要迅速获取服务注册状态 可以调下 比如5s
    registry-fetch-interval-seconds: 30
  instance:
    hostname: euk1.com
    # 续约 心跳间隔  默认30s
    lease-renewal-interval-in-seconds: 30
    # 续约到期时间  默认90s
    lease-expiration-duration-in-seconds: 90
  # 关闭自我保护机制
  server:
    enable-self-preservation: false

3、注册成功

DiscoveryClient_EUREKASERVER/localhost:EurekaServer:7901 - registration status: 204

4、高可用

多个server之间互相注册

server:
  port: 7902
eureka:
  client:
    # 是否将自己注册到Eureka Server,默认是true,由于当前就是server,所以设置false,表明改服务不会注册到Eureka Server
    register-with-eureka: true
    # 是否从Eureka Server获取注册信息,由于当前是单节点,不需要同步其他节点数据,用false
    fetch-registry: true
    # 是否过滤掉非Up的实例
    # filter-only-up-instances: true
    # 设置服务注册中心的url 用于client和server交流
    service-url:
      defaultZone: http://root:[email protected]:7901/eureka/
    # 客户端拉取服务端注册列表信息间隔 默认30s   对于网关如果需要迅速获取服务注册状态 可以调下 比如5s
    registry-fetch-interval-seconds: 30
  instance:
    hostname: euk2.com
    # 续约 心跳间隔  默认30s
    lease-renewal-interval-in-seconds: 30
    # 续约到期时间  默认90s
    lease-expiration-duration-in-seconds: 90

标签:服务,Netflix,Server,注册,Eureka,server,true
From: https://www.cnblogs.com/xinay/p/17746422.html

相关文章

  • Netflix之Zuul
    一、什么是ZuulZuul是Netflix开源的微服务网关,核心是一系列过滤器。这些过滤器可以完成以下功能。所有微服务的入口。进行分发。身份认证和安全。拦截不合法请求。监控。更加全面收集请求。动态路由。动态将请求分发到不同的后端集群。压力测试。可以逐渐增加对后端的流量,......
  • Netflix之Feign
    一、什么是FeignFeign是Netflix开发的一套声明式、模板话的http请求客户端,更便捷优雅的迪用API。会根据带有注解的函数信息构建网络请求模板,在请求发送之前,将函数的参数值设置到请求模板中。是一个http请求的轻量级框架,封装了http调用流程,面向接口编程,可以以接口注解的方式调用......
  • Netflix的eureka注册中心简单使用
    使用服务端<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>server:port:9000servlet:context-path:/eureka-servere......
  • 负载均衡 —— SpringCloud Netflix Ribbon
    Ribbon简介Ribbon是Netfix客户端的负载均衡器,可对HTTP和TCP客户端的行为进行控制。为Ribbon配置服务提供者地址后,Ribbon就可以基于某种负载均衡算法自动帮助服务消费者去请求。Ribbon默认提供了很多负载均衡算法,例如轮询、随机等,也可以为Ribbon实现自定义的负载均......
  • Eureka总结
    服务调用者在调用服务提供者时ip地址如果采用硬编码往后更改不方便,将服务注册到eureka注册中心后调用服务只需输入服务名称注册步骤,导入依赖,编写配置文件,记得刷新maven服务提供者的服务可以复制,多实例启动,然后在服务调用者的注入RestTemplate实例处加入@Loadbalanced实现负载均......
  • Eureka和Nacos
    Eureka是什么Eureka是SpringCloud微服务框架默认的也是推荐的服务注册中心,由Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用于实现AWS云的中服务定位,以实现中间层服务器的负载均衡和故障转移,遵循着CAP理论中的A(可用性)P(分区容错性)Eureka详解一个Eurek......
  • Eureka application配置文件
    记录下配置文件,方便以后直接copy。server端server:port:13000spring:application:name:test-eureka-servereureka:server:enable-self-preservation:truerenewal-percent-threshold:0.85eviction-interval-timer-in-ms:60000client:......
  • Eureka的原理分析
     ......
  • 浅谈eureka的保护机制
    今天学习了springcloud中的注册中心——eureka,作为微服务的注册中心,eureka需要对服务的可用状态进行一个体现。直观的体现方式就是在eureka启动后的ui界面上可以看到服务的是否可用。在某一个时刻下,如果后端某一个服务不可用了,eureka不会立即将其从ui界面上删除。而是......
  • eureka加入认证功能
    为了注册中的安全性,我们需要加入eureka登录的认证功能,然后该功能的添加涉及两部分,一部分是eureka服务端,另一部分是eureka客户端eureka服务端配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-secur......