SpringCloud注册中心之Eureka
2021-06-14 14:03
标签:source cond snapshot exp odi 配置文件 数据 超时 dev
怎么使用
引入依赖:
1.改pom


org.springframework.cloud spring-cloud-starter-netflix-eureka-servercom.atguigu.springcloud cloud-api-common${project.version} org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-actuatororg.springframework.boot spring-boot-devtoolsruntime true org.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtest
2.写yml


server: port: 7001 eureka: instance: hostname: eureka7001.com #eureka服务端的实例名称 client: register-with-eureka: false #false表示不向注册中心注册自己。 fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务 service-url: #集群指向其它eureka #defaultZone: http://eureka7002.com:7002/eureka/ #单机就是7001自己 defaultZone: http://127.0.0.1:7001/eureka/,http://127.0.0.1:7002/eureka/ #server: #关闭自我保护机制,保证不可用服务被及时踢除 #enable-self-preservation: false #eviction-interval-timer-in-ms: 2000
3.改主启动类


package com.opendev.eureka.server; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer //开启Eureka服务 public class EurekaMain7001 { public static void main(String[] args) { SpringApplication.run(EurekaMain7001.class,args); } }
4.测试
访问:http://localhost:7001/
注意:如果进入网页没有看到服务被发现,那是因为当前没有服务注册进来
Eureka 集群环境构建
在新建一个和第一步的Model,修改配置文件端口
1.修改配置:


server: port: 7001 eureka: instance: hostname: eureka7001.com #eureka服务端的实例名称 client: register-with-eureka: false #false表示不向注册中心注册自己。 fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务 service-url: #集群指向其它eureka #defaultZone: http://eureka7002.com:7002/eureka/ #单机就是7001自己 defaultZone: http://127.0.0.1:7001/eureka/,http://127.0.0.1:7002/eureka/ #server: #关闭自我保护机制,保证不可用服务被及时踢除 #enable-self-preservation: false #eviction-interval-timer-in-ms: 2000
新建一个支付服务分别注册到二个Eureka集群
1.导入依赖


org.springframework.cloud spring-cloud-starter-zipkinorg.springframework.cloud spring-cloud-starter-netflix-eureka-clientcom.opendev System-provider-payment-80011.0-SNAPSHOT org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-actuatororg.mybatis.spring.boot mybatis-spring-boot-startercom.alibaba druid-spring-boot-starter1.1.10 mysql mysql-connector-javaorg.springframework.boot spring-boot-starter-jdbcorg.springframework.boot spring-boot-devtoolsruntime true org.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtest
2.修改配置


server: port: 8001 spring: application: name: cloud-payment-service zipkin: base-url: http://localhost:9411 sleuth: sampler: #采样率值介于 0 到 1 之间,1 则表示全部采集 probability: 1 datasource: type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型 driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包 url: jdbc:mysql://localhost:3306/db2019?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: 960512 eureka: client: #表示是否将自己注册进EurekaServer默认为true。 register-with-eureka: true #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡 fetchRegistry: true service-url: #单机版 defaultZone: http://127.0.0.1:7002/eureka/,http://127.0.0.1:7001/eureka/ # 集群版 #defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka instance: instance-id: payment8001 #访问路径可以显示IP地址 prefer-ip-address: true #Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒) #lease-renewal-interval-in-seconds: 1 #Eureka服务端在收到最后一次心跳后等待时间上限,单位为秒(默认是90秒),超时将剔除服务 #lease-expiration-duration-in-seconds: 2 mybatis: mapperLocations: classpath:mapper/*.xml type-aliases-package: com.atguigu.springcloud.entities # 所有Entity别名类所在包
Eureka 集群原理:
Eureka的自我保护机制:
故障现象:
简而言之,当微服务集群中有一个挂了之后(不可用),Eureka并不会立刻清理,依旧会对该服务信息进行保存。它是cap理论里面中的AP分支。
Eureka客户端向服务端发送心跳的时间间隔,单位为秒(默认是30秒)
Eureka 默认是开启了保护机制
Eureka服务端在收到最后一次心跳后等待时间上限 ,单位为秒(默认是90秒),超时剔除服务
SpringCloud注册中心之Eureka
标签:source cond snapshot exp odi 配置文件 数据 超时 dev
原文地址:https://www.cnblogs.com/cb1186512739/p/12745615.html