大长案例 - 经典长连接可水平扩容高可用架构

news2024/11/30 5:01:17

文章目录

  • 需求
  • 设计

在这里插入图片描述

需求

支撑百万充电桩充电业务的长连接可水平扩容高可用架构需求如下:

  1. 可扩展性:系统应该具备高度可扩展性,能够轻松应对新增充电桩的需求。任何时候都应该容易添加更多的充电桩,而不会影响整体性能。

  2. 负载均衡:需要一个负载均衡层,确保各个充电桩之间的负载分布均匀。这可以通过负载均衡器或类似技术来实现。

  3. 高可用性:系统必须具备高可用性,以确保用户随时都能够使用充电服务。这包括冗余系统、故障转移、容错机制等。

  4. 数据存储:需要一个可靠的数据存储系统,用于记录充电桩的状态、充电记录和其他关键信息。这可以是分布式数据库或对象存储系统。

  5. 实时监控:系统需要实时监控充电桩的状态,以便快速检测并响应问题。监控可以包括硬件状态、连接状态和充电流程状态。

  6. 安全性:数据安全至关重要,特别是与用户付款信息和充电记录相关的数据。必须采取适当的安全措施,包括数据加密、访问控制和认证。

  7. 容错和恢复:系统应该能够自动检测并处理故障,包括硬件故障、网络故障和应用程序故障。应该有自动恢复机制,确保系统尽快恢复正常运行。

  8. 数据备份:定期备份系统数据,以防止数据丢失或损坏。备份数据应该存储在不同的地理位置,以应对灾难性故障。

  9. 性能优化:系统应该经过性能优化,以提供低延迟和高吞吐量。这可以包括缓存、负载测试和代码优化。

  10. 监控和报警:建立全面的监控系统,以便及时发现问题并采取措施。报警系统应该通知相关人员或自动触发故障处理流程。

  11. 自动化运维:自动化运维流程,包括部署、配置管理、日志管理和升级。这可以减少人工操作和减少人为错误。

  12. 合规性:确保系统符合相关法规和标准,特别是涉及用户隐私和支付数据的法规。

  13. 容量规划:预测未来充电桩的增长趋势,进行容量规划,以确保系统能够满足未来的需求。

  14. 网络安全:采取适当的网络安全措施,以防止网络攻击和数据泄漏。

  15. 灾难恢复:建立灾难恢复计划,以应对自然灾害、供电故障和其他紧急情况。

这些需求构成了支撑百万充电桩充电业务的长连接可水平扩容高可用架构的基本要求。根据具体情况,可能需要选择合适的技术栈和架构模式来实现这些需求。


设计

在这里插入图片描述

  • 七层应用网关的作用是为了获取后面真正提供服务的接入网关的入口地址
  • 设备获取到真实地址后接入到接入网关
  • 接入网关可以看看做是一个spring boot的应用,需要注册到注册中心
  • 接入网关负责内外隔离和连接路由
  • 应用服务提供真实的业务请求 (也需要注册到注册中心)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159626.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux C语言进阶-D7~D8指针与数组

一维数组 一维数组的数组名:就是一维数组的指针(起始地址) 如果int *px x;则: x[i]、*(pxi)、*(xi)、px[i]具有完全相同的功能:访问数组第i1个数组元素 注意:1、指针变量和数组在访问数组元素时&#x…

筛网孔径测量方法,您了解多少?

筛网是一种表面有均匀而稳定的透气孔、具有筛选和过滤作用的工业用品,常见的有金属丝编织网和冲孔板筛网,广泛用于新能源汽车、太阳能光伏、冶金、煤炭、橡胶、石油、化工、制药、建材、粮油等行业。 筛网有着严格的网孔尺寸规范,需要符合标…

141. 环形链表、Leetcode的Python实现

博客主页:🏆看看是李XX还是李歘歘 🏆 🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺 💗点关注不迷路,总有一些📖知识点📖是你想要的💗 ⛽️今…

安装opensips

1. 安装opensips ubuntu下安装: 1)执行以下的脚本 openSIPS | APT Repository 2)apt-get install opensips 安装完毕后,再选择需要的module继续安装,不需要编译 如果只是用作load balancer,那么只需要…

剑指JUC原理-8.Java内存模型

👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…

Windows安装tensorflow-gpu=1.14.0CUDA=10.0cuDNN=7.4 (多版本CUDA共存)

文章目录 0. 前置说明1. 查看版本对应关系2. 安装 cuda3. 安装 cudnn4. 添加环境变量5. 安装 tensorflow 0. 前置说明 本机(Windows 11)已安装CUDA 11.7 使用命令查看显卡驱动: nvidia-smi这里显示的CUDA Version: 11.7说明支持安装11.7版本…

小说网站源码带管理后台手机端和采集

搭建教程,安装宝塔 php7.2,绑定域名,上传源码到根目录解压 源码获取请自行百度:一生相随博客 一生相随博客致力于分享全网优质资源,包括网站源码、游戏源码、主题模板、插件、电脑软件、手机软件、技术教程等等&#…

2.Docker的安装

1.认识Docker的基本架构 下面这张图是docker官网上的,介绍了整个Docker的基础架构,我们根据这张图来学习一下docker的涉及到的一些相关概念。 1.1 Docker的架构组成 Docker架构是由Client(客户端)、Docker Host(服务端)、Registry(远程仓库)组成。 …

每天一道算法题:11. 盛最多水的容器

难度 中等 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 **说明:**你不…

哈夫曼树c语言版

一、哈夫曼树概念 哈夫曼树又称最优树给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大…

传输层协议——TCP协议 (详解!!!)

目录 TCP的报文格式 1. 源端口号,目的端口号 和 udp 相同(前面文章介绍了udp) 2. 4位首部长度 —— TCP的报头长度 3. 选项 —— option (可选的:可以有,可以没有) 4.保留(6…

linux下mysql-8.2.0集群部署(python版本要在2.7以上)

目录 一、三台主机准备工作 1、mysql官方下载地址:https://dev.mysql.com/downloads/ 2、修改/etc/hosts 3、关闭防火墙 二、三台主机安装mysql-8.2.0 1、解压 2、下载相应配置 3、初始化mysql,启动myslq,设置开机自启 4、查看初始密…

java基础--多线程学习

写在前面: 多线程在面试中问的很多,之前没有过系统的学习,现在来进行一个系统的总结学习 文章目录 基础java多线程实现无参无返回值线程快速创建start和run方法的探讨run方法线程状态 有返回值线程线程池执行小结关于抛出异常的扩展 线程方…

人脸检索 M:N(视频,摄像头),调用百度API

目录 创建百度智能云账号 代码部分: 创建百度智能云账号 网址: 百度智能云-云智一体深入产业 点击导航栏中的产品,再选择人脸与人体 再选择人脸搜索 进入后,可以先去领取免费资源,如果不领取,后面是无法…

macOS Sourcetree 选择文件比较工具 Kaleidoscope

Sourcetree 选择文件比较工具 Kaleidoscope Kaleidoscope 使用的命令行工具是 ksdiff。Sourcetree 集成 Kaleidoscope之前,必须先安装 ksdiff。 Kaleidoscope 使用的命令行工具是 ksdiff。Sourcetree 集成 Kaleidoscope之前,必须先安装 ksdiff。 打开Ka…

5.3 用户定义的完整性

思维导图: 5.3 用户定义的完整性 用户定义的完整性是确保数据库中的数据满足特定应用的语义要求。这是通过关系数据库管理系统(RDBMS)中的内置机制来完成的,不需要依赖应用程序来执行。 5.3.1 属性上的约束条件 1. 定义属性上的约束条件 当在CREATE T…

架构风格-架构师(六十六)

管道-过滤器和仓库 数据处理方式: 管道过滤器是 数据驱动机制,处理流程事前确定,交互差。 仓库是通过仓库中间件交互,交互性强,灵活组装 系统可扩展性: 管道过滤器是数和处理在一起,需要新增…

金Gien乐道 | 10月热点回顾

收获之秋,中电金信Q4开篇捷报不断 Q4开篇,中电金信迎来多个捷报。公司与青岛财通集团联合打造的核心业务系统(一体化业务平台)一期项目顺利投产上线并平稳运行;中标华南某全国性股份制商业银行新一代云原生分布式核心系…

系列四、全局配置文件mybatis-config.xml

一、全局配置文件中的属性 mybatis全局配置中的文件非常多,主要有如下几个: properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器&am…

prompt工程

微信公众号转载,关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、prompt基础 提示包括传递给语言模型的指令和语境,以实现预期的任务。提示工程是开发和优化提示的实践,以便在各种应用…