springcloud-高可用部署

简介: springcloud-高可用部署1.场景描述前端时间只简单介绍了下springcloud的高可用方案(springcloud高可用方案),今天详细介绍下如何实施springcloud的高可用部署。2.

springcloud-高可用部署
1.场景描述
前端时间只简单介绍了下springcloud的高可用方案(springcloud高可用方案),今天详细介绍下如何实施springcloud的高可用部署。

2.解决方案
2.1 架构方案
2.1.1 架构图

2.1.2 访问地址
(1)Gateway访问地址:

http://10.192.168.11:9000/client/
(2)Client地址:

http://10.192.168.14:9001,http://10.192.168.14:9002/,http://10.192.168.15:9003/,http://10.192.168.15:9004/
(3)Eureka地址:

http://10.192.168.12:8761/,http://10.192.168.13:8761/
2.1.3 方案说明
(1)从springcloud架构中,可以了解到,注册中心和网关会成为单点故障率比较高的点,有可能会成为瓶颈。

(2)高可用方案大概思路是:部署多个注册中心和多个应用,实现单点故障后自动切换,无须人工干预。(网关高可用最后有说明)

2.2 注册中心部署
需修改配置文件:application.yml。

2.2.1 注册中心配置
(1)注册中心1(10.192.168.12)

spring:
application:

name: registry

server:
port: 8761
eureka:
client:

register-with-eureka: false
service-url:
  defaultZone: http://10.192.168.13:8761/eureka

(2)注册中心2(10.192.168.13)

spring:
application:

name: registry

server:
port: 8761
eureka:
client:

register-with-eureka: false
service-url:
  defaultZone: http://10.192.168.12:8761/eureka

2.2.2 说明
重点是defaultZone这个配置,注册中心1要作为客户端配置注册中心2的服务地址,注册中心2要作为客户端配置注册中心1的服务地址,这样就实现了互为注册,并且还有最重要的一点,注册的客户端也会在注册中心之间相互同步。

2.3 应用部署
2.3.1 应用配置文件
需修改配置文件:application.yml

eureka:

client:
    service-url:
        defaultZone:  http://10.66.211.12:8761/eureka/,http://10.66.211.13:8761/eureka/
    healthcheck:
        enabled: true
    instance:
        lease-expiration-duration-in-seconds: 30
        lease-renewal-interval-in-seconds: 10
    registry-fetch-interval-seconds: 5

server:

port: 9001

spring:

application:
     name: client

说明:

重点还是defaultZone这项配置,这里要写成两个注册中心的地址,以逗号分开,这样一台出现单点故障的话,另一台还能正常访问,并且故障注册中心恢复后,会自动从另一台注册中心同步注册客户端信息。

2.3.2 应用部署
(1)将注册服务客户端在多台服务器部署,同一台服务器的话,以端口号区分下,只部署一台的话,可以使用默认端口号。

(2)本项目是使用了在10.192.168.14和10.192.168.15服务器上都部署了两个应用实例。

其中项目配置文件application.yml如上,重点说明:

spring:

application:
     name: client

其中:client是注册的名称,部署的实例都要是这个,路由会根据名称来查找应用,例如本项目部署了4个应用实例,默认实行轮询访问的方式。

2.4 高可用访问
访问地址(路由地址):

http://10.192.168.11:9000/client/
请求会在四个应用实例(9001-9004)之间进行轮询访问,这样就实现了注册中心与应用客户端的高可用。

2.5 关于网关高可用
关于网关的高可用,我们没有实际部署,不过可以参看greenplum的高可用方案(Greenplum高可用真的高吗?),结合keepalived来实现网关的高可用,参考架构图
原文地址https://www.cnblogs.com/ruanjianlaowang/p/11211052.html

相关文章
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1674 3
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
1321 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
负载均衡 Dubbo Java
Spring Cloud Alibaba与Spring Cloud区别和联系?
Spring Cloud Alibaba与Spring Cloud区别和联系?
|
前端开发 Java Nacos
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
本文介绍了如何使用Spring Cloud Alibaba 2023.0.0.0技术栈构建微服务网关,以应对微服务架构中流量治理与安全管控的复杂性。通过一个包含鉴权服务、文件服务和主服务的项目,详细讲解了网关的整合与功能开发。首先,通过统一路由配置,将所有请求集中到网关进行管理;其次,实现了限流防刷功能,防止恶意刷接口;最后,添加了登录鉴权机制,确保用户身份验证。整个过程结合Nacos注册中心,确保服务注册与配置管理的高效性。通过这些实践,帮助开发者更好地理解和应用微服务网关。
2758 0
🛡️Spring Boot 3 整合 Spring Cloud Gateway 工程实践
|
人工智能 安全 Java
AI 时代:从 Spring Cloud Alibaba 到 Spring AI Alibaba
本次分享由阿里云智能集团云原生微服务技术负责人李艳林主讲,主题为“AI时代:从Spring Cloud Alibaba到Spring AI Alibaba”。内容涵盖应用架构演进、AI agent框架发展趋势及Spring AI Alibaba的重磅发布。分享介绍了AI原生架构与传统架构的融合,强调了API优先、事件驱动和AI运维的重要性。同时,详细解析了Spring AI Alibaba的三层抽象设计,包括模型支持、工作流智能体编排及生产可用性构建能力,确保安全合规、高效部署与可观测性。最后,结合实际案例展示了如何利用私域数据优化AI应用,提升业务价值。
2078 4
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
546 6
|
负载均衡 Java 开发者
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
深入探索Spring Cloud与Spring Boot:构建微服务架构的实践经验
1058 5
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
452 5