网站备案时 首页,网站域名可以做端口映射吗,慈溪市规划建设网站,中英文外贸网站源码一、服务注册中心组件(*)
定义#xff1a;服务注册中心就是在整个微服务架构单独抽取一个服务#xff0c;该服务不做项目中任何业务功能#xff0c;仅用来在微服务中记录微服务、对微服务进行健康状态检查#xff0c;及服务元数据信息存储常用的注册中心#xff1a;eurek…一、服务注册中心组件(*)
定义服务注册中心就是在整个微服务架构单独抽取一个服务该服务不做项目中任何业务功能仅用来在微服务中记录微服务、对微服务进行健康状态检查及服务元数据信息存储常用的注册中心eureka(netflix)、zookeeper(java)、consul(go)、nacos(java阿里巴巴)eureka是netflix开发的服务发现框架。包含两个组件 eureka server 和 eureka clientEureka
eureka server
1.添加依赖
!-- eureka server --
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-server/artifactId
/dependency2.在启动类上添加注解EnableEurekaServer
SpringBootApplication
EnableEurekaServer
public class EurekaServerApplication {
SpringApplication.run(EurekaServerApplication.class, args);}3.配置文件
# 服务名称
spring.application.nameEUREKA-SERVER
# eureka server端口号默认8761
server.port8761
# eureka server服务注册中心地址
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/未指定服务名称时启动服务后在eureka server管理界面中出现UNKNOW的一个未知应用
在微服务架构中服务名称代表服务唯一标识服务名称必须唯一通过配置spring.application.nameEUREKA-SERVER指定推荐服务名称大写(默认大写)服务名不能出现下划线_
eureka server启动过程中报错
eureka含有两个组件eureka server、eureka client当项目中引入eureka server组件依赖时这个组件会同时将eureka client引入到项目中因此启动时将自己作为一个服务注册中心启动同时也会将自己作为服务客户端进行注册默认启动时立即注册注册时的服务还没有准备完成因此会出现当前错误
关闭eureka server 自己注册自己
# 关闭eureka client立即注册
eureka.client.fetch-registryfalse
# 让当前应用仅仅是服务注册中心,不向eureka server注册
eureka.client.register-with-eurekafalseeureka client
eureka client 就是日后基于业务拆分出来的一个个微服务
1.引入依赖
!-- eureka client--
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-netflix-eureka-client/artifactId
/dependency2.在启动类上加注解EnableEurekaClient
SpringBootApplication
EnableEurekaClient
public class EurekaClientApplication {}3.配置文件
server.port8989
# 服务名称
spring.application.nameEUREKA-CLIENT
# eureka server注册中心地址
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/eureka 自我保护机制
经测试跟spring cloud版本有关高版本的会立即清除(如Hoxton.SR8)
1.自我保护机制触发现象
当eureka client宕机后eureka server管理界面出现如下现象即触发了自我保护机制
2.自我保护机制(Self Preservation Mode)
- 官网地址https://github.com/Netflix/eureka/wiki/Server-Self-Preservation-Mode
- 自我保护机制默认是开启的。这样做是为了确保灾难性的网络事件不会清除eureka注册表数据并将其传播到下游的所有客户端
- 自我保护机制将客户端在服务注册中心清除的条件1.心跳次数高于预期阈值2.关闭自我保护机制3.eureka server关闭自我保护机制(了解即可)
1.eureka server端添加配置
# 关闭自我保护机制,默认开启(建议开启)
eureka.server.enable-self-preservationfalse
# 超时3S自动清除
eureka.server.eviction-interval-timer-in-ms30002.eureka client端添加配置
# 用来修改eureka server默认接收心跳的最大时间默认是90S
eureka.instance.lease-expiration-duration-in-seconds10
# 指定客户端多久向eureka server发送一次心跳默认是30S
eureka.instance.lease-renewal-interval-in-seconds5eureka server 集群搭建
搭建伪集群有三台eureka server分别为
localhost:8761/eureka/
localhost:8762/eureka/
localhost:8763/eureka/在端口为8761的应用配置eureka server集群地址:
eureka.client.service-url.defaultZonehttp://localhost:8762/eureka/,http://localhost:8763/eureka/
在端口为8762的应用配置eureka server集群地址:
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/,http://localhost:8763/eureka/
在端口为8763的应用配置eureka server集群地址:
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/,http://localhost:8762/eureka/demo:用同一个服务多次启动分别指定不同的端口号(-Dserver.port8761、-Dserver.port8762、-Dserver.port8763)在eureka client端添加eureka server集群地址
# eureka server集群注册中心地址
eureka.client.service-url.defaultZonehttp://localhost:8761/eureka/,http://localhost:8762/eureka/,http://localhost:8763/eureka/# eureka client端集群搭建- 指定不同的端口分别启动- spring.application.name指定的服务名称必须是同一个localhost:8761 localhost:8762 localhost:8763
eureka 总结
1.作用在微服务架构中充当服务注册中心
2.两个组件eureka server、eureka client
3.eureka组件1.x(稳定)2.x版本停止更新
4.不推荐使用eureka作为服务注册中心4.1 最新版本已停止更新4.2 每次必须通过手动写代码形式开发服务注册中心