01-Eureka微服务注册中心快速入门

在这里插入图片描述

一、简介

Eureka 是Netflix公司开源的一个服务注册与发现的组件,和其他Netflix 公司的服务组件(例如负载均衡、 熔断器、网关等) 一起,被Spring Cloud 社区整合为Spring Cloud Netflix 模块。 Eureka 是 Netflix 贡献给Spring Cloud的一个框架!

二、常见的注册中心分类

注册中心提供方地址
ConsulSpringhttps://spring.io/projects/spring-cloud-consulConsul
EurekaNetflixhttps://github.com/Netflix/eureka/wiki
Nacosalibabahttps://nacos.io/zh-cn/
Zookeeperyahoo

三、什么是ACP原则

3.1 APC原则

CAP原则又指CAP定理,是指在一个分布式系统中有如下三个原则:

  • 一致性 (Consistency)
  • 可用性 (Availability)
  • 分区容错性 (Partition tolerance)(这个特性是不可避免的)
    APC原则指的是,这三个要素只能同时实现其中两点,不可能三者兼顾

3.2 分布式特征

image.png

C:数据的一致性,A、B、C里面的数据都是一致性
B:服务的可用性()
P:分区的容错性(在集群里面的机器。因为网络原因,机房的原因。可能导致数据不会同步),他在分布式需要实现的特性

Zookeeper 注重数据的一致性,CP zk(注册中心,配置文件中心,协调中心)
Eureka 注重服务的可用性 AP eureka (注册中心)

四、Eureka快速入门

注意:SpringCloud版本号和Springboot要一一对应上,详细参考官网,这里就不列举了
本文采用了SpringCloud的Hoxton.SR12版本,对应Springboot版本2.3.12.RELEASE

这里我们准备两个服务
Eureka-server 服务端, Eureka-client客户端

4.1 Eureka-server服务端

4.1.1 导入Eureka-server服务端的依赖

<!--Eureka注册中心服务端-->  
<dependency>  
    <groupId>org.springframework.cloud</groupId>  
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>  
</dependency>

4.1.2 启动类增加服务端注解

@EnableEurekaServer

4.1.3 修改配置文件

Eureka服务端默认端口是8761
在微服务中我们一般都要给应用起个名字,方便好辨识

4.2 Eureka-client 客户端

4.2.1 导入Euaeka-client客户端的依赖

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

4.2.2 启动类增加客户端注解

@EnableEurekaClient

4.2.3 修改配置文件

server:  
  port: 8001  
spring:  
  application:  
    name: erueka-client  
eureka:  
  client:  
    service-url:  
      defaultZone: http://localhost:8761/eureka   ## 注册到8761注册中心

4.3 访问测试

image.png

4.5 注册中心的状态标识

  • UP: 服务是上线的,括号里面是具体服务实例的个数,提供服务的最小单元
  • DOWN: 服务是下线的
  • UN_KONW: 服务的状态未知

4.5.1 服务的实例名称

image.png

4.6 常用的配置文件设置

image.png

4.6.1 Server中常用的设置

server:  
  port: 8761  
spring:  
  application:  
    name: erueka-server  
eureka:  
  server:  
    enable-self-preservation: true          #server 的自我保护机制,避免因为网络原因造成误剔除,生产环境建议打开  
    renewal-percent-threshold: 0.85    #85%,如果在一个机房的client端,15分钟内有85%的client没有续约,那么则可能是网络原因,认为服务实例没有问题,不会剔除他们,宁可放过一万,不可错杀一个,确保高可用  
    expected-client-renewal-interval-seconds: 30  #客户端续约时间间隔(秒),用于计算每分钟续约次数  
    eviction-interval-timer-in-ms: 30000     #清除无效节点的频率(毫秒)--定期删除  
  client:  
    service-url:                  #eureka 服务端和客户端的交互地址,集群用,隔开  
      defaultZone: http://localhost:8761/eureka/  
    register-with-eureka: false   #是否注册自己(单机eureka一般关闭注册自己,集群注意打开)  
    fetch-registry: true          #是否拉取服务列表  
  instance:  
    hostname: localhost          #主机名  
    instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}   #实例id  
    prefer-ip-address: true       #是否优先使用ip地址  
    lease-renewal-interval-in-seconds: 10  #客户端向服务端发送心跳的时间间隔(秒)  
    lease-expiration-duration-in-seconds: 20  #服务端在收到最后一次心跳后等待时间上限(秒)

4.6.2 Client的常用配置

server:  
  port: 8001  
spring:  
  application:  
     name: eureka-client  
eureka:  
  client:  
    service-url: #eureka服务端和客户端的交互地址,集群用,隔开  
        defaultZone: http://localhost:8761/eureka  
    register-with-eureka: true #注册自己  
    fetch-registry: true #拉取服务列表  
    registry-fetch-interval-seconds: 5   #表示eureka-client间隔多久去拉取服务注册信息  
instance:  
  hostname: localhost #服务主机名称  
  instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port} #实例id  
  prefer-ip-address: true #服务列表以ip的形式展示  
  lease-renewal-interval-in-seconds: 10 #表示eureka client发送心跳给server端的频率  
  lease-expiration-duration-in-seconds: 20 #表示eureka server至上一次收到client的心跳之后,等待 下一次心跳的超时时间,在这个时间内若没收到下一次心跳,则将移除该实例

结尾: 如果您想要markdown完整版笔记,请您关注下方公众号领取完整笔记一份。期待您的关注~
在这里插入图片描述

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小睿丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值