首页 > 其他分享 >高并发web开发框架解决方案

高并发web开发框架解决方案

时间:2023-08-25 13:05:17浏览次数:72  
标签:web 负载 解决方案 数据库 并发 集群 均衡 服务器


对于大型网站来说,所采用的技术涉及面极其广泛,从硬件到软件、编程语言、数据库、Web服务器、防火墙等各个领域都有了很高的要求,
提高系统高并发性能方案措施:
减少数据库访问次数,文件和数据库分离,大数据分布式存储,服务器的集群负载均衡,页面缓存的使用,nosql内存数据库代替关系型数据库
1.文件服务器集群,
图片、视频、其他下载文件,它们的下载通常是占用网络带宽的罪恶魁首,这些资源一定要独立放在带宽好的文件服务器上,能提供http协议访问地址使用,不至于在下载文件时影响web服务器的cpu运算。
2.Web服务器集群,
不管是windows系统,还是linux系统,单台服务器的性能和资源都是有限的,支持的连接并发数都有上限,
因此必须采用多服务器集群的方法才能提高连接并发数。连接并发数的容量计算也很容易:
连接并发数= 服务器1并发数+服务器2并发数+……+ 服务器n并发数
1:运用LVS+Keepalived进行负载均衡部署(同时防止单点故障,参考:Linux 下 LVS+Keepalived 负载均衡安装)
2:负载均衡后用Memcached 进行集群缓存,并实现Session共享,防止因为负载均衡后Session丢失。
3.数据库服务器集群
通常大型的关系型数据库 oracle ,mysql , sqlserver 都已经提供了集群的功能,但是,由于磁盘读写速度的限制,难以胜任高并发实时性的要求,我们建议使用带有集群功能的内存数据库。
1:优化索引
2:读写主从分离:运用MySQL的MHA来保证数据库系统的高可用.在宕机的时间内(通常10—30秒内),完成故障切换,实现主从分离,再利 用Altas进行读写分离提高数据库性能(参考:Mysql MHA 主从配置+Keepalived测试使用说明 、MySQL+Altas 读写分离测试(Altas 不能用存储过程,Update和Delete必须要有参数))
3:分库:将数据库按照不同的业务进行分库
4:分表:将同一个表,按照不同的业务逻辑进行区分,如订单表可分为1星期内,一个月内,三个月内,一年内,四个不同 的表,正常业务 逻辑最多的都是查询今天或这几天的数据,面其他数据一般都不会查到
4.Gemfire内存数据库
5.负载均衡器
负载均衡服务器分为硬件均衡服务器 和 软件均衡服务器,
目的就是统一提供一个访问入口来访问服务器集群,并且能够动态监控每个服务器的负载,把新的用户请求转给负载小的服务器。
硬件服务器就是直接购买独立的服务器作为负载均衡服务器,例如阿里云已经提供。
软件服务器使用具有代理功能的软件作为转发服务器,比如Nginx,HAProxy,LVS 等等。
6.缓存技术
web服务器与数据库服务器是分布在不同的服务器上的,也就是web程序从数据库获取数据时,通过网络tcp/ip协议进行网络数据传输,当查询的数据量过大时,网络带宽速率很可能变为瓶颈,高并发在线时,将会很大影响整体系统的效率。我们使用缓存技术解决这个问题, 我们根据具体的业务,把数据分为两类:
1、 一类是不经常变的数据,比如表结构,公共设置数据,省市县名录等等,这些数据我们将会作为永久缓存数据,我们将会一次性读取数据库全部记录缓存到web服务器本地长久保存,并且定时检测数据库是否有更新的数据,如果有更新,则再更新本地缓存数据;
2、 另一类是经常变的数据,对于这种数据,需要每次读取时都从数据库读取,往往这类数据也包含海量的数据,读取数据库时将不能一次性读取,只能分页读取,缓存数据保存的时间也不宜太长。

redis:
支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询.


标签:web,负载,解决方案,数据库,并发,集群,均衡,服务器
From: https://blog.51cto.com/u_9406185/7229153

相关文章

  • git总是提示要填账号密码| fatal: Authentication failed for 'http://gitlab.xxx.git
    骑士李四记录:gitclone/gitpull等git操作总是提示要填账号密码问题?执行这段命令:gitconfig--globalcredential.helperstore这个命令则是在你的本地生成一个账号密码的本子记录信息,这样就不用每次都输入了,第一次还是需要输入。......
  • Windows PC、 Linux、 Android、 iOS多平台支持H5无插件播放RTSP摄像机解决方案
    需求分析视频流媒体监控行业已经进入互联网时代,浏览器承载了绝大多数的互联网访问流量,目前在网页上播RTSP流的普遍做法是将RTSP转成互联网直播协议RTMP或者HLS;而RTMP协议播放需要Flash插件,且其衍生的FLV或者HLS协议延迟很大(2s以上),根本达不到视频流媒体传输低延迟的要求。早年风靡......
  • git中Updates were rejected because the tip of your current branch is behind解决
    出现错误原因是操作过程中出现失误,git上进行的修改没有同步到本地的git仓库解决方案:gitpush-uoriginmaster-f在远程仓库中进行的相关修改会被删除,是远程仓库回到你本地仓库为修改之前的版本。然后上传你本地仓库的修改。注意:如果是多人开发则其他人的开发结果将会被恢复到......
  • Android并发编程高级面试题汇总(含详细解析 九)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 国标视频平台EasyGBS视频能力平台Linux版内核启动报错端口占用的问题解决方案
    EasyGBS国标视频云服务是基于国标GB/T28181协议的视频能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等......
  • Prometheus+AlertManager+webhookdingtalk实现钉钉报警
    前提在我上一篇博文中(Prometheus_彭阳的技术博客_51CTO博客)介绍了,prometheus监控原理,监控服务搭建,prometheus内部函数...,如果还未搭建起prometheus服务和node_exporter实现机器初步监控的可以对照文章搭建起来,在这一小节将着重介绍prometheusalertmanager通过webhookdingta......
  • 基于java极速WEB+ORM 框架:jfinal2.0开发的通用后台管理系统及源码
    final2-common-admin1、基于java极速web开发框架:jfinal2.0开发的通用后台管理系统,包括完整的登录、注册、菜谱管理、厨师管理、餐厅管理等功能2、开发时是基于jdk1.8、tomcat7.0,utf8编码3、运行时请修改配置文件:a_little_config.txt及相应的运行环境:JavaBuildPath、TargetedR......
  • 分布式事务解决方案——Seata
    分布式事务解决方案——SeataSeata是什么?Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案。Seata三大角色在Seata架构中,共涉及到三个角色:TC(Transact......
  • 11Web服务器性能评估和系统监视
    web服务器的性能评估web服务器的测试中,反映其性能的指标主要有:最大并发连接数,响应延迟和吞吐量常见的web服务器性能评测方法有基准性能测试、压力测试、可靠性测试系统监视系统本身提供的命令:last netstatj系统记录文件:运行状态集成名称:perfmon可视化监控工具......
  • 并发和并行,线程和进程
     ......