`
baobeituping
  • 浏览: 1071363 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

spring cloud 高可用的服务注册中心

 
阅读更多

注册中心单点肯定是不牢靠的,可以参考下面的方案做成注册中心集群:

弄成3个节点,每个节点向其它节点注册,这样只要集群中有一个节点正常工作即可。为了方便在本机弄出这种效果,我们先修改下host文件

127.0.0.1  localhost server1 server2 server3

相当于给本机ip绑了3个hostname。然后在项目中,创建3个profile,参考下图:

application.yml:

application-server1.yml:

1
2
3
4
5
6
7
8
9
10
server:
  port: 8100
 
eureka:
  instance:
    hostname: server1
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server2:8200/eureka,http://server3:8300/eureka

application-server2.yml:

1
2
3
4
5
6
7
8
9
10
server:
  port: 8200
 
eureka:
  instance:
    hostname: server2
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server1:8100/eureka,http://server3:8300/eureka

application-server3.yml:

1
2
3
4
5
6
7
8
9
10
server:
  port: 8300
 
eureka:
  instance:
    hostname: server3
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server1:8100/eureka,http://server2:8200/eureka  

其它不用改,idea中启用时,指定3个不同的profile,参考下图:

启用3个实例,分别应对server1,server2,server3 这三个profile后,看下UI

可以看到,每个eureka server都向其它节点注册了。

其它服务向eureka server集群注册时,参考下面的配置:

1
2
3
4
5
6
7
8
9
10
11
12
server:
  port: 8001
 
spring:
  application:
    name: "service-provider-demo"
eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8100/eureka/,http://localhost:8200/eureka/,http://localhost:8300/eureka/

 

再来看另一个问题:

注册中心的管理界面以及服务注册时,没有任何认证机制,安全性比较差,如果其它服务恶意注册一个同名服务,但是实现不同,可能就有风险了,可以参考下面的配置改进:

先添加:compile 'org.springframework.boot:spring-boot-starter-security' 依赖,然后在eureka server的application.yml中增加

1
2
3
4
5
6
security:
  basic:
    enabled: true
  user:
    name: yjmyzz #用户名
    password: 123456 #密码

这样就添加了1个用户名及密码(注:其原理就是spring-security,熟悉spring-security的朋友,也可以改成把用户名/密码存储在数据库中)

启动后,再浏览eureka server就用输入用户名,密码了。

 

然后其它服务注册时,相应的defautZone也要改成类似:

defaultZone: http://yjmyzz:123456@server1:8100/eureka,http://yjmyzz:123456@server2:8200/eureka 这种格式

分享到:
评论

相关推荐

    (推荐)企业级的Spring Cloud高可用服务设计与实战

    企业级的Spring Cloud高可用服务设计与实战企业级的Spring Cloud高可用服务设计与实战企业级的Spring Cloud高可用服务设计与实战

    Spring Cloud高可用服务设计与实战

    Spring Cloud高可用服务设计与实战Spring Cloud高可用服务设计与实战Spring Cloud高可用服务设计与实战

    springcloud项目,高可用服务注册中心

    springcloud项目,高可用服务注册中心 eureka集群使用 在生产中我们可能需要三台或者大于三台的注册中心来保证服务的稳定性,配置的原理其实都一样,将注册中心分别指向其它的注册中心。这里只介绍三台集群的配置...

    Spring Cloud高可用服务中心搭建

    也就是解决当一个服务注册中心当机后,我们可以提供多个服务注册副本来解决服务查询不到的问题,从达到在微服开发中实现高可用注册中心的功能。 开发环境:IDEA集成工具,JDK 1.8 使用步骤:下载资源后解压项目,...

    Spring cloud高可用配置

    在构建分布式系统时,Spring Cloud是一个非常重要的框架,它提供了微服务治理的一系列解决方案,包括服务注册与发现、负载均衡、断路器等。本文将深入探讨如何实现Spring Cloud的高可用配置,主要关注Eureka服务发现...

    SpringCloud学习之服务注册与发现

    `springCloud_01_client1`和`springCloud_01_client2`则是服务客户端的代码,每个客户端项目都需要引入Spring Cloud的Eureka客户端依赖,以实现服务注册和发现功能。在这些客户端项目中,开发者需要配置服务提供者的...

    springcloud eureka 服务注册中心

    **SpringCloud Eureka 服务注册中心** 在微服务架构中,服务发现是核心组件之一,它使得服务之间能够互相找到并进行通信。Spring Cloud Eureka 就是这样的一个服务注册与发现工具,它是 Netflix 提供的开源项目,是...

    SpringCloud——Zookeeper(注册中心)

    在分布式系统中,服务注册与发现是至关重要的一个环节,SpringCloud通过集成不同的注册中心,如Eureka、Consul和Zookeeper,为微服务架构提供了强大的支持。本篇主要聚焦于SpringCloud与Zookeeper的结合,讲解如何...

    SpringCloud集成Python服务

    Eureka是SpringCloud的服务注册与发现组件,它允许各个微服务实例向中心注册,并且提供服务发现功能。在集成Python服务时,我们需要在Python端实现一个Eureka客户端,让Python服务能够注册到Eureka服务器上,这样...

    SpringCloud——分布式配置中心(Spring Cloud Config)

    在微服务架构中,Spring Cloud Config 是一个强大的分布式配置中心,它允许开发人员将应用程序的配置存储在远程仓库中,并且可以在运行时动态地管理和更新这些配置,无需重启应用。这个特性对于大型分布式系统来说...

    springcloud-alibaba服务注册发现

    通过这个"springcloud-alibaba服务注册发现"的小demo,初学者可以直观地了解和实践服务注册与发现的基本流程。随着对Spring Cloud Alibaba的深入学习,我们可以进一步掌握更多高级特性,如服务健康检查、服务版本...

    SpringCloud-服务注册与实现-Eureka创建服务提供者示例源码.zip

    本项目"SpringCloud-服务注册与实现-Eureka创建服务提供者示例源码"将深入探讨如何构建一个基于Eureka的服务提供者。 首先,我们需要了解Eureka的基本概念。Eureka由两部分组成:Eureka Server(服务注册中心)和...

    第三章 SpringCloud 使用Erueak服务注册中心.pdf

    【SpringCloud使用Eureka服务注册中心】 在分布式系统中,服务注册与发现是微服务架构中的关键组件。SpringCloud提供了一种优雅的解决方案——使用Eureka作为服务注册中心,解决了传统架构中的诸多问题,实现了服务...

    springcloud注册中心

    总结来说,SpringCloud注册中心是微服务架构中的基石,它提供了服务注册、发现、健康检查等一系列功能,确保了服务间的高效协同。Eureka、Consul和Zookeeper是常见的注册中心实现,各有优缺点,选择时需结合具体项目...

    springcloud视频学习

    3. 创建并部署第一个SpringCloud微服务:演示如何使用Spring Cloud Netflix Eureka创建服务注册中心,以及如何让其他微服务实例注册到这个中心。 4. 使用Spring Cloud Config实现配置管理:讲解如何通过Config ...

    springcloud注册中心demo

    - 启动Eureka Server,它将作为一个高可用的服务注册中心。 2. **配置Eureka Client**: - 对每个微服务应用,引入Eureka Client依赖。 - 配置微服务应用的Eureka Client属性,包括服务实例ID、Eureka Server的...

    springcloud实现服务注册,提供,消费,结合MySQL数据

    在本文中,我们将深入探讨如何使用Spring Cloud来构建一个服务注册、服务提供、服务消费的系统,并结合MySQL数据库进行数据管理。Spring Cloud是基于Spring Boot的一组微服务开发工具,它为开发分布式系统(如配置...

    Spring boot,springCloud精选视频教程

    2.使用Spring Cloud搭建高可用服务注册中心 3.Spring Cloud中服务的发现与消费 4.Eureka中的核心概念 5.什么是客户端负载均衡 6.Spring RestTemplate中几种常见的请求方式 7.RestTemplate的逆袭之路,从发送...

    Spring cloud 服务注册与发现

    总之,Spring Cloud 的服务注册与发现机制是构建大规模微服务架构的重要基石,它简化了服务之间的交互,提高了系统的容错性和可用性。无论是选择Eureka还是Consul,都能帮助我们构建出更加健壮、灵活的分布式系统。...

Global site tag (gtag.js) - Google Analytics