百度贴吧PHP中间层的设计与实现
这是一篇关于百度贴吧,中间层,系统架构,高并发,负载均衡的论文, 主要内容为贴吧是百度旗下独立品牌,全球最大的中文社区。百度贴吧历经10年沉淀,拥有6亿注册用户,450万贴吧,日均话题总量近亿,月活跃用户数有2亿,占中国网民总数的39%。贴吧是基于LAMP架构下的解决方案成果,目前支撑了数十个子系统、十亿的流量、千万级提交量以及T级数据量。贴吧目前需要的是高性能、高稳定性、高扩展性、更快的响应时间、更好的用户体验以及快速开发/方便维护的架构/代码。而作为承载如此重担的PHP中间层却面临着很多问题,无法很好的解决贴吧高并发、高负载的需求。 论文从贴吧产品的需求点出发,以宏观架构以及后台具体处理流程为切入点,分析系统PHP中间层的问题,总结出系统的瓶颈以及流程上的缺陷,并提出具体系统功能需求以及相关技术改进方案。从技术角度介绍了改进方案的具体实施细节,比如架构重构、流程优化、进程同步等,为之后的具体实现提供理论基础以及方案参考。 本文使用C、PHP语言开发出了贴吧架构下的中间层,承载高并发、高负载的需求,在设计上主要分为六大模块:资源定位、健康检查、负载均衡、协议支持、统一接口、本地配置自动化。首先通过对中间层的架构重构,包括资源定位与健康检查,以及MySQL请求架构。再通过对系统工作进程相关流程的高度抽象,从抽象的流程上分析出系统瓶颈点,并针对瓶颈点进行深入的调研,从而确定设计方案。在负载均衡上,通过非主控式的设计方案,并从进程交互与进程同步等关键点出发,开发出符合贴吧高并发、高负载的系统,使T级请求下的平均响应时间达到小于5秒的要求。在系统的对外接口以及跨系统调用方面,也详细阐述了关键服务的配置以及异常定位。最后在系统部署方面,也很好的讨论了系统有关平滑上线以及相关服务映射的特性。 通过上述的设计,系统解决了瓶颈问题,满足了性能上的需求,提升了用户体验。经过实际的测试,以及一期工程下的具体部署,通过符合预期的结果,证明了架构重构的完美以及具体技术方案的可行性。目前PHP中间层的改进方案已经部署到贴吧后台的12个服务器,后续的二期工程会完全部署并推广到其他的子系统中。
J2EE环境下通用数据操作框架的研究
这是一篇关于J2EE,框架,STRUTS,DAO,IBATIS,Spring,表现层,业务逻辑层,数据持久层,中间层,JDBC,通用数据操作框架的论文, 主要内容为在J2EE技术飞速发展的今天,各种技术框架和设计模式层出不穷,每种技术都有各自的优势与劣势。目前,没有一种技术处于绝对的霸主地位,如何使我们的应用程序不过多地依赖某种实现技术,具有强的可扩展性,同时,能更好地集成各种技术框架,使他们发挥最大的优势,是我们创建企业应用时,应该考虑的问题。 随着J2EE的飞速发展,已经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。 一个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现出来,表现层我们可以选择Struts,JSF,Tapestry,WebWork,Velocity等,数据持久层我们可以选择原始的JDBC,ORMapping tools(Hibernate,toplink等),SOLMapper tools(Ibatis),JDO,EJB(Entity Bean)等,业务逻辑层我们可以用普通的JAVA Beans,也可以用EJB(Session Bean)。每种技术都有它的优点与缺点,各自有各自的适用范畴,例如EJB可以很好地进行分布式处理和Object Cache等,但EJB的运行需要EJB容器,开发调试起来很不方便,特别在需求不确定性很大、模型不稳定的情况下,实在是一种重量级别的开发;而JAVA BEAN则是一种很轻量级的方式,开发调试容易,但又很难实现分布式处理。在各种技术纷争的今天,暂时还没有一种技术处于绝对的霸主地位,在这种条件下,我们不能把“赌注“押在任何一种技术上,如何使我们的应用程序有很高的灵活性和易扩展性是我们要仔细研究的课题。 在实际的项目中,关于应用程序开发时所用技术的问题,大致存在两种情况,一种是构架师或技术经理没有严格限定用什么技术来实现具体的业务逻辑或者只有简单的开发规范,程序员在开发时,只是依据自己的技术背景,选择自己熟悉的实现方式,这种情况一般属于横向开发,在小的项目中,每个人只做自己负
J2EE环境下通用数据操作框架的研究
这是一篇关于J2EE,框架,STRUTS,DAO,IBATIS,Spring,表现层,业务逻辑层,数据持久层,中间层,JDBC,通用数据操作框架的论文, 主要内容为在J2EE技术飞速发展的今天,各种技术框架和设计模式层出不穷,每种技术都有各自的优势与劣势。目前,没有一种技术处于绝对的霸主地位,如何使我们的应用程序不过多地依赖某种实现技术,具有强的可扩展性,同时,能更好地集成各种技术框架,使他们发挥最大的优势,是我们创建企业应用时,应该考虑的问题。 随着J2EE的飞速发展,已经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。 一个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现出来,表现层我们可以选择Struts,JSF,Tapestry,WebWork,Velocity等,数据持久层我们可以选择原始的JDBC,ORMapping tools(Hibernate,toplink等),SOLMapper tools(Ibatis),JDO,EJB(Entity Bean)等,业务逻辑层我们可以用普通的JAVA Beans,也可以用EJB(Session Bean)。每种技术都有它的优点与缺点,各自有各自的适用范畴,例如EJB可以很好地进行分布式处理和Object Cache等,但EJB的运行需要EJB容器,开发调试起来很不方便,特别在需求不确定性很大、模型不稳定的情况下,实在是一种重量级别的开发;而JAVA BEAN则是一种很轻量级的方式,开发调试容易,但又很难实现分布式处理。在各种技术纷争的今天,暂时还没有一种技术处于绝对的霸主地位,在这种条件下,我们不能把“赌注“押在任何一种技术上,如何使我们的应用程序有很高的灵活性和易扩展性是我们要仔细研究的课题。 在实际的项目中,关于应用程序开发时所用技术的问题,大致存在两种情况,一种是构架师或技术经理没有严格限定用什么技术来实现具体的业务逻辑或者只有简单的开发规范,程序员在开发时,只是依据自己的技术背景,选择自己熟悉的实现方式,这种情况一般属于横向开发,在小的项目中,每个人只做自己负
J2EE环境下通用数据操作框架的研究
这是一篇关于J2EE,框架,STRUTS,DAO,IBATIS,Spring,表现层,业务逻辑层,数据持久层,中间层,JDBC,通用数据操作框架的论文, 主要内容为在J2EE技术飞速发展的今天,各种技术框架和设计模式层出不穷,每种技术都有各自的优势与劣势。目前,没有一种技术处于绝对的霸主地位,如何使我们的应用程序不过多地依赖某种实现技术,具有强的可扩展性,同时,能更好地集成各种技术框架,使他们发挥最大的优势,是我们创建企业应用时,应该考虑的问题。 随着J2EE的飞速发展,已经有越来越多的企业应用程序以J2EE技术为其构建的基石,J2EE本身并不是产品,它只是制定了一套创建企业应用程序的规范,不同厂商根据J2EE规范,创建了符合J2EE规范的产品,这给予了我们更多的选择创建企业应用的平台。 一个典型的J2EE的应用,至少应该包括以下三部分:表现层,业务逻辑层和数据持久层,为了更加容易地创建企业应用程序,许许多多的Framework涌现出来,表现层我们可以选择Struts,JSF,Tapestry,WebWork,Velocity等,数据持久层我们可以选择原始的JDBC,ORMapping tools(Hibernate,toplink等),SOLMapper tools(Ibatis),JDO,EJB(Entity Bean)等,业务逻辑层我们可以用普通的JAVA Beans,也可以用EJB(Session Bean)。每种技术都有它的优点与缺点,各自有各自的适用范畴,例如EJB可以很好地进行分布式处理和Object Cache等,但EJB的运行需要EJB容器,开发调试起来很不方便,特别在需求不确定性很大、模型不稳定的情况下,实在是一种重量级别的开发;而JAVA BEAN则是一种很轻量级的方式,开发调试容易,但又很难实现分布式处理。在各种技术纷争的今天,暂时还没有一种技术处于绝对的霸主地位,在这种条件下,我们不能把“赌注“押在任何一种技术上,如何使我们的应用程序有很高的灵活性和易扩展性是我们要仔细研究的课题。 在实际的项目中,关于应用程序开发时所用技术的问题,大致存在两种情况,一种是构架师或技术经理没有严格限定用什么技术来实现具体的业务逻辑或者只有简单的开发规范,程序员在开发时,只是依据自己的技术背景,选择自己熟悉的实现方式,这种情况一般属于横向开发,在小的项目中,每个人只做自己负
百度贴吧PHP中间层的设计与实现
这是一篇关于百度贴吧,中间层,系统架构,高并发,负载均衡的论文, 主要内容为贴吧是百度旗下独立品牌,全球最大的中文社区。百度贴吧历经10年沉淀,拥有6亿注册用户,450万贴吧,日均话题总量近亿,月活跃用户数有2亿,占中国网民总数的39%。贴吧是基于LAMP架构下的解决方案成果,目前支撑了数十个子系统、十亿的流量、千万级提交量以及T级数据量。贴吧目前需要的是高性能、高稳定性、高扩展性、更快的响应时间、更好的用户体验以及快速开发/方便维护的架构/代码。而作为承载如此重担的PHP中间层却面临着很多问题,无法很好的解决贴吧高并发、高负载的需求。 论文从贴吧产品的需求点出发,以宏观架构以及后台具体处理流程为切入点,分析系统PHP中间层的问题,总结出系统的瓶颈以及流程上的缺陷,并提出具体系统功能需求以及相关技术改进方案。从技术角度介绍了改进方案的具体实施细节,比如架构重构、流程优化、进程同步等,为之后的具体实现提供理论基础以及方案参考。 本文使用C、PHP语言开发出了贴吧架构下的中间层,承载高并发、高负载的需求,在设计上主要分为六大模块:资源定位、健康检查、负载均衡、协议支持、统一接口、本地配置自动化。首先通过对中间层的架构重构,包括资源定位与健康检查,以及MySQL请求架构。再通过对系统工作进程相关流程的高度抽象,从抽象的流程上分析出系统瓶颈点,并针对瓶颈点进行深入的调研,从而确定设计方案。在负载均衡上,通过非主控式的设计方案,并从进程交互与进程同步等关键点出发,开发出符合贴吧高并发、高负载的系统,使T级请求下的平均响应时间达到小于5秒的要求。在系统的对外接口以及跨系统调用方面,也详细阐述了关键服务的配置以及异常定位。最后在系统部署方面,也很好的讨论了系统有关平滑上线以及相关服务映射的特性。 通过上述的设计,系统解决了瓶颈问题,满足了性能上的需求,提升了用户体验。经过实际的测试,以及一期工程下的具体部署,通过符合预期的结果,证明了架构重构的完美以及具体技术方案的可行性。目前PHP中间层的改进方案已经部署到贴吧后台的12个服务器,后续的二期工程会完全部署并推广到其他的子系统中。
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码导航 ,原文地址:https://m.bishedaima.com/lunwen/49440.html