`
lxy2330
  • 浏览: 468632 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

新型的大型bbs架构

 
阅读更多
squid+nginx
这个架构基于squid、nginx和lvs等技术,从架构上对bbs进行全面优化和保护,有如下特点:

1、高性能:所有的点击基本上全部由前端缓存负责,提供最快速的处理。

2、高保障度:不需考虑应用程序稳定与否、程序语言是何种、数据库是何种,都能从架构上保证稳定。

3、高可用性:对应用程序的修改达到最简化:在程序的某些地方加入清缓存的语句即可,当然还需要做页面静态化的工作和统计工作。

首先看图,这个图比较大:





这个架构的特点和一些流程的说明:

1、主域名和图片域名分离

域名分离可以使流量分离,缓存策略分离等等,好处诸多。bbs初期一定要做好规划,将图片用另外的域名独立服务,即使没有足够机器,域名也要先分开。另外,图片服务器可以使用有别于主域名的另一个域名,一个好处是可以减少读取cookie对图片服务器的压力,另一个是提高安全性,避免cookie泄露。

2、使用LVS作为前端、二级代理和数据库的访问入口

使用LVS作为入口,比其他任何一种方式都来得更优质。首先LVS的负载能力很强,因为它工作在网络协议的第4层,使用虚拟ip技术,所以它本身并不担负任何流量的处理,仅仅是一个封包转发的功能;第二,LVS的配置相对简单而且稳定,一般去调整的几率比较低,也减少了因人为等因素而出现故障;第三,LVS可以处理任何端口的负载均衡,所以它基本可以做所有服务的负载均衡和容错。在这个架构中,除了处理http的80端口之外,LVS也处理了数据库mysql的3306端口,在数据库这个应用中是采用的双机热备策略。

3、使用nginx+squid作为最前端的缓存组合

在这个架构中,是最能体现app_nginx_squid_nginx架构的优势的。在这个架构中的bbs运行在缓存上,用户每发布一张帖子,都需要使用purge指令清除该帖子的缓存,如果是squid在最前端,那么每次发布一张帖子,都需要在所有的squid中调用purge指令,这样在机器比较多的时候,purge将成为一个巨大的压力。

所以在这里将nginx放在最前端并使用手工url_hash的方式分流,将经常需要purge的帖子页面和列表页面按一个url对应一台squid的策略,分布到各台squid上,并提供了一台或一组backup的squid,个别squid出现异常时将自动使用backup的机器继续提供一段时间的服务直到其正常。在这样的架构下,purge就不再是关键问题,因为一个url只会对应到一台机器上,所以purge的时候,后端app_server找到对应的机器就可以了。

可以看到在前端中还有一台nginx(purge)的机器,这台机器是专用于purge的,只要发送purge指令和需要清除的url到这台机器,就可以找到相应的服务器并清除缓存了。另外,purge时还需要清理backup机器上的缓存,所以无论前端机器增加到多少,purge指令只会在2台机器上执行,如果backup机器使用到2-3台,purge指令就会在3-4台机器上执行,仍然在可接受范围之内。

nginx作为前端,另有的好处:

1/使用nginx的日志统计点击量非常方便
2/nginx也可作为缓存,一般可以直接负责favicon.ico和logo等固定的小图片

4、基于nginx的中层代理

nginx中层代理的优势,在:

nginx和squid配合搭建的web服务器前端系统

这篇文章中有解释。

在这个架构中,假如后端的app_server上把帖子页和列表页直接生成了静态页面,那么使用中层代理再做一次url_hash,将可以解决后端app_server的硬盘容量的压力,但是如果使用到url_hash的话,那做容错就相对麻烦了。所以建议不要采用生成静态页的方式,后端的压力一般不会非常的大,所以没有必要生成静态页。假如前端squid的命中率实在太低下,造成大量穿透,可以考虑使用二级代理暂顶。

5、基于LVS的数据库双机热备

在这个架构中,因为大量的并发和访问量都由前端的缓存处理掉了,所以后端的mysql主要压力来自于数据的写入,所以压力并不是非常大,并且负载比较稳定,一般不会随着访问量上升而提高过快,估计目前一台64位的机器,加满内存并使用高速的硬盘,前端负载数亿访问量时数据库都不会出现性能问题。在数据库这方面应主要考虑故障恢复,因为数据库崩溃的话,按照一般使用备份恢复的做法,耗时很长而且难免丢失数据,是很棘手的问题。使用双机热备的方案,出现故障时首先可由一台时刻同步着的备用数据库即刻充当主数据库,然后卸下的数据库可以有充分的时间对其进行维修,所以是个很安全有效的办法。

当然,数据库的优化还是要细心做的,参考:

mysql性能的检查和调优方法

细心地调一遍,性能会好很多。

6、图片服务器

图片服务器我在这个架构中没有特别详细的介绍,在大型的bbs系统下,图片常常会出现容灾现象——图片数量严重超过了单台前端服务器容纳能力,导致前端服务器命中率低下。处理容灾问题也是非常棘手的,往后会有更详细的介绍。

7、简单的点击量统计办法

1/使用js的script标签访问另一(台)组服务器的空文件,然后定期向数据库更新
2/在前端的nginx上直接开启日志功能,按需要统计点击量的链接规则进行记录,然后定期更新数据库

--------------------------------------------------------------------------------
  • 大小: 11.9 KB
分享到:
评论

相关推荐

    新型大型BBS架构资料

    ### 新型大型BBS架构详解 #### 架构概述 本文档旨在介绍一种新型的大型BBS(电子公告板系统)架构方案,该方案利用Squid与Nginx技术结合,实现高效率、高稳定性和高可用性的目标。本架构不仅能够有效提升用户体验...

    Microchip推出新型SoC FPGA架构.pdf

    在提供的文件内容中,我们可以看到关于新型系统芯片现场可编程门阵列(SoC FPGA)架构的介绍,以及与之相关的硬件技术和开发应用。以下是从标题、描述、标签和部分内容中提炼出的知识点: 1. 新型SoC FPGA架构:...

    基于EdgeX Foundry的新型智能家居架构设计与实现.pdf

    针对这些问题,朱景宁在《基于EdgeX Foundry的新型智能家居架构设计与实现》一文中,提出了一种基于边缘计算框架EdgeX Foundry的新型智能家居架构,以期降低系统时延,减少带宽消耗,并提升系统的整体性能。...

    5G系统新型网络架构概述.pdf

    5G系统新型网络架构概述 一、网络架构演进 随着移动通信技术的发展,网络架构也在不断演进。从2G到5G,网络架构的变化主要体现在以下几个方面:从集中式到分布式、从串行到并行、从电路交换到分组交换、从有线到...

    面向云网融合的新型城域网架构关键问题研究.docx

    面向云网融合的新型城域网架构关键问题研究.docx面向云网融合的新型城域网架构关键问题研究.docx面向云网融合的新型城域网架构关键问题研究.docx面向云网融合的新型城域网架构关键问题研究.docx面向云网融合的新型城...

    融合边缘计算的新型科研云服务架构 .docx

    ### 融合边缘计算的新型科研云服务架构 #### 摘要解析与背景介绍 随着科技的进步和数据量的急剧增长,科学研究逐渐转向数据驱动的模式。然而,现有的云服务模型面临着处理大规模数据集时效率低下和技术瓶颈的问题...

    服务网格(Service Mesh)_新型的微服务架构及详细参考案例

    服务网格(Service Mesh)_新型的微服务架构及详细参考案例 服务网格(Service Mesh)是当前互联网中的一种新型的微服务架构,具有架构灵活、普适性强等特点,是微服务框架的演进方向。服务网格的定义是指一个专门...

    新型互联网交换中心组网架构研究.pdf

    新型互联网交换中心组网架构研究涉及了多个互联网行业的关键技术点,其核心目的在于促进数字经济时代下,互联网产业快速崛起以及消费互联网向产业互联网转型的过程中,企业信息系统和云平台的高效互联。本文档将就...

    新型领导体制架构探析论文.doc

    新型领导体制架构探析论文.doc

    智东西公开课-突破“Memory Wall”的新型AI芯片架构——存储优先-探境科技研发副总裁宋健.pdf

    突破“Memory Wall”的新型AI芯片架构——存储优先 AI芯片架构的发展历程中,存储墙问题始终是一个难题。随着深度学习算法的发展,AI芯片架构面临着新的挑战。传统的类CPU架构无法解决存储墙问题,因为它们是计算...

    基于FPGA DSP新型架构信号协同处理方案分析.pdf

    本文主要探讨了基于FPGA与DSP新型混合架构在信号处理上的优势及其应用。FPGA(Field-Programmable Gate Array)即现场可编程门阵列,是一种可以通过编程来实现定制化功能的半导体装置。DSP(Digital Signal ...

    新型架构案例与实践

    新型架构案例与实践 孙子荀 腾讯手Q公众号后台负责人

    新型双CPU架构的捷联惯性导航微机系统.pdf

    【新型双CPU架构的捷联惯性导航微机系统】是一种采用双处理器设计的导航系统,其中主要包含TI公司的TMS320C6713数字信号处理器(DSP)和凌阳SPCE061A单片机。TMS320C6713是高性能的DSP芯片,以其快速的处理速度和...

    新型存内计算架构的应用与挑战

    该文档围绕新型存内计算架构展开,首先介绍研究背景,包括人工智能运算需求增长但面临AI与存储墙问题、摩尔定律放缓以及冯诺依曼架构的限制;接着阐述存内计算架构的原理与应用,如基于eNVM阵列实现多种运算及性能...

    新型智慧城市整体架构及技术能力方案.pptx

    新型智慧城市整体架构及技术能力方案 本资源摘要信息涵盖了新型智慧城市的整体架构及技术能力方案,旨在为政府、企业和社会公众提供一个高效、可持续的智慧城市解决方案。 智慧城市整体架构 新型智慧城市的整体...

    融合边缘计算的新型科研云服务架构.pdf

    综上所述,这篇文章为我们提供了一个深入探讨如何融合边缘计算来构建适应数据密集型科研需求的新型云服务架构的视角,并详细介绍了该架构的设计、功能、应用场景以及服务能力。通过这种方式,科研人员将能够更好地...

    英特尔开发新型凌动芯片架构2013年将推出.pdf

    在探讨英特尔开发新型凌动芯片架构的过程中,可以引申出以下一系列知识点: 1. **芯片架构的重要性:**芯片架构是指构成芯片的逻辑与物理设计基础,它决定了芯片的性能、能效以及功能等核心特性。一个高效能、低...

    工业控制转型关键-新型工业控制架构及技术解析

    内容概要:本文探讨了新型工业控制系统的背景、架构和技术体系。新一代信息技术与工业经济的深度融合,带来了新型工业控制的崛起,其核心特征包括网络化、开放化、协同化和智能化。文中详细介绍了新型工业控制的关键...

    大型网站架构演变和知识体系

    10. **云原生技术**:如AWS、Azure、Google Cloud等云平台的使用,以及Serverless、FaaS等新型架构。 总之,大型网站架构的演变是技术进步和业务需求共同推动的结果,涉及的知识面广泛,需要不断学习和实践才能跟上...

Global site tag (gtag.js) - Google Analytics