[{"data":1,"prerenderedAt":754},["ShallowReactive",2],{"insight-10":3},{"id":4,"title":5,"body":6,"category":743,"cover":479,"date":744,"description":479,"extension":745,"meta":746,"navigation":747,"path":748,"seo":749,"slug":750,"stem":751,"summary":752,"__hash__":753},"insight\u002Finsights\u002F10.md","奥升充电｜超低运维成本，构建自有高性能商业充电桩运营平台",{"type":7,"value":8,"toc":718},"minimark",[9,14,22,29,41,47,298,304,463,467,471,474,481,491,495,501,506,512,516,519,524,530,535,541,546,552,556,559,564,570,575,581,586,592,597,603,608,614,619,625,629,634,640,644,649,655,659,663,669,673,679,683,687,690,693,696,700,703,706,711,715],[10,11,13],"h2",{"id":12},"一-业务说明","一 业务说明",[15,16,18],"h3",{"id":17},"_11-业务场景与环境",[19,20,21],"strong",{},"1.1 业务场景与环境：",[23,24,25],"blockquote",{},[26,27,28],"p",{},"2核4G设备服务器（单机）；",[23,30,31],{},[26,32,33,34,37,38,40],{},"一万桩在线；",[35,36],"br",{},"\n一千桩并发充电业务；",[35,39],{},"\n奥升高性能试验集群，可实现海量TCP充电桩真实通信仿真环境。",[15,42,44],{"id":43},"_12-资源",[19,45,46],{},"1.2 资源：",[48,49,50,69],"table",{},[51,52,53],"thead",{},[54,55,56,60,63,66],"tr",{},[57,58,59],"th",{},"服务名称",[57,61,62],{},"配置",[57,64,65],{},"说明",[57,67,68],{},"成本",[70,71,72,85,98,109,119,130,140,152,162,175,186,198,209,221,232,242,253,265,276,286],"tbody",{},[54,73,74,78,81,83],{},[75,76,77],"td",{},"基础设施服务（设备通信与业务交换服务）",[75,79,80],{},"阿里云ECS",[75,82],{},[75,84],{},[54,86,87,90,93,96],{},[75,88,89],{},"2CPU 4G",[75,91,92],{},"本演示场景使用1台部署",[75,94,95],{},"541.44元\u002F年",[75,97],{},[54,99,100,103,105,107],{},[75,101,102],{},"用户运营商服务（业务交换与业务平台服务）",[75,104,80],{},[75,106],{},[75,108],{},[54,110,111,113,115,117],{},[75,112,89],{},[75,114,92],{},[75,116,95],{},[75,118],{},[54,120,121,124,126,128],{},[75,122,123],{},"小程序服务（用户服务）",[75,125,80],{},[75,127],{},[75,129],{},[54,131,132,134,136,138],{},[75,133,89],{},[75,135,92],{},[75,137,95],{},[75,139],{},[54,141,142,145,148,150],{},[75,143,144],{},"数据库 MySQL",[75,146,147],{},"阿里云 RDS Mysql8.0",[75,149],{},[75,151],{},[54,153,154,156,158,160],{},[75,155,89],{},[75,157],{},[75,159],{},[75,161],{},[54,163,164,167,170,173],{},[75,165,166],{},"最大IOPS 4800",[75,168,169],{},"与ECS同使用区，内网连接",[75,171,172],{},"227.99元\u002F年",[75,174],{},[54,176,177,180,182,184],{},[75,178,179],{},"（阿里云特惠）",[75,181],{},[75,183],{},[75,185],{},[54,187,188,191,194,196],{},[75,189,190],{},"缓存服务 Redis",[75,192,193],{},"阿里云 Redis倚天版",[75,195],{},[75,197],{},[54,199,200,203,205,207],{},[75,201,202],{},"1GB 高可用 2节点",[75,204],{},[75,206],{},[75,208],{},[54,210,211,214,216,219],{},[75,212,213],{},"QPS 100K 最大连接数 10K",[75,215,169],{},[75,217,218],{},"375.12\u002F年",[75,220],{},[54,222,223,226,228,230],{},[75,224,225],{},"消息队列服务 RabbitMQ",[75,227,80],{},[75,229],{},[75,231],{},[54,233,234,236,238,240],{},[75,235,89],{},[75,237,92],{},[75,239,95],{},[75,241],{},[54,243,244,247,249,251],{},[75,245,246],{},"业务脚手架 ruoyi-* \u002F xxl-job",[75,248,80],{},[75,250],{},[75,252],{},[54,254,255,258,260,263],{},[75,256,257],{},"2CPU 8G",[75,259,92],{},[75,261,262],{},"761.76元\u002F年",[75,264],{},[54,266,267,270,272,274],{},[75,268,269],{},"Nacos服务",[75,271,80],{},[75,273],{},[75,275],{},[54,277,278,280,282,284],{},[75,279,89],{},[75,281,92],{},[75,283,95],{},[75,285],{},[54,287,288,290,292,295],{},[75,289],{},[75,291],{},[75,293,294],{},"合计费用",[75,296,297],{},"4072.07元\u002F年",[15,299,301],{"id":300},"_13-并发业务数量",[19,302,303],{},"1.3 并发业务数量：",[48,305,306,322],{},[51,307,308],{},[54,309,310,313,316,319],{},[57,311,312],{},"业务名称",[57,314,315],{},"业务介绍",[57,317,318],{},"一般频度（10000标准）",[57,320,321],{},"消费业务复杂度",[70,323,324,338,351,363,374,388,401,413,426,437,451],{},[54,325,326,329,332,335],{},[75,327,328],{},"桩心跳上送业务",[75,330,331],{},"每台充电桩，10s发送一次心跳",[75,333,334],{},"1000\u002Fs",[75,336,337],{},"低",[54,339,340,343,346,349],{},[75,341,342],{},"桩实时数据上送业务",[75,344,345],{},"每台充电桩，闲时60s发送一次数据（通常>=5分钟），充电时15s发送一次数据",[75,347,348],{},"空闲实时数据：150\u002Fs",[75,350],{},[54,352,353,356,359,361],{},[75,354,355],{},"充电实时数据：100\u002Fs",[75,357,358],{},"空闲（低）",[75,360],{},[75,362],{},[54,364,365,368,370,372],{},[75,366,367],{},"充电（高）",[75,369],{},[75,371],{},[75,373],{},[54,375,376,379,382,385],{},[75,377,378],{},"桩订单结算上送业务",[75,380,381],{},"充电完成时上送",[75,383,384],{},"低于10\u002Fs",[75,386,387],{},"极高",[54,389,390,393,396,399],{},[75,391,392],{},"桩充电价格业务",[75,394,395],{},"桩启机和价格变动时交互",[75,397,398],{},"集中启机（大于1000\u002Fs）",[75,400],{},[54,402,403,406,409,411],{},[75,404,405],{},"本项目桩采用集中上线方式进行高压测试。",[75,407,408],{},"中",[75,410],{},[75,412],{},[54,414,415,418,421,424],{},[75,416,417],{},"业务交换-桩状态改变推送",[75,419,420],{},"充电桩状态改变时，向各运营商平台推送状态数据",[75,422,423],{},"集中启机、集中插枪",[75,425],{},[54,427,428,431,433,435],{},[75,429,430],{},"高峰期（大于1000\u002Fs）",[75,432,337],{},[75,434],{},[75,436],{},[54,438,439,442,445,448],{},[75,440,441],{},"业务交换-充电状态数据推送",[75,443,444],{},"向运营平台推送充电状态数据",[75,446,447],{},"100\u002Fs",[75,449,450],{},"高",[54,452,453,456,459,461],{},[75,454,455],{},"业务交换-订单结算推送",[75,457,458],{},"向运营平台推送订单结算数据",[75,460,384],{},[75,462,387],{},[10,464,466],{"id":465},"二-演示过程","二 演示过程",[15,468,470],{"id":469},"_21-一万台充电桩并发上电","2.1 一万台充电桩并发上电",[26,472,473],{},"持续时间 60s-100s",[26,475,476],{},[477,478],"img",{"alt":479,"src":480},"","https:\u002F\u002Fpicx.zhimg.com\u002Fv2-56a41d1d40e962f34ca6e2b13f5cdfc7_1440w.jpg",[482,483,488],"pre",{"className":484,"code":486,"language":487},[485],"language-text","一万台快充桩开始上线，上线速度约为50-150台\u002Fs；\n上线后进行充电桩价格校验，并下发充电价格数据至桩侧\n","text",[489,490,486],"code",{"__ignoreMap":479},[26,492,493],{},[477,494],{"alt":479,"src":480},[482,496,499],{"className":497,"code":498,"language":487},[485],"充电桩开机上线中期，数据量逐渐接近心跳1000\u002Fs（充电桩10s发送一次心跳）；\n充电价格下发和其他业务未堆积；\n",[489,500,498],{"__ignoreMap":479},[26,502,503],{},[477,504],{"alt":479,"src":505},"https:\u002F\u002Fpic3.zhimg.com\u002Fv2-8d7f2f80fd7df14dd2e18c5808df5780_1440w.jpg",[482,507,510],{"className":508,"code":509,"language":487},[485],"一万台设备完成开机，无新上线桩（无价格校验和下发）；\n心跳数据稳定在1000\u002Fs，桩状态实时数据稳定在150\u002Fs；\n",[489,511,509],{"__ignoreMap":479},[15,513,515],{"id":514},"_22-一万台充电桩并发插枪","2.2 一万台充电桩并发插枪",[26,517,518],{},"持续时间20s-26s",[26,520,521],{},[477,522],{"alt":479,"src":523},"https:\u002F\u002Fpica.zhimg.com\u002Fv2-d6de0be883757df845cc105cf1542112_1440w.jpg",[482,525,528],{"className":526,"code":527,"language":487},[485],"一万台充电桩同时插枪，枪状态数据会立刻发送至服务端，产生消息高峰；（状态数据从150\u002Fs迅速上升至400+\u002Fs）；\n由于需要通过互联互通（HTTP）推送至各运营平台，状态推送任务开始小规模堆积；\n",[489,529,527],{"__ignoreMap":479},[26,531,532],{},[477,533],{"alt":479,"src":534},"https:\u002F\u002Fpic4.zhimg.com\u002Fv2-995dde8145f1446dff78ba0ec86f6cb7_1440w.jpg",[482,536,539],{"className":537,"code":538,"language":487},[485],"一万台插枪进行10s左右，消息处理到达最高峰，受消息推送业务影响，心跳数据存在轻微堆积。\n",[489,540,538],{"__ignoreMap":479},[26,542,543],{},[477,544],{"alt":479,"src":545},"https:\u002F\u002Fpic2.zhimg.com\u002Fv2-843b55b4c5e18c28fb3fee6cb6a09ba7_1440w.jpg",[482,547,550],{"className":548,"code":549,"language":487},[485],"一万台插枪完成2s左右，消息迅速恢复至正常水平。（当然，现实情况下不存在所有充电枪同时插枪的可能 ）\n",[489,551,549],{"__ignoreMap":479},[15,553,555],{"id":554},"_23-一千台充电桩并发下单","2.3 一千台充电桩并发下单",[26,557,558],{},"随机抽取一千台桩进行并发充电（启动速度约为10+单\u002Fs，约60s完成启动）",[26,560,561],{},[477,562],{"alt":479,"src":563},"https:\u002F\u002Fpica.zhimg.com\u002Fv2-b5586b27461379880a38c302f9197450_1440w.jpg",[482,565,568],{"className":566,"code":567,"language":487},[485],"一千台充电桩逐步启动，心跳数据短暂堆积（由于心跳数据优先级低，因此主要是闲时处理逻辑）\n",[489,569,567],{"__ignoreMap":479},[26,571,572],{},[477,573],{"alt":479,"src":574},"https:\u002F\u002Fpicx.zhimg.com\u002Fv2-39782e39ee903f7a386b6128e83b5f4f_1440w.jpg",[482,576,579],{"className":577,"code":578,"language":487},[485],"充电桩集群启动完毕\n",[489,580,578],{"__ignoreMap":479},[26,582,583],{},[477,584],{"alt":479,"src":585},"https:\u002F\u002Fpic2.zhimg.com\u002Fv2-07e3523ffb0ad7191abe288d88e3bbf9_1440w.jpg",[482,587,590],{"className":588,"code":589,"language":487},[485],"启动到352个订单时，消息处理逐渐平滑\n",[489,591,589],{"__ignoreMap":479},[26,593,594],{},[477,595],{"alt":479,"src":596},"https:\u002F\u002Fpicx.zhimg.com\u002Fv2-aba5f3e896b4c536f30c316b12dab737_1440w.jpg",[482,598,601],{"className":599,"code":600,"language":487},[485],"启动到750个订单时，充电状态推送和桩实时状态数量逐渐增长，用户运营端消费稳定\n",[489,602,600],{"__ignoreMap":479},[26,604,605],{},[477,606],{"alt":479,"src":607},"https:\u002F\u002Fpic3.zhimg.com\u002Fv2-c5a49eadd73a9774ca328f638cac18ec_1440w.jpg",[482,609,612],{"className":610,"code":611,"language":487},[485],"启动到979个订单\n",[489,613,611],{"__ignoreMap":479},[26,615,616],{},[477,617],{"alt":479,"src":618},"https:\u002F\u002Fpic3.zhimg.com\u002Fv2-638518fb9c0dfc9b9e147589a8bdd222_1440w.jpg",[482,620,623],{"className":621,"code":622,"language":487},[485],"一千订单完成启动，整个业务环境运行稳定，实时数据（realtime）吞吐量200+\u002Fs，符合业务规划预期；\n用户业务平台侧消费正常，正常向用户展现数据情况。\n",[489,624,622],{"__ignoreMap":479},[15,626,628],{"id":627},"_24-充电过程保持含运营商推送","2.4 充电过程保持（含运营商推送）",[26,630,631],{},[477,632],{"alt":479,"src":633},"https:\u002F\u002Fpic3.zhimg.com\u002Fv2-367e7e250949061e593d6a7c93241546_1440w.jpg",[482,635,638],{"className":636,"code":637,"language":487},[485],"订单持续7分钟，业务队列处理稳定。\n",[489,639,637],{"__ignoreMap":479},[15,641,643],{"id":642},"_25-订单陆续结算","2.5 订单陆续结算",[26,645,646],{},[477,647],{"alt":479,"src":648},"https:\u002F\u002Fpic4.zhimg.com\u002Fv2-8641b8627e261769ac0051c99f70ff75_1440w.jpg",[482,650,653],{"className":651,"code":652,"language":487},[485],"订单结算因为充电进度不完全一致，虽每单均预设10元，单并不会同时结束，因此没有产生数据高峰。\n",[489,654,652],{"__ignoreMap":479},[10,656,658],{"id":657},"三-消息队列介绍","三 消息队列介绍",[15,660,662],{"id":661},"_31-基础设施服务层","3.1 基础设施服务层",[482,664,667],{"className":665,"code":666,"language":487},[485],"heartBeat: 桩心跳消费（队列）\nrealtimeData: 桩实时数据消费（队列）\npriceSender: 桩价格下发（队列）\nstationPriceSender: 充电基准价格推送至用户运营商（队列）\nconnectorStatusNotify: 充电桩状态推送至用户运营商（队列）\nchargingStatusNotify:  充电订单状态数据推送至用户运营商（队列）\nchargeOrderData: 充电结算订单推送至用户运营商（队列）\n",[489,668,666],{"__ignoreMap":479},[15,670,672],{"id":671},"_32-用户运营服务商业务层","3.2 用户运营服务商业务层",[482,674,677],{"className":675,"code":676,"language":487},[485],"upStationStatus: 消费充电桩状态推送\nupEquipChargeStatus: 消费充电订单状态数据\nupChargeOrderInfo: 消费充电结算订单\n",[489,678,676],{"__ignoreMap":479},[10,680,682],{"id":681},"四-高性能系统架构说明","四 高性能系统架构说明",[15,684,686],{"id":685},"_41-mysql还是influxdb","4.1 MySQL还是InfluxDB？",[26,688,689],{},"本文主要以最优系统成本为目标，在满足可用的情况下，MySQL表现足以支撑规划业务量，InfluxDB在运营统计分析和数据吞吐、压缩上有明显优势，但其仅单服务版免费，高可用（多服务）版费用高出MySQL较多，因此作者会在其他的文章里再讨论InfluxDB的方案。",[26,691,692],{},"其实重运营类的公司，只要合理分表，MySQL已经可以完全满足业务需要，不要被忽悠了哦，浪费那么多成本。",[26,694,695],{},"如果以数据为核心的公司，作者还是推荐InfluxDB方案的，不过MySQL也的确够用！",[15,697,699],{"id":698},"_42-框架设计","4.2 框架设计",[26,701,702],{},"奥升充电平台采用微服务体系，在合理规划下具备无限拓展的可能，2核4G“基础设施服务器”即可带动一万台充电桩的日常业务量，高可用版本也仅需要增加1-2个“基础设施服务器”节点。",[26,704,705],{},"即 50万根充电桩约需要60-80台2核4G“基础设施服务器”即可保障业务正常工作，其余服务根据吞吐量自行换算。",[26,707,708],{},[477,709],{"alt":479,"src":710},"https:\u002F\u002Fpic3.zhimg.com\u002Fv2-7f664714f779be401f6f7c8f560bce70_1440w.jpg",[10,712,714],{"id":713},"五-结束语","五 结束语",[26,716,717],{},"奥升新能源技术服务平台，致力于高性能高费效比技术框架研发与实施，致力于为客户提供性价比最优的技术解决方案和运维服务。",{"title":479,"searchDepth":719,"depth":719,"links":720},2,[721,727,734,738,742],{"id":12,"depth":719,"text":13,"children":722},[723,725,726],{"id":17,"depth":724,"text":21},3,{"id":43,"depth":724,"text":46},{"id":300,"depth":724,"text":303},{"id":465,"depth":719,"text":466,"children":728},[729,730,731,732,733],{"id":469,"depth":724,"text":470},{"id":514,"depth":724,"text":515},{"id":554,"depth":724,"text":555},{"id":627,"depth":724,"text":628},{"id":642,"depth":724,"text":643},{"id":657,"depth":719,"text":658,"children":735},[736,737],{"id":661,"depth":724,"text":662},{"id":671,"depth":724,"text":672},{"id":681,"depth":719,"text":682,"children":739},[740,741],{"id":685,"depth":724,"text":686},{"id":698,"depth":724,"text":699},{"id":713,"depth":719,"text":714},"技术解析","2024-08-08","md",{},true,"\u002Finsights\u002F10",{"title":5,"description":479},"10","insights\u002F10","奥升充电平台精心打造的 VIP会员，不仅是一套优惠工具，更是一个集智能运营、用户激励与数据驱动于一体的综合性解决方案，旨在帮助运营商构筑坚实的用户护城河，实现可持续增长。","RflHupSStDFPGFFY1RsccvvsuI7UC5hmPslW4CiJwMk",1789965847348]