TreeMind树图在线AI思维导图
当前位置:树图思维导图模板IT互联网互联网干货基于C++的高性能WEB开发框架思维导图

基于C++的高性能WEB开发框架思维导图

  收藏
  分享
免费下载
免费使用文件
U732069782 浏览量:282023-04-18 09:42:53
已被使用1次
查看详情基于C++的高性能WEB开发框架思维导图

基于C++的高性能WEB开发框架

树图思维导图提供 基于C++的高性能WEB开发框架 在线思维导图免费制作,点击“编辑”按钮,可对 基于C++的高性能WEB开发框架  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:69cb64e38995a0f153a9d5bfac7bd593

思维导图大纲

基于C++的高性能WEB开发框架思维导图模板大纲

1.为什么建议以C++作为WEB开发

当前WEB开发的情况

目前的开发是将C++包封成python3的模块,增加开发成本,C++的WEB框架已经非常成熟

目前的代码不太成熟

开发和维护成本高,既需要熟悉C++,有需要熟悉Python,还需要熟悉Python的WEB框架,python查看C++的数据都不太熟悉?

性能相比较C++、Go、Rust而言,极其低下

调试难度非常大

开发进度很容易被延迟,C++代码 -> 测试C++ -> Python。

存在工作冗余

1.过度封装,开发了大量的包封类 (根本用不上)

2.如果仅仅是为了C++对象Python化,已经存在PyBO,不值当

3.如果C++层的接口变化 -> 绑定层修改 -> 集成到Python,重新测试。

测试难度高, C -> TestCpp -> Python -> TestPython

不支持代码自动生成

C++作为开发语言的优势

目前开发团队,全部都很熟悉C++

开发效率高

开发出来的Web Server性能高

越来越多的Web Server端转向C++/Go语言,python仅仅是开发效率高而已

单元测试程序简单

等本WEB Server成熟之后,如果后续对python有需求,可以通过多种方式转python,例如基于数据交换等。

采用C++的框架包封后,后续可兼容目前python的解决方案

3.成果

框架

插件式WEB开发

代码自动化生成(可作为智能化的一部分对应成果)

基于OAS的标准WEBAPI,专业性和可读性强

数据平台的WEB化

2.实施方案

框架开发

C++WEB框架的封装

目的

cpp-httplib目前仅支持阻塞SOCKET

不支持协程

后续如果有更好的框架,不需要修改用户代码,可以无缝切换

封装的主要类

Request

Response

Router

路由插件化

基于插件式的路由模块

第三方库

json

github.com/nlohmann/json

高性能

header-only

cpp-httplib

cpp-httplib

支持多线程

高性能

支持SSL

语法简洁

错误处理

路由中间层

超时

文件服务器

认证

简单认证

数字认证

Bearer Token认证

Keep Alive

重定向

压缩

高性能

header-only

crow...

dll

boost.dll

配套开发

BO的代码自动生成swagger的yaml文档

swagger的yaml 自动生成框架代码,以及测试代码

后续优化

直接基于数据库访问

redis,内存数据库优化

可扩展插件化的自定义路由

负载均衡

框架优势

开发

难度底

开发难度底,实现数据结构的json化即可

开发效率高

调试简单

gdb调试,插件化调试

性能

地震数据道集读取,目前道集大小(22M左右),单机单节点的性能对比,C++版本是Python版本的10~12倍左右,多机多节点的性能原则上应该更优于Python。

benchmark

后续需要专门做性能测试

高扩展性,高弹性

插件式组装

具备集成到其他语言的能力

部署简单

自由组装,可以多机多节点部署

已经设置软件的库路径配置,可做到解压即安装

升级容易,可根据需要兼容多版本插件

后续优化空间巨大

从数据格式的角度优化

从数据底层开始优化

框架优化,可以采纳更高性能的WEB框架

配合负载均衡,可以线性扩张WEB服务器的性能

跨平台

Linux

Windows

框架缺点

不支持非阻塞SOCKET

不支持异步

没有整体微服务框架 (TAR支持)

后续计划

功能完善

开发相关

代码自动生成

C++代码自动生成

OAS标准WebAPI自动生成

测试自动化

性能测试?

Deamon程序

最终释放部署,必须要开发守护进程

客户端封装

微服务化

服务发现

服务注册

...

容灾

远程重启

传输安全

HTTPS

部分功能WEB化

日志分析服务化

动态成果感知

日志网络化

节点工作状态实时监控

性能优化

开发层次上的优化

引入 Timeout Cache

内存数据库 (redis)

读写分离

读和写分离,避免单进程加锁,影响性能

负载均衡

功能集成

以多语言方式集成到现有的微服务框架

瑞飞 (Java)

相关思维导图模板

高效能人士的七个习惯思维导图

树图思维导图提供 高效能人士的七个习惯 在线思维导图免费制作,点击“编辑”按钮,可对 高效能人士的七个习惯  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:2b661cf4ade73538d8004d69fc5127bb

数字工匠的AI+跨部门共育创新研究思维导图

树图思维导图提供 数字工匠的AI+跨部门共育创新研究 在线思维导图免费制作,点击“编辑”按钮,可对 数字工匠的AI+跨部门共育创新研究  进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:15a74efb86bd5d61a9520c2560f7e639