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文章来源:https://www.toymoban.com/news/detail-497471.html
问答
注册中心每天的访问量就有这么多,怎么做到高性能吞吐的呢,这些都是基于本地缓存做的文章来源地址https://www.toymoban.com/news/detail-497471.html
到了这里,关于SpringCloud-Eureka常用配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!