首页 > 其他分享 >高并发----解决方案

高并发----解决方案

时间:2023-05-05 21:32:38浏览次数:32  
标签:缓存 网站 解决方案 数据库 ---- 并发 模块 使用 进行


 

基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器

 

 

1HTML静态化

通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的

2、图片服务器分离

图片是最消耗资源的,于是我们有必要将图片与页面进行分离,这是基本上大型网站都会采用的策略,他们都有独立的、甚至很多台的图片服务器

 

3、数据库集群、库表散列

大型网站都有复杂的应用,这些应用必须使用数据库,那么在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群或者库表散列

我们在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,比如用户表,按照用户ID进行表散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。

sohu的论坛就是采用了这样的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后对帖子、用户按照板块和ID进行散列数据库和表,最终可以在配置文件中进行简单的配置便能让系统随时增加一台低成本的数据库进来补充系统性能

 

4、缓存

缓存一词搞技术的都接触过,很多地方用到缓存。网站架构和网站开发中的缓存也是非常重要。这里先讲述最基本的两种缓存。高级和分布式的缓存在后面讲述。

  架构方面的缓存,对Apache比较熟悉的人都能知道Apache提供了自己的缓存模块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。

  网站程序开发方面的缓存,Linux上提供的Memory Cache是常用的缓存接口,可以在web开发中使用,比如用Java开发的时候就可以调用MemoryCache对一些数据进行缓存和通讯共享,一些大型社区使用了这样的架构。另外,在使用web语言开发的时候,各种语言基本都有自己的缓存模块和方法,PHP有Pear的Cache模块,Java就更多了,.net不是很熟悉,相信也肯定有

 

5、镜像

  镜像是大型网站常采用的提高性能和数据安全性的方式,镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异

 

6、负载均衡

  负载均衡将是大型网站解决高负荷访问和大量并发请求采用的高端解决办法。

(1)、硬件四层交换

  第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理。

(2)、软件四层交换

 

标签:缓存,网站,解决方案,数据库,----,并发,模块,使用,进行
From: https://blog.51cto.com/iwtxokhtd/6247865

相关文章

  • 缓存----Ibatis /Hibernate
    iBatis缓存的使用方法及解释:以iBatis2.3为例,做以下配置即可实现对某些查询进行缓存1、<settingslazyLoadingEnabled="false" cacheModelsEnabled="true" enhancementEnabled="true"/>   注释:       lazyLoadingEnabled延迟加载数据;cacheModelsEna......
  • DOM操作----总结
     查找方式一:varobj=document.getElementById(id);varobj=document.getElementById('d1');obj.innerHTML='hellokitty';---innerHTML属性:可以读或者写一个节点的html内容。varobj2=document.getElementById('username');obj2.value='abc�......
  • 连接池/线程池
    线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有......
  • count(列名)、count(1)和 count(*)有什么区别?
    在MySQL中,这几个都是统计操作,很多人在使用的时候,都使用的是count(1),这有没有问题?使用正确?达到了统计效果?我们从效果和效率两方面来分析下执行效果count(*)包括了所有的列,在统计时不会忽略列值为null的数据count(1)用1表示代码行,在统计时不会忽略列值为null的数据co......
  • delphi 互斥量,只允许运行一个实例
    效果图: 代码超简单的:procedureTFrmLogin.FormCreate(Sender:TObject);varFmutex:THandle;begin//创建一个命名的互斥量,确保同一时间只有一个实例在运行//第三个参数是自定义的,随便取的,但一定要是唯一的标识FMutex:=CreateMutex(nil,True,'MyDelphiAppMutex')......
  • 4-2 UserDetails、UserDetailsService和jdbcAuthentication
          ......
  • 求最大值(函数模板)
    一、问题描述:两个类如下设计:类Time有三个数据成员,hh,mm,ss,分别代表时,分和秒,并有若干构造函数和一个重载-(减号)的成员函数。类Date有三个数据成员,year,month,day分别代表年月日,并有若干构造函数和一个重载>(<)(大于号或者小于号)的成员函数。要求设计一个函数模板template<classT>Tma......
  • cryptohack wp day(3)
    第二节模运算----第一题(GCD)在做这道题前,了解下欧几里得算法:欧几里得算法,也叫辗转相除法,用于求解两个非负整数a和b的最大公约数(GreatestCommonDivisor,GCD),即能够同时整除它们的最大正整数。算法的基本思想是,通过不断求解a和b的余数的最大公约数,最终可以得到a和b的最大公约......
  • 分布式系统复习
    这啥玩意都没讲的课要考了。。。1.云计算与大数据1.1云计算的3个服务模型IaaS,基础设施即服务PaaS,平台即服务SaaS,软件即服务云计算的3中服务模型之间的关系:IaaS提供虚拟化的硬件资源,支撑PaaS对平台的虚拟化,而PaaS又支撑了SaaS对软件的虚拟化。1.2DIKW体系Data(数据)、Info......
  • 分水岭算法的理解和应用
    原文:https://blog.csdn.net/Evonnehyf/article/details/104066799分水岭算法主要思想图像的灰度空间很像地球表面的整个地理结构,每个像素的灰度值代表高度。分水岭就是灰度值较大的像素连成的线。二值化阈值可以理解为水平面,比灰度二值化阈值小的像素区域会被淹没。随着水位线的......