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

文章目录

  • 需求
  • 设计

在这里插入图片描述

需求

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


设计

在这里插入图片描述

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

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

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

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

相关文章

网课搜题小程序源码/小猿题库多接口微信小程序源码+自带流量主

网课搜题小程序源码,多接口小猿题库等综合网课搜题微信小程序源码带流量主,网课搜题小程序,可以开通流量主赚钱。 搭建教程 1、微信公众平台注册自己的小程序 2、下载微信开发者工具和小程序的源码 3、上传代码到自己的小程序 下载地址&…

kubesphere部署尚医通

项目架构 yygh-parent |---common //通用模块 |---hospital-manage //医院后台 [9999] |---model //数据模型 |---server-gateway //网关 [80] |---service …

Reading:Deep dive into the OnPush change detection strategy in Angular

原文连接:IndepthApp 今天深入阅读并总结Angualr中onPush更新策略。 1. 两种策略 & whats Lview? Angular 实现了两种策略来控制各个组件级别的更改检测行为。这些策略定义为Default和OnPush: 被定义为枚举: export enum…

Microsoft SQL Server 缓冲区错误漏洞(CVE-2018-8273)解决方法

前言: 在一次漏洞扫描中,扫描出紧急漏洞Microsoft SQL Server 缓冲区错误漏洞(CVE-2018-8273) 根据修复建议找补丁。 一、漏洞详情 二、寻找补丁 根据漏洞修复建议去下载补丁 目前厂商已发布升级补丁以修复漏洞,补丁获取链接:h…

CSS中实现元素居中的几种方法总结

一、使用 text-align: center 居中 使用 text-align: center; 可以在CSS中实现内联元素的水平居中。这个技术利用了CSS的 text-align 属性&#xff0c;通过对元素的文本对齐方式进行调整来实现居中效果。注&#xff1a;只展示主要代码。 <div class"container"&…

Unity-UV展开工具

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;public class unfold : EditorWindow {[MenuItem("Gq_Tools/展开")]public static void ShowWin(){EditorWindow.CreateInstance<unfold>().Show();}priva…

邮件钓鱼分析

三大协议 SPF Sender Policy Framework 的缩写&#xff0c;一种以IP地址认证电子邮件发件人身份的技术。 注&#xff1a;收信人怀疑币是假的&#xff0c;查看这个送信包裹里面记录的发出地是不是央行&#xff0c;如果是黑市有可能是黑钱 DKIM 加密签名和域名关联。 注&am…

idea插件(二)-- String Manipulation(字符串处理工具)

目录 1. 安装 String Manipulation 2. 默认快捷键 3. 操作说明 3.1 变量名的形式处理 3.2 文本形式的转化

图像二值化阈值调整——OTSU算法(大津法/最大类间方差法)

大津算法&#xff08;OTSU算法&#xff09;是一种常用的图像二值化方法&#xff0c;用于将灰度图像转化为二值图像。该算法由日本学者大津展之于1979年提出&#xff0c;因此得名。 大津算法的核心思想是通过寻找一个阈值&#xff0c;将图像的像素分为两个类别&#xff1a;前景…

uni-table动态列设置列宽不生效的解决方法

问题 uni-th 在这边是不固定的列数的&#xff0c;即dataList会变 在uni-th 设置固定列宽width200,或者在uni-td 设置不生效&#xff0c;宽度不对 解决方法 在uni-td里面多包一层view,通过设置view的宽度来撑开uni-td <uni-td v-for"(item,index) in dataList"…

springboot打包时依赖jar和项目jar分开打包;jar包瘦身

概述 最近感觉项目在部署时时jar包传输太慢了&#xff1b; 看了下jar包内容&#xff0c;除了项目代码&#xff0c;其余大部分都是依赖jar&#xff1b; 平时改动较多的只是项目代码&#xff0c;依赖jar改动比较少&#xff1b; 所以就在想能不能分开打包&#xff1b;这样只部署项…

【机器学习】一、机器学习概述与模型的评估、选择

机器学习简介 由来 阿瑟.萨缪尔Arthur Samuel,1952年研制了一个具有自学习能力的西洋跳棋程序&#xff0c;1956年应约翰.麦卡锡John McCarthy&#xff08;人工智能之父&#xff09;之邀&#xff0c;在标志着人工智能学科诞生的达特茅斯会议上介绍这项工作。他发明了“机器学习…

uniapp跳转页面多种方式详细例子

Uniapp支持许多种不同的方式来跳转页面。以下是Uniapp中使用多种方式跳转页面的详细示例&#xff1a; 使用navigateTo/navigateBack来跳转页面 navigateTo可以让用户在当前页面打开一个新页面&#xff0c;用户可以返回原来的页面。navigateBack则是返回上一个页面。示例代码如…

Springboot项目Eureka安全加密

一、通过security增加账号密码登录 1、registry服务pom增加security依赖 2、registry 配置文件 指定security账号密码 3、http://账号:密码IP:PORT/eureka/ 4、重启 二、关闭节点 三、防火墙移除eureka端口访问 参考&#xff1a;Linux(Centos7)操作记录

opencv复习(很乱)

2-高斯与中值滤波_哔哩哔哩_bilibili 1、均值滤波 2、高斯滤波 3、中值滤波 4、腐蚀操作 卷积核不都是255就腐蚀掉 5、膨胀操作 6、开运算 先腐蚀再膨胀 7、闭运算 先膨胀再腐蚀 8、礼帽 原始数据-开运算结果 9、黑帽 闭运算结果-原始数据 10、Sobel算子 左-右&#x…

day02 矩阵 2023.10.26

1.矩阵 2.矩阵乘法 3.特殊矩阵 4.逆矩阵 5.正交矩阵 6.几何意义 7.齐次坐标 8.平移矩阵 9.旋转矩阵 10.缩放矩阵 11.复合运算

如何选择安全又可靠的文件数据同步软件?

数据实时同步价值体现在它能够确保数据在多个设备或系统之间实时更新和保持一致。这种技术可以应用于许多领域&#xff0c;如电子商务、社交媒体、金融服务等。在这些领域中&#xff0c;数据实时同步可以带来很多好处&#xff0c;如提高工作效率、减少数据不一致、提高用户体验…

网络编程套接字(一)

网络编程套接字 预备知识理解源IP地址和目的IP地址理解源MAC地址和目的MAC地址理解源端口号和目的端口号PORT VS PID认识TCP协议和UDP协议网络字节序 socket编程接口socket常见APIsockaddr结构 简单的UDP网络程序服务端创建套接字服务端绑定运行服务器客户端代码编写本地测试IN…

为什么在 Vue 的 v-for 循环中使用唯一的 key 可以提高性能?

✨ 为什么在 Vue 的 v-for 循环中使用唯一的 key 可以提高性能&#xff1f; &#x1f383; 简介 在 Vue 的开发中&#xff0c;我们经常使用 v-for 指令来循环渲染列表。然而&#xff0c;在 v-for 循环中为子元素添加唯一的 key 属性能够带来性能上的改进。本文将解释为什么具…

Java 17 有必要升级到Java 21吗?

Java 17 有必要升级到Java 21吗&#xff1f; Java 21是Java平台的12个功能版本之一&#xff0c;于2023年9月19日发布。这个版本主要带来了数千项性能、稳定性和安全更新&#xff0c;并包含了15个重大的新特性和增强。其中最重要的特性之一是虚拟线程的最终化&#xff0c;这些线…