"本文介绍了OSChina的技术架构以及重大更新流程,包括硬件配置、软件环境、开发工具、更新发布流程和关键技术框架的使用。在重大更新时,会通过挂维护页面、停用主服务、测试新应用、重启服务等步骤确保系统稳定运行。"
OSChina是知名的开源中国社区,其技术架构采用了高效且稳定的组件。硬件方面,他们使用了一台DELL SC1435服务器,配置有双AMD 2GHz处理器、16GB内存和250GB硬盘,尽管这是一台较旧的设备,但仍然能够应对每日超过10万IP访问和近300万动态请求的高负载。
软件环境基于RedHat Enterprise Linux 5.3操作系统,使用Sun JDK 1.6.0、Nginx 0.8.x作为反向代理和静态资源服务器,以及Tomcat 7.x作为应用服务器。数据库采用Percona Server 5.1,这是一种优化过的MySQL分支,提供高性能的数据存储和查询能力。开发工具包括Eclipse用于编程,Subversion作为版本控制系统,Apache Ant负责构建任务。
程序常规更新和发布流程相对简单,开发者在本地完成编码和测试后,将代码提交到SVN服务器,然后通过SSH登录到生产服务器执行更新和编译,最后在备用Tomcat上启动新应用进行验证。
重大更新流程则更为谨慎,首先会挂起维护页面(502.html),停止主Tomcat服务,此时Nginx会显示维护页面。接着,对数据库进行必要的调整,并在备用Tomcat上进行新应用的测试。当测试无误后,启动实际Tomcat服务,恢复正常运营。
在技术框架的选择上,OSChina使用了Velocity作为模板引擎,Lucene作为搜索引擎,Ehcache作为JVM缓存,Dbutils作为数据库操作工具包,还集成了一些其他工具,如OpenID、图片处理、文件上传和网络工具包等。这些组件通过MVC或MVA模式组合,实现高效的数据处理和页面渲染。
MVC(Model-View-Controller)模式中,Controller负责处理用户请求,协调Model和View之间的交互。而MVA(Model-View-Action)模式中的Action更侧重于业务逻辑处理,与Controller类似,但更强调动作执行。例如,一个简单的MVC例子中,@RequestMapping注解用于映射URL到特定的方法,该方法从数据库获取新闻数据并将其传递给视图层进行展示。
OSChina的技术架构展示了如何利用现有技术和工具构建一个能够应对大规模访问的社区平台,其更新流程保证了服务的稳定性和用户体验。