springcloud-高可用部署
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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
浅析HDFS架构和设计
作者 | 大尊 hdfs是hadoop的分布式文件系统,即Hadoop Distributed Filesystem。下面主要讲下HDFS设计中的比较重要的点,使读者能通过简短的文章一窥HDFS的全貌,适合对HDFS有一点了解,但是对HDFS又感到困惑的初学者。本文主要参考的是hadoop 3.0的官方文档。 链接:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html 当数据集的大小超过了一台物理机所能存储的能力时,就需要将它进行分区并存储到若干不同的独立的计算机上,其中管理跨多台计算机存储的文件系统称为分布式文件系统。 目录 使用HDFS的场景 HDFS的工作模式 文件系统命名空间(namespace) 数据复制 文件系统元数据的持久化 通讯协议 健壮性 数据组织 可访问性 存储空间回收 1、使用HDFS的场景 HDFS适合于以流式数据访问模式来存储超大的文件。即一次写入,多次读取,在数据集上长时间进行各种分析,每次分析都涉及该数据集数据的大部分甚至全部,对于超大文件...
- 下一篇
Akka in Schedulerx2.0
1. 前言 Schedulerx2.0是阿里中间件自研的基于akka架构的新一代分布式任务调度平台,提供定时、任务编排、分布式跑批等功能,具有高可靠、海量任务、秒级调度等能力。 本篇文章以Schedulerx2.0为例子,介绍akka的应用场景,希望能给同样从事分布式系统开发的同学一些启发。这里不详细介绍akka,初学者可以直接阅读官方文档(https://doc.akka.io/docs/akka/current/index.html?language=java)。 2. Reactive 说到近几年火热的反应式编程,谁都能说几句“异步、并发、非阻塞、高性能”等等,说到有代表性的项目,大家都知道RxJava、Akka、Reactor。 Why Reactive?——因为Schedulerx2.0作为任务调度平台,支持海量任务调度,提供任务
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器