SpringCloud-Eureka常用配置

Eureka分为 注册中心、服务提供者、服务消费者。下面会分别介绍注册中心以及在集群情况下注册中心如何配置,以及服务消费者和服务提供者配置

一、概念

八个概念

服务注册、服务续约、服务获取、服务下线、服务调用、服务同步、失效剔除、自我保护

1、服务提供者
服务注册中心之间:服务注册、服务续约、服务下线

2、服务消费者
与注册中心:服务获取、服务下线
与服务提供者:服务调用

3、注册中心
与其他注册中心:服务同步
与服务提供者或者服务消费者:失效剔除、自我保护

二、整体流程

左边是服务消费者,右边是服务提供者

服务消费者和注册中心
1、注册中心和服务消费者通过长连接的方式,定时推送(push) 到服务消费者,这个push不会推送任何内容,只是用来做心跳检测用。判断通讯是否正常。
2、服务消费者通过【短连接】 定时轮询从注册中心拉取(pull)服务Ip列表,拿到后存到本地缓存,定时更新,使用时直接从缓存里面取。
3、在服务列表选择的时候,通过ribbon路由得到具体的某一个服务提供者向其发起调用。

服务提供者和注册中心
1、服务提供者向注册中心 发起服务注册
2、注册中心向服务提供者发起心跳检测,如果服务不存则剔除,如果存在则更新最后一次心跳的时间戳。

三、Eureka服务端配置(注册中心)

1、单个注册中心,注意一个注册中心也可以有多个服务实例

server.port=10000    #注册中心的Ip地址,下面要用到
management.security.enabled=false
spring.application.name=eureka-server    #服务名
eureka.instance.hostname=eureka  #定义eureka主机名,下面要用到

eureka.client.register-with-eureka=false #false表示不向注册中心注册自己
eureka.client.fetch-registry=false #是否从Eureka Server获取注册的服务信息,false表示自己端就是注册中心,我的职责就是维护服务实例

###注册中心url
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

eureka.server.enable-self-preservation=false #自我保护模式

2、Eureka集群的配置

如果Eureka有很多个注册中心,那么我们就可以给每个Eureka配置不同的端口,比如10000,10001,10002,那么我们在配置Eureka集群的时候就可以这样配了

#eureka1的配置(注册中心1)

server.port=10000
eureka.instance.hostname=eureka1.com
#配置多个注册中心url
eureka.client.service-url.defaultZone=http://eureka1.com:10000/eureka/,http://http://eureka2.com:10001/eureka/,http://http://eureka3.com:10002/eureka/
#上面其实就是eureka服务名+端口号:http://${eureka.instance.hostname}:${server.port}/eureka/

#eureka2的配置(注册中心2)

server.port=10001
eureka.instance.hostname=eureka2.com
eureka.client.service-url.defaultZone=http://eureka1.com:10000/eureka/,http://http://eureka2.com:10001/eureka/,http://http://eureka3.com:10002/eureka/

#eureka3的配置(注册中心3)

server.port=10002
eureka.instance.hostname=eureka3.com
eureka.client.service-url.defaultZone=http://eureka1.com:10000/eureka/,http://http://eureka2.com:10001/eureka/,http://http://eureka3.com:10002/eureka/

当我们进到其中一个Eureka后台的时候,就可以在该集群下3台服务的状态。

3、配置说明

3.1 Eureka的自我保护,默认是true

eureka.server.enable-self-preservation=false

这里说下Eureka的自我保护是干嘛用的,具体可以看这里介绍:自我保护详细介绍
大致的意识就是我们服务启动的时候,才会往注册中心注册服务,当我们因为网络问题不稳定,注册中心误以为服务挂了,就把服务剔除了,那么这个服务要想在进到注册中心里面去,就需要重启,这就很麻烦了,Eureka的自我保护功能就不需要服务去重启,他会隔断时间再来检测服务是否可用,如果可用在加回到服务列表中。

3.2 是否注册自己

eureka.client.register-with-eureka=false

表示是否将自己注册到Eureka Server。如果注册就能够被其他server发现,默认是true

4、服务发现

eureka.client.fetch-registry=false

是否从【注册中心】获取注册信息,默认是true,如果是配置在注册中心端,该项可以设置为false,如果是【服务提供者】或者【服务消费者】,需要获取注册中心的服务,就要设置为true

配置字段有哪些请看EurekaClientConfigBean这个类,字段含义讲解请看:https://blog.csdn.net/u011676300/article/details/83183725

四、Eureka客户端配置(服务提供者)

server.port=12000
spring.application.name=client
management.security.enabled=false

#设置注册中心的url
eureka.client.service-url.defaultZone=http://localhost:10000/eureka/

eureka.client.enabled=true #该客户端是否可用
#实例是否在eureka服务器上注册自己的信息以供其他服务发现,默认为true
eureka.client.register-with-eureka=true

#使用ip地址注册到eureka server
eureka.instance.ip-address=true
#该实例在注册中心注册的Ip和端口
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}

注释说明:

1、eureka.client.register-with-eureka :表示是否将自己注册到Eureka Server,默认为true。由于当前这个应用就是注册中心所以设置false,如果是【服务提供者】或【服务消费者】就设置为true

2、eureka.client.fetch-registry :表示是否从Eureka Server获取注册信息,默认为true。

3、eureka.client.serviceUrl.defaultZone :设置Eureka注册中心的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8100/eureka ;多个地址可使用 , 分隔。

更多细节请看:https://blog.csdn.net/qq_31960623/article/details/119905093

五、Eureka客户端配置(服务消费者)

server.port=12001
spring.application.name=client2
management.security.enabled=false

#Eureka配置
eureka.client.service-url.defaultZone=http://localhost:10000/eureka/
eureka.client.register-with-eureka=true
# 使用ip地址注册到eureka server
eureka.instance.ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}

六、区域和机房配置

为什么需要配置区域和机房?


# 配置区域
eureka.client.region=beijing
# 配置机房,也就是biejing这个区域有2个机房
eureka.client.availability-zones.beijing=zone-1,zone-2

#配置每个机房所对应的Eureka地址
eureka.client.service-url.zone-1=http://localhost:8761/eureka
eureka.client.service-url.zone-2=http://localhost:8762/eureka

注:上面这个配置每个地方都要加,无论是注册中心还是,服务提供者还是服务消费者都要加。

下面这个配置是针对服务提供者和服务消费者测加的。

# 配置项目当前所属机房
eureka.instance.metadata-map.zone=zone-1

# 默认调用同区域的服务
eureka.client.prefer-same-zone-eureka=true

七、spring-boot-starter-actuator包的作用

1、介绍

使用 spring-boot-starter-actuator 可以用于检测系统的健康情况、当前的Beans、系统的缓存等多个内容。

具体可检测的内容参考下面的链接: 跳转

2、使用方式

在pom.xml 文件中引入spring-boot-starter-actuator依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

注意:默认情况下,通过web端只可访问http://localhost:8080/actuator/health,如果要配置其他访问路劲,可在application.properties中配置访问的uri、权限、端口等

#访问端口
management.server.port=8081
#根路径
management.endpoints.web.base-path=/actuator/z
#web端允许的路径
management.endpoints.web.exposure.include=*

如果配置成* 表示开放了web端的所有访问,可通过访问http://localhost:8081/actuator/z/beans 来查看系统中的beans

问答

注册中心每天的访问量就有这么多,怎么做到高性能吞吐的呢,这些都是基于本地缓存做的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

信仰_273993243

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

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

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

打赏作者

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

抵扣说明:

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

余额充值