SpringCloud组件之Eureka-阿里云开发者社区

开发者社区> 阿靖哦> 正文

SpringCloud组件之Eureka

简介: SpringCloud如何使用Eureka
+关注继续查看

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

本文讲解Eureka的工作原理、相关配置、如何搭建Eureka服务

一、Eureka工作原理

eureka

Eureka包含两个组件:Eureka Server和Eureka Client Eureka Server提供服务发现能力,各个微服务启动时会向Eureka Server注册自己的信息(服务名、IP、端口等),Eureka Server便存储了这个信息.Eureka Client 是一个Java客户端,用于简化与Eureka的交互。每个微服务启动后, 会每个一定时间(默认30s)向Eureka Server 发送心,让其知道自己扔健康存活。如果Eureka Server在一定时间内(默认90s)没有收到某个微服务实例的心跳,Eureka Server就会注销该实例。默认情况下,Eureka Server也是Eureka Client,多个Eureka Server之间通过复制方式,来实现服务注册表中的数据同步。Eureka Client会缓存服务注册表中的信息, 无须每次都请求Eureka Server查询,缓解了Eureka Server的压力;即使Eureka Server所有节点都宕机,服务消费者依然可以查询自己缓存中的信息找到去调用服务提供者

二、Eureka常用配置

1、eureka.server.enable-self-preservation

是否关闭注册中心的保护机制。如果未关闭Eureka 会统计15分钟之内心跳失败的比例低于85%将会触发保护机制,不剔除服务提供者;如果关闭,服务注册中心会将不可用的实例正确剔除

2、eureka.instance.prefer-ip-address

不使用主机名来定义注册中心的地址,而使用IP地址的形式,如果设置了eureka.instance.ip-address 属性,则使用该属性配置的IP,否则自动获取除环路IP外的第一个IP地址

3、eureka.instance.ip-address

IP地址

4、eureka.instance.hostname

设置当前实例的主机名称

5、eureka.instance.appname

服务名,默认取 spring.application.name 配置值,如果没有则为 unknown

6、eureka.instance.lease-renewal-interval-in-seconds

定义服务续约任务(心跳)的调用间隔,单位:秒

7、eureka.instance.lease-expiration-duration-in-seconds

定义服务失效的时间,单位:秒

8、eureka.instance.status-page-url-path

状态页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置

9、eureka.instance.status-page-url

状态页面的URL,绝对路径

10、eureka.instance.health-check-url-path

健康检查页面的URL,相对路径,默认使用 HTTP 访问,如果需要使用 HTTPS则需要使用绝对路径配置

11、eureka.instance.health-check-url

健康检查页面的URL,绝对路径

12、eureka.client.service-url.

指定服务注册中心地址,类型为 HashMap,并设置有一组默认值,默认的Key为 defaultZone;默认的Value为http://localhost:8761/eureka ,如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔。如果服务注册中心加入了安全验证,这里配置的地址格式为: http://:@localhost:8761/eureka 其中 为安全校验的用户名; 为该用户的密码

13、eureka.client.fetch-registery

是否从eureka获取注册信息

14、eureka.client.registery-fetch-interval-seconds

从Eureka服务器端获取注册信息的间隔时间,单位:秒

15、eureka.client.register-with-eureka

是否注册自己

16、eureka.client.eureka-server-connect-timeout-seconds

连接 Eureka Server 的超时时间,单位:秒

17、eureka.client.eureka-server-read-timeout-seconds

读取 Eureka Server 信息的超时时间,单位:秒

18、eureka.client.filter-only-up-instances

获取实例时是否过滤,只保留UP状态的实例

19、eureka.client.eureka-connection-idle-timeout-seconds

Eureka 服务端连接空闲关闭时间,单位:秒

20、eureka.client.eureka-server-total-connections

从Eureka 客户端到所有Eureka服务端的连接总数

21、eureka.client.eureka-server-total-connections-per-host

从Eureka客户端到每个Eureka服务主机的连接总数

三、创建Eureka项目

1、引入依赖

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

2、启动类使用注解

@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }

}

3、yml文件配置

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:
  client:
    # 关闭注册自己
    register-with-eureka: false
    # 是否从eureka获取注册信息
    fetch-registry: false
    # eureka访问地址
    service-url:
      defaultZone: http://localhost:8761/eureka/
  # 是否开启保护模式,开发模式不需要
  server:
    enable-self-preservation: false

4、启动

console

到这里,整篇文章就结束了,如果文章中存在有误的地方,欢迎各位指正哟,项目源代码地址:SpringCloud-demo

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringCloud迁移至EDAS微服务——Series1:组件介绍及迁移
SpringCloud迁移至EDAS微服务——Series1:组件介绍及迁移
1757 0
SpringMVC的组件解析
SpringMVC的组件解析
38 0
微服务架构案例(05):SpringCloud 基础组件应用设计
本文源码:GitHub·点这里 || GitEE·点这里 更新进度(共6节): 01:项目技术选型简介,架构图解说明02:业务架构设计,系统分层管理03:数据库选型,业务数据设计规划04:中间件集成,公共服务管理05:SpringCloud 基础组件应用设计 一、组件应用规划 1、注册中心 Eureka 组件是 Netflix 开发的,用于定位服务,基于RESTFul方式实现服务注册与发现。
1145 0
Spring Cloud各组件超时
Ribbon的超时 全局设置: ribbon: ReadTimeout: 60000 ConnectTimeout: 60000 局部设置: service-id: ribbon: ReadTimeout: 1000 ConnectTimeout: 1000 其中,service-id 是Ribbon所使用的虚拟主机名,一般和Eureka Server上注册的服务名称一致,即:与spring.application.name 一致。
934 0
SpringCloud微服务(02):Ribbon和Feign组件,服务调用和负载均衡
本文源码:GitHub·点这里 || GitEE·点这里 一、Ribbon简介 1、基本概念 Ribbon是一个客户端的负载均衡(Load Balancer,简称LB)器,它提供对大量的HTTP和TCP客户端的访问控制。
1175 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4519 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10778 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3278 0
+关注
阿靖哦
JAVA开发工程师
70
文章
65
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载