精华内容
下载资源
问答
  • Eureka高可用

    2020-07-27 20:47:19
    所谓的Eureka高可用就是,配置多个Eureka注册中心,让注册中心具有高可用性。 配置说明 因为需要两个以上的注册中心,所以我们将原来的Eureka注册中心,复制为两份,端口分别为:5121、5122,修改后分别启动 如果...

    说明

    所谓的Eureka高可用就是,配置多个Eureka注册中心,让注册中心具有高可用性。

    配置说明

    因为需要两个以上的注册中心,所以我们将原来的Eureka注册中心,复制为两份,端口分别为:5121、5122,修改后分别启动

    如果我们单独启动多个配置中心,然后服务配置多个注册中心。发现注册中心的数据不是同步的。

    例如:配置分别将服务方与调用方都配置了两个注册中心的地址。

    ##指定注册中心的入口:
    eureka.client.service-url.defaultZone=http://localhost:5121/eureka,http://localhost:5122/eureka
    

    结果为:
    注册中心1,我们发现服务方的数据在5121的注册中心



    注册中心2,我们发现调用方的数据在5122注册中心上

    所以,我们要解决这个两个注册中心的数据同步问题。我们只要对这个两个注册中心交叉配置,就可以配置双机热备了。

    配置步骤

    第一步:修改主机的hosts文件

    为了让配置更加清晰,我们模拟两个注册中心的地址是有差异。所以我们通过修改hosts文件来解决。
    --文件位置

    --增加内容为: 127.0.0.1 eureka1
    127.0.0.1 eureka2

    第二步:修改eureka-server1

    ##服务器信息
    server.port=5121
    
    ##指定Eureka服务信息
    eureka.instance.hostname=eureka1
    ##服务入口
    eureka.client.service-url.defaultZone=http://eureka2:5122/eureka
    #3.是否将自身注册为服务 false表示不注册
    eureka.client.register-with-eureka=false
    #4.是否主动发现服务  false表示不发现
    eureka.client.fetch-registry=false
    

    第三步:修改eureka-server2

    ##服务器信息
    server.port=5122
    
    ##指定Eureka服务信息
    eureka.instance.hostname=eureka2
    ##服务入口
    eureka.client.service-url.defaultZone=http://eureka1:5121/eureka
    #3.是否将自身注册为服务 false表示不注册
    eureka.client.register-with-eureka=false
    #4.是否主动发现服务  false表示不发现
    eureka.client.fetch-registry=false
    

    第四步:重启两个Eureka

    查看控制台,发现数据同步了

    配置三台以上Eureka集群

    第一步:修改主机的hosts文件

    第二步:配置文件(application.properties或者application.yml)修改

    Eureka1配置文件
    ##端口配置
    server.port=5121
    
    ##主机名
    eureka.instance.hostname=eureka1
    
    ##Eureka服务配置
    ##开放访问的路径
    eureka.client.service-url.defaultZone=http://eureka2:5122/eureka,http://eureka3:5123/eureka
    ##设置自己不注册为服务
    eureka.client.register-with-eureka=false
    

    Eureka2配置文件

    ##端口配置
    server.port=5122
    
    ##主机名
    eureka.instance.hostname=eureka2
    
    ##Eureka服务配置
    ##开放访问的路径
    eureka.client.service-url.defaultZone=http://eureka1:5121/eureka,http://eureka3:5123/eureka
    ##设置自己不注册为服务
    eureka.client.register-with-eureka=false
    

    Eureka3配置文件

    ##端口配置
    server.port=5123
    
    ##主机名
    eureka.instance.hostname=eureka3
    
    ##Eureka服务配置
    ##开放访问的路径
    eureka.client.service-url.defaultZone=http://eureka1:5121/eureka,http://eureka2:5122/eureka
    ##设置自己不注册为服务
    eureka.client.register-with-eureka=false
    

    第三步:核对是否成功

    --进入任何一个Eureka后台,确认是否检测到另外两台的Eureka了

    --核对数据是否同步了没有,查看注册实例是否都是一致的。
    展开全文
  • Eureka高可用.xmind

    2021-09-12 15:50:52
    Eureka高可用
  • Eureka 高可用

    2020-04-20 23:01:28
    架构 服务端配置 新增配置文件 ...eureka.instance.hostname=Eureka8761 #是否注册到eureka eureka.client.registerWithEureka=true #是否从eureka中拉取注册信息 eureka.client.fetchRegistry=true ...

    架构

    在这里插入图片描述

    服务端配置

    新增配置文件

    application-8761.properties

    server.port=8761
    #与下面的服务地址的主机号没有关联
    eureka.instance.hostname=Eureka8761
    #是否注册到eureka
    eureka.client.registerWithEureka=true
    #是否从eureka中拉取注册信息
    eureka.client.fetchRegistry=true
    ##暴露eureka服务的地址
    eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8762:8762/eureka/
    
    #自我保护模式,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除,默认为true
    eureka.server.enable-self-preservation=false
    
    security.basic.enabled=true
    spring.security.user.name=admin
    spring.security.user.password=admin
    

    application-8762.properties

    server.port=8762
    eureka.instance.hostname=Eureka8762
    #是否注册到eureka
    eureka.client.registerWithEureka=true
    #是否从eureka中拉取注册信息
    eureka.client.fetchRegistry=true
    ##暴露eureka服务的地址
    eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8761:8761/eureka/
    
    #自我保护模式,当出现出现网络分区、eureka在短时间内丢失过多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除,默认为true
    eureka.server.enable-self-preservation=false
    
    security.basic.enabled=true
    spring.security.user.name=admin
    spring.security.user.password=admin
    

    这里面涉及到了 Eureka 用户认证,如果不需要认证可以去掉相关配置。

    如果不熟悉服务端配置,可以先看看 Eureka 服务端配置

    系统文件配置

    因为是在一台电脑上模拟2台服务器,所以要更改电脑的系统配置

    进入文件夹 C:\Windows\System32\drivers\etc

    更改 host 文件
    在这里插入图片描述
    添加行
    127.0.0.1 localhost Eureka8761 Eureka8762

    maven 打包

    如果不会 maven 打包,可以参考 Maven 打包可执行 jar,各种报错怎么办?

    启动 jar

    在 jar 包位置下打开命令行
    在这里插入图片描述

    java -jar springcloud-eureka-1.0-SNAPSHOT.jar --spring.profiles.active=8761
    

    同样的方法再打开一个

    java -jar springcloud-eureka-1.0-SNAPSHOT.jar --spring.profiles.active=8762
    

    查看结果

    在这里插入图片描述
    在这里插入图片描述

    客户端配置

    如果不熟悉基本的客户端配置,请看 Eureka 客户端配置

    新增配置文件

    bootstrap-cluster.properties

    其它不变,只需改变

    eureka.client.serviceUrl.defaultZone=http://admin:admin@Eureka8761:8761/eureka/,http://admin:admin@Eureka8762:8762/eureka/
    

    maven 打包

    启动 jar

    java -jar micro-web-1.0-SNAPSHOT.jar --spring.profiles.active=cluster
    

    查看结果

    在这里插入图片描述

    与 zookeeper 相比

    建议先阅读文章 zookeeper 与分布式系统

    CAP 理论指出,一个分布式系统不可能同时满足 Consistency (一致性)、Availability (可用性)和 Partition tolerance (分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在一致性可用性之间进行权衡。在此,zookeeper 保证的是 CP,而 eureka 则保证 AP。

    zookeeper 保证一致性,放弃可用性

    当 master 节点因为网络故障与其他节点失去联系时,剩余节点会重新进行 leader 选举。问题在于,选举 leader 的时间太长,30 ~ 120s, 且选举期间整个 zk 集群都是不可用的,这就导致在选举期间注册服务瘫痪。

    zookeeper 由于 leader 选举的关系,至少 3 台机器才能做集群,且至少 2 台处于工作状态。

    eureka 保证可用性,放弃一致性

    eureka 服务器各个节点都是平等的,只要还有一个节点挂掉不会影响正常节点的工作。

    eureka 2 台机器就可以做集群

    展开全文
  • Eureka高可用集群 1.注册中心的重要性 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式。 2. Eureka高...
  • SpringCloud Eureka 高可用

    2018-10-15 23:11:11
    文章目录Spring Cloud Eureka可用高可用客户端(HA Client)Spring Cloud Eureka Client应用元信息实例客户端配置服务器配置高可用注册中心(HA Registry Center)实例服务器配置客户端配置 Spring Cloud Eureka 高...

    Spring Cloud Eureka 高可用

    Eureka和Zookeeper对比
    Eureka在高可用方面好一点;Zookeeper在一致性上强一点

    高可用客户端(HA Client)

    多用于生产环境,客户端应用关联或配置注册中心服务器集群,避免注册中心单点故障

    常见配置手段

    • 多注册中心主机
    • 注册中心DNS
    • 广播(Dubbo)

    Spring Cloud Eureka Client

    如果Eureka客户端应用配置多个Eureka注册服务器,那么默认情况只有第一台可用的服务器存在注册信息。如果第一台可用的Eureka服务器Down掉了,那么Eureka客户端应用将会选择下一台可用的Eureka服务器。

    配置方式:

    eureka.client.serviceUrl.defaultZone=http://${eureka.server1.host}:${eureka.server1.port}/
    eureka,${eureka.server2.host}:${eureka.server2.port}/eureka
    

    应用元信息

    # 调整获取所有应用元信息间隔时间
    eureka.client.registryFetchIntervalSeconds = 5
    
    # 调整应用元信息间隔时间
    eureka.client.instanceInfoReplicationIntervalSeconds = 5
    

    这个时间调的越小的话,信息一致性越强,CPU消耗也越高

    实例

    客户端配置

    # 客户端应用名称
    spring.application.name=spring-cloud-eureka-client
    
    # 客户端服务端口,随机可用
    server.port=0
    
    # 管理端口安全关闭
    management.security.enabled=false
    
    # 客户端注册到Eureka服务器,配置多个注册中心,以","分隔
    eureka.client.serviceUrl.defaultZone = http://localhost:9090/eureka,http://localhost:9091/eureka
    
    

    服务器配置

    # 服务器应用名称
    spring.application.name=spring-cloud-eureka-server
    
    # 服务器服务端口
    server.port=9090
    
    # 管理端口安全关闭
    management.security.enabled=false
    
    ## Eureka 服务器作为注册中心,不需要再注册到其中注册中心去
    ## 同时也不需要获取客户端信息
    
    ##  取消向注册中心注册
    eureka.client.register-with-eureka=false
    
    ## 取消向注册中心获取注册信息(服务、实例信息)
    eureka.client.fetch-registry=false
    

    为了启动多个注册中心,我们可以通过启动参数指定不同的端口,这里我们多指定一个9091

    在这里插入图片描述

    这里我们注意不能勾选单例启动模式

    然后启动客户端,我们会发现两个注册中心中只有一有注册信息

    当我们关掉9090端口的服务器(有注册信息),过一会后,客户端会注册到9091端口的服务器上,并且该服务器会有注册信息。

    高可用注册中心(HA Registry Center)

    高可用注册中心不但需要提供集群环境,解决单点故障的问题。同时,也优雅地处理注册中心之间信息同步的问题。

    配置方式:

    eureka.server.host1 : eureka.client.serviceUrl.defaultZone=http://${eureka.server2.host}:${eureka.server2.port}/eureka
    
    eureka.server.host2 : eureka.client.serviceUrl.defaultZone=http://${eureka.server1.host}:${eureka.server1.port}/eureka
    

    实例

    在这里插入图片描述

    由客户端高可用转变为 服务器高可用

    服务器配置

    在server工程中修改application.properties,并添加application-peer1.properties和application-peer2.properties

    • application.properties:
    ## peer1和peer2公用配置
    
    ## 定义 应用名称
    spring.applicaiton.name = spring-cloud-eureka-server
    
    ## 管理端安全失效
    management.security.enabled = false
    
    ## 公用 Eureka 配置
    ### 向注册中心注册
    eureka.client.register-with-eureka = true
    ### 向获取注册信息(服务、实例信息)
    eureka.client.fetch-registry = true
    
    

    application.properties是它们的公共配置信息

    • application-peer1.properties
    ## peer1配置
    
    ## peer1 端口 9091
    ## peer2 端口 9092
    ## 服务器服务端口
    server.port=9091
    
    eureka.instance.hostname=peer1
    
    ## peer2主机: peer2,端口: 9092
    peer2.server.host = peer2
    peer2.server.port = 9092
    
    ## 向 peer2 注册中心注册
    eureka.client.serviceUrl.defaultZone = http://${peer2.server.host}:${peer2.server.port}/eureka
    
    • application-peer2.properties
    ## peer2配置
    
    ## peer1 端口 9091
    ## peer2 端口 9092
    ## 服务器服务端口
    server.port=9092
    
    eureka.instance.hostname=peer2
    
    ## peer1主机: peer1,端口: 9091
    peer1.server.host = peer1
    peer1.server.port = 9091
    
    ## 向 peer1 注册中心注册
    eureka.client.serviceUrl.defaultZone = http://${peer1.server.host}:${peer1.server.port}/eureka
    

    这里面的peer1和peer2指的是高可用系统中的两台主机,它们之间可以同步信息。
    同时需要修改hosts文件 添加 127.0.0.1 peer1 127.0.0.2 peer2
    这里向注册中心注册的地址不能是localhost,不然available-replicas中无值

    • 启动peer1 Eureka服务器

    通过启动参数-spring.profiles.active=peer1,这样会读取application.propertiesapplication-peer1.properties

    在这里插入图片描述

    同理,启动peer2

    peer1看到的页面:

    在这里插入图片描述

    peer2看到的页面:

    在这里插入图片描述

    客户端配置

    # 客户端应用名称
    spring.application.name=spring-cloud-eureka-client
    
    # 客户端服务端口,随机可用
    server.port=0
    
    # 管理端口安全关闭
    management.security.enabled=false
    
    # 客户端注册到Eureka服务器,配置多个注册中心,以","分隔
    eureka.client.serviceUrl.defaultZone = http://localhost:9091/eureka,http://localhost:9092/eureka
    
    

    客户端主要改下注册中心地址就好了

    项目地址

    https://gitee.com/safika/springcloud-learn

    展开全文
  • 今天小编就为大家分享一篇关于单台Spring Cloud Eureka升级到三台Eureka高可用集群,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
  • eureka高可用注册中心

    2021-07-09 15:11:50
    eureka高可用注册中心

    eureka高可用注册中心

    1.将第一个eureka注册到第二个eureka中相互注册

    server.port=8001
    ##主机名称
    eureka.instance.hostname=eureka1
    ##关闭自我保护机制
    eureka.server.enable-self-preservation=false
    ##定时清理不可用的服务列表信息,配置定时时间间隔
    eureka.server.eviction-interval-timer-in-ms=10000
    ##客户端向服务器端(注册中心)发送的心跳间隔
    eureka.instance.lease-renewal-interval-in-seconds=10
    ##服务器注册租期到期的时间: Eureka服务在收到最后一次心跳的时候,如果后续30秒内没有收到任何的心跳,Eureka会主动的剔除该服务
    eureka.instance.lease-expiration-duration-in-seconds=30
    ##注册中心的访问地址:
    #eureka.client.service-url.defaultZone=http://eureka1:8001/eureka
    #注册到第二个注册中心
    eureka.client.service-url.defaultZone=http://eureka2:8002/eureka

    2.相互注册:将第二个eureka注册到第一个eureka中

    server.port=8002
    ##主机名称
    eureka.instance.hostname=eureka2
    ##关闭自我保护机制
    eureka.server.enable-self-preservation=false
    ##定时清理不可用的服务列表信息,配置定时时间间隔
    eureka.server.eviction-interval-timer-in-ms=10000
    ##客户端向服务器端(注册中心)发送的心跳间隔
    eureka.instance.lease-renewal-interval-in-seconds=10
    ##服务器注册租期到期的时间: Eureka服务在收到最后一次心跳的时候,如果后续30秒内没有收到任何的心跳,Eureka会主动的剔除该服务
    eureka.instance.lease-expiration-duration-in-seconds=30
    ##注册中心的访问地址:
    #注册到第一个注册中心
    eureka.client.service-url.defaultZone=http://eureka1:8001/eureka
    #eureka.client.service-url.defaultZone=http://eureka2:8002/eureka
    

    3.注册完成后,正常调用接口,

    测试:当一个eureka断开后对服务的影响情况:不影响

    展开全文
  • spring cloud eureka高可用集群整合,启用了两个eureka server服务中心,亲自测试过可用,对照博文https://blog.csdn.net/qq_33624284/article/details/86507314
  • Eureka高可用配置

    2020-11-22 09:36:27
    Eureka高可用配置 原理: 在一个Eureka注册中心出现故障是可以有其他的Eureka替代使用 将Eureka1和Eureka2相互注册,同步信息 讲将微服务注册到两个Eureka上 相互注册 服务注册到两个注册中心上,注册中心之间...
  • 承接上一章,这一章主要学习eureka高可用!为什么要搭建集群?集群究竟该怎么搭建?相信读者们都有很多疑问了,接下来就一一的说一下吧 第一、Eureka高可用的作用 之所以进行eureka集群的搭建,在于我们平时的...
  • 主要介绍了详解通过docker和docker-compose实现eureka高可用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 4.1 Eureka高可用配置 在整体的微服务架构图中可以看到一个短板,即所有的应用服务均注册到中心进行服务,但是一旦注册中心服务器发生故障则所有的服务都会面临无法访问的威胁。因此需要对注册中心的Eureka进行...
  • SpringCloud之Eureka高可用 Eureka是Netfilx开元的服务发现组件,本身是一个基于REST的服务。它包含EurekaServer(以下简称ES)和EurekaClient(以下简称EC)两部分,SpringCloud将它集成在子项目SpringCloudNetfilx...
  • 构建eureka高可用服务

    2019-09-10 10:09:59
    高可用,那如何在rancher上部署eureka高可用呢,如何在java -jar做到高可用呢,当时我们说的eureka高可用,当时说的高可用方案,eureka要做到两两注册 我们可以利用SpringBoot的配置来做,SpringBoot可以针对...
  • Spring Cloud之Eureka高可用 我这里就使用三个Eureka Server和一个Eureka Client来演示Eureka高可用,架构图如下: 可以把三个Eureka Server想象成跨区域的注册中心。 创建第一个Spring Boot项目作为Eureka Server1...
  • 还是先提出几个疑问,看本篇文章前最好看过Eureka高可用之Client重试机制:RetryableEurekaHttpClient,要知道Eureka Client只会向一个Server节点进行注册(心跳、状态改变等类似),注册失败时才会尝试下一个server...
  • Eureka 高可用 spring: application: name: EUREKA-HA --- 服务1 server: port: 8761 spring: profiles: peer1 eureka: instance: hostname: peer1 client: serviceUrl: defaultZone: http...
  • Eureka高可用集群配置及自我保护机制Eureka高可用集群配置普通操作骚操作Eureka自我保护机制 Eureka高可用集群配置 高可用集群配置 当注册中心扛不住并发的时候,这时候 要用集群来扛; 普通操作 我们再新建两个...
  • cloud-搭建eureka高可用HA 项目结构 配置文件 cloud-eureka-alpha server: port: 6060 spring: application: name: eureka-alpha eureka: instance: hostname: alpha client: fetch-registry: false # ...
  • 服务注册中心 Eureka 高可用集群1.Eureka 注册中心 高可用集群概述2.Eureka 注册中心 高可用集群搭建2.1但是不识别其中别名2.2创建两个main入口2.3如何 main和 端口yml对应2.4打开后发现(相互指向)3.Eureka 注册...
  • Eureka高可用集群搭建 1.为什么需要集群 如果只有一个注册中心服务器,会存在单点故障所以要集群部署。这样即使集群中某个节点出现宕机等故障,系统仍可以从其他节点拉取微服务地址,从而正常运行。 2.集群搭建 ...
  • Eureka高可用 我们通过前边的工作已经完成了Eureka注册中心的部署以及Eureka服务注册,现在进入下一步重要的步骤——保证服务的高可用Eureka官网解释如下: Eureka can be made even more resilient and ...
  • Eureka高可用2 在完成Eureka注册中心高可用(多注册中心)之后,我们回顾下之前的配置是这样:
  • Spring cloud eureka 高可用 前言 eureka 注册中心单机模式,容灾性低,注册服务多,单个节点性能低,容易发生故障,甚至崩溃等。 生产中我采用集群模式,也就是eureka高可用。 如何搭建高可用 仅仅只需eureka ...
  • sping cloud 中eureka高可用注册中心配置理解–为什么注册中心要互相注册 注册中心peer1: spring.application.name=spring-cloud-eureka server.port=1111 # 表示是否将自己注册到Eureka Server,默认为true。 # ...
  • K8S部署eureka高可用

    2020-06-20 13:45:21
    K8S部署eureka高可用 新建eureka-service工程 1. pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,462
精华内容 13,784
关键字:

eureka高可用