关于开源项目在实践应用中的思考
2010-08-31 10:41
661 查看
在开篇之前,我想提三个问题,希望和大家探讨一下
1、为什么要应用架构,架构给我们带来的好处有哪些?
2、园子里的兄弟们在应用中,是直接用开源项目,还是经过合理剪裁后应用在项目中?
3、能说说有哪些开源项目能达到工业级标准,希望能给一下具体的指标(如并发能力)
先说说我的应用,一个基于.net 2.0开发的老项目,其中用到了开源的castle,我也在园子里看过无数人对其进行了追捧,所以我在做技术选型时,并没做验证。看了看它的思路和实现,觉得不错,可当我们做效率测试时,发现了很多问题,最严重的要数并发问题,这里我希望大家将就这个问题进行展开讨论,以给我一些回馈。
首先,描述一下场景:
1、我的应用布署在多台HP 380 机器上,前端是F5负载均衡
2、测试机为同等配置的HP 380.
3、千兆局域网。
4、表现层使用castle中的monorail.
5、要求秒并发不低于500,日访量百万。
测试结果:在并发量不大的情况下,顺利通过;当500并发时,在monorail的Velocity中报空引用错误。
结论
我们在做系统架构时应从以下几方面进行思考:
1、了解项目的背景,包括:使用群体、用户数量、业务情况、投入的资金、人力物力、项目的生命周期等。
2、根据1,做项目的策划和技术选型,公司现有技术力量或平台是否能够支撑项目,潜在风险有哪些。
3、选择一些开源项目时不要人云亦云,要进行验证。
4、如果技术实力强,最好企业能够吸取开源架构的思想后建立自己的架构体系,方便扩展,同时也方便错误的追踪和修改。
5、如果不具备4的能力,在进行大型项目(高并发、高可靠)应用时,建议使用原生态的微软技术,通过这次实践发现微软的原生态技术还是经得起考验的。
6、在一些小规模项目中,使用一些开源项目,还是利大于弊的。
最后,架构不是一成不变的,要根据项目的需求,应用的上下文,做技术方案的合理剪裁。
另:个人觉得.net 的开源项目的成熟度和java相比成熟度不够(并不是说.net不如java),尤其缺少大型项目应用案例,和工业级标准,希望.net开源项目多加油;
同时,在这里也希望大家谈谈自己在应用开源项目时的一些心得,如 Castle、NHibernate、Spring.NET、Quartz、log4net等在高并发时的表现。
补充:
欢迎大家拍砖,但我更希望是有实际意义的讨论,比如你认为那个开源项目具备高可靠性、高并发性,并在实际大规模应用检验过,可以给我一些具有实际意义的指
标(如吞吐量、秒并发响应时间、百分之九十交易时间等),我觉得这样讨论更客观。
1、为什么要应用架构,架构给我们带来的好处有哪些?
2、园子里的兄弟们在应用中,是直接用开源项目,还是经过合理剪裁后应用在项目中?
3、能说说有哪些开源项目能达到工业级标准,希望能给一下具体的指标(如并发能力)
先说说我的应用,一个基于.net 2.0开发的老项目,其中用到了开源的castle,我也在园子里看过无数人对其进行了追捧,所以我在做技术选型时,并没做验证。看了看它的思路和实现,觉得不错,可当我们做效率测试时,发现了很多问题,最严重的要数并发问题,这里我希望大家将就这个问题进行展开讨论,以给我一些回馈。
首先,描述一下场景:
1、我的应用布署在多台HP 380 机器上,前端是F5负载均衡
2、测试机为同等配置的HP 380.
3、千兆局域网。
4、表现层使用castle中的monorail.
5、要求秒并发不低于500,日访量百万。
测试结果:在并发量不大的情况下,顺利通过;当500并发时,在monorail的Velocity中报空引用错误。
结论
我们在做系统架构时应从以下几方面进行思考:
1、了解项目的背景,包括:使用群体、用户数量、业务情况、投入的资金、人力物力、项目的生命周期等。
2、根据1,做项目的策划和技术选型,公司现有技术力量或平台是否能够支撑项目,潜在风险有哪些。
3、选择一些开源项目时不要人云亦云,要进行验证。
4、如果技术实力强,最好企业能够吸取开源架构的思想后建立自己的架构体系,方便扩展,同时也方便错误的追踪和修改。
5、如果不具备4的能力,在进行大型项目(高并发、高可靠)应用时,建议使用原生态的微软技术,通过这次实践发现微软的原生态技术还是经得起考验的。
6、在一些小规模项目中,使用一些开源项目,还是利大于弊的。
最后,架构不是一成不变的,要根据项目的需求,应用的上下文,做技术方案的合理剪裁。
另:个人觉得.net 的开源项目的成熟度和java相比成熟度不够(并不是说.net不如java),尤其缺少大型项目应用案例,和工业级标准,希望.net开源项目多加油;
同时,在这里也希望大家谈谈自己在应用开源项目时的一些心得,如 Castle、NHibernate、Spring.NET、Quartz、log4net等在高并发时的表现。
补充:
欢迎大家拍砖,但我更希望是有实际意义的讨论,比如你认为那个开源项目具备高可靠性、高并发性,并在实际大规模应用检验过,可以给我一些具有实际意义的指
标(如吞吐量、秒并发响应时间、百分之九十交易时间等),我觉得这样讨论更客观。
相关文章推荐
- 关于三种『应用内主题切换』开源项目的一点思考
- 开源物联网框架ServerSuperIO(SSIO),项目中实践应用介绍
- (转)看了一些ASP.NET MVC开源项目后的一些想法,关于ASP.NET MVC+Repository+Service架构的一些思考
- 开源物联网框架ServerSuperIO(SSIO),项目中实践应用介绍
- 关于 最近项目 测试--调试的一点思考
- Android开发者必须深入学习的10个应用开源项目
- 知名应用背后的第三方开源项目
- 一些优秀的开源项目,可用于实践
- 值得关注的开源Web应用项目
- 【开源项目】智能电视及电视盒子的控制应用TVRemoteIME的接口说明
- C/C++程序员必须熟练应用的开源项目
- 使用spring-loaded开源项目,实现java程序和web应用的热部署
- [Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目
- Web 应用开源项目大全
- Android开发者必须深入学习的10个应用开源项目
- 热情不减!七款Swift应用开源项目推荐
- 关于Android的轻量级数据库SQLlite的使用实践小项目 (生管理系统(附源码))
- Github 上一些关于PHP的开源项目