spring cloud 搭建注册中心Eureka(集群模式)

集群

注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

新建3个配置文件

application-peer1.yml

spring:
  application:
   name: Service     #应用名称,也是服务注册的名称

server:
  port: 8000         #开启端口

eureka:
  instance:
    hostname: peer1     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/    #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
     #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

application-peer2.yml

spring:
  application:
    name: Service     #应用名称,也是服务注册的名称

server:
  port: 8001         #开启端口

eureka:
  instance:
    hostname: peer2     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/   #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
      #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

application-peer3.yml

spring:
  application:
    name: Service     #应用名称,也是服务注册的名称

server:
  port: 8002         #开启端口

eureka:
  instance:
    hostname: peer3     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/    #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
      #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

注意:

1.register-with-eureka 需要设置为true,或者不设置,默认为true

2.hostname和defaultZone的域名不要设置为localhost,应设置为别名,并在操作系统的host文件中添加映射,

127.0.0.1        peer1
127.0.0.1        peer2
127.0.0.1        peer3

否则后台会出现registered-replicas为空的情况

3.enable-self-preservation 设置为false 关闭自我保护模式,否则一个节点挂掉之后,不会在unavailable-replicas中出现

在idea中设置3个启动方式,并分别设置启动时应用的配置文件名,springboot中约定 配置文件以application-{profiles}.xxx的方式命名

3个同时启动,分别访问 localhost:8000, localhost:8001, localhost:8002

关闭节点peer1,一段时间后,peer1节点信息将出现在 unavailable-replicas 中,如果不关闭自我保护模式,则不会出现。

再次启动peer1,又会恢复正常

以jar包形式启动3个应用,

java -jar -Dspring.profiles.active=peer1 Service.jar
java -jar -Dspring.profiles.active=peer2 Service.jar
java -jar -Dspring.profiles.active=peer3 Service.jar

原文地址:https://www.cnblogs.com/yhood/p/11558636.html

时间: 2024-10-10 06:52:14

spring cloud 搭建注册中心Eureka(集群模式)的相关文章

Spring Cloud|高可用的Eureka集群服务

Eureka,作为spring cloud的服务发现与注册中心,在整个的微服务体系中,处于核心位置.单一的eureka服务,显然不能满足高可用的实际生产环境,这就要求我们配置一个能够应对各种突发情况,具有较强容灾能力的eureka服务.下面我将以一个较为简单的例子,来描述这种高可用服务的实现原理. 一.服务搭建 New->Project-> 选择spring initialir 如下图: 下一步->选择cloud discovery->eureka server,然后一直下一步就行

SpringCloud 注册中心 Eureka 集群是怎么保持数据一致的?

服务注册中心不可能是单点的,一定会有一个集群,那么集群中的服务注册信息如何在集群中保持一致的呢? 首先要明确的是 Eureka 是弱数据一致性的. 下面从2个方面来说明: 什么是弱数据一致性 Eureka 是如何同步数据的 1. 弱数据一致性 我们知道 ZooKeeper 也可以实现数据中心,ZooKeeper 就是强一致性的. 分布式系统中有一个重要理论:CAP. 该理论提到了分布式系统中的3个特性: Consistency 数据一致性 分布式系统中,数据会存在多个副本中,有一些问题会导致写入

Spring Cloud - Nacos注册中心入门单机模式及集群模式

近几年微服务很火,Spring Cloud提供了为服务领域的一整套解决方案.其中Spring Cloud Alibaba是我们SpringCloud的一个子项目,是提供微服务开发的一站式解决方案. 包含微服务开发的必要组件,基于SpringCloud 符合SpringCloud标准,是阿里的微服务的解决方案. 文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md Nacos的安装与启动 Nacos是

Redis5以上版本伪集群搭建(高可用集群模式)

redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下: 第一步:在第一台机器的/usr/local/redis下创建文件夹redis-cluster,然后在其下面创建6个文件夹如下: mkdir -p /usr/local/redis/redis-cluster 进入redis-clus

Spring Cloud之注册中心搭建

一.注册中心服务端搭建 1)引入相关Maven坐标 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> 2)加入相关注解 @EnableEurekaServer 3)相关配置属性,application.yml

Spring Cloud 核心组件——注册中心

1. 什么是微服务的注册中心 注册中心:服务管理,核心是有个服务注册表,心跳机制动态维护. 为什么要用? 微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来很大问题. 主流的注册中心:Zookeeper.Eureka.Consul.ETCD 等. 服务提供者 Provider:启动的时候向注册中心上报自己的网络信息. 服务消费者 Consumer:启动的时候向注册中心上报自己的网络信息,拉取 Provider 的相关网络信息.

Spring Cloud第八篇 | Hystrix集群监控Turbine

? 本文是Spring Cloud专栏的第八篇文章,了解前七篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Cloud第二篇 | 使用并认识Eureka注册中心 Spring Cloud第三篇 | 搭建高可用Eureka注册中心 Spring Cloud第四篇 | 客户端负载均衡Ribbon Spring Cloud第五篇 | 服务熔断Hystrix Spring Cloud第六篇 | Hystrix仪表盘监控

spring cloud(服务注册中心及服务提供者——初学一)

一.创建服务注册中心 1.创建spring boot项目 2.引入eureka-server依赖(也可以在创建项目时勾选eureka-server服务,自动生成依赖) 注意版本号,版本不对可能启动会报错,本次使用Dalston.SR1版本 3.启动类中开启服务注册中心功能 4.在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,只需要在application.properties中问增加如下配置: 5.浏览器访问  localhost:1111

《springcloud 一》搭建注册中心,服务提供者,服务消费者

注册中心环境搭建 Maven依赖信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <!-- 管理依赖 --> <dependencyManage