用Scala重构19楼——SDCC 2013讲师王治专访
发表于
8小时前|
1119次阅读| 来源
CSDN|
0 条评论| 作者
夏梦竹
编者按:CSDN年度技术盛宴 SDCC 2013中国软件开发者大会将于2013年8月30-31日在北京新云南皇冠假日酒店举行。软件研发频道将采访一些与会讲师,谈谈他们将在会上分享的内容 (报名参会)。本期我们采访的讲师是19楼技术总监王治。
CSDN:请先简单介绍下自己以及目前所从事的领域。
王治:我目前主要负责19楼的技术研发工作,包括开发、测试、运维团队。社区网站算是是一个比较传统的领域,但我们专注与本地生活消费社区,要在产品上要持续做一些创新,如垂直行业、移动端的一些应用。技术上喜欢尝试一些新的东西,快速开发一些框架或者原型,然后在合适的产品中去应用。
CSDN:很多人都说在云计算和移动大时代,Scala无疑是一门很有前途的语言对此你怎么看?是什么原因促使您选择Scala来做开发?目前Scala的应用情况是怎样的?
王治:Scala语言设计非常巧妙,函数式编程、比Java更彻底的面向对象设计、极为灵活和可定制的语法等等。相对Java的严谨而刻板,Scala语言更加高效和灵活。Scala运行在JVM中,并且几乎可以无缝的使用所有Java的框架,同样它还是静态语言,因此使用Scala并不是什么艰难的选择。另外,scala也有很多特有的非常优秀的框架,如akka、slick、spark等。我想Scala应该接下来会成为主流开发语言之一。目前19楼大部分产品都是使用Scala开发的。
CSDN:目前19楼的日PV大概是多少?可否简单透露下19楼的基础设施?在面对高并发访问量时,19楼是如何设计和部署高并发网站架构的?
王治:目前19楼日均pv是3000多万(包括PC和移动)。19楼是一个城市本地生活消费社区,有30多个城市站。数据、图片存储、缓存、消息、统计分析等一些功能是作为服务模块提供的,各站及应用的可以独立部署,也算是云社区的一种形态吧。
在目前的流量级别上,只要设计合理性能不是什么大问题。主要还是要解决数据的问题,数据库主要使用MySQL,做了数据分片、读写分离等工作。另外用MongoDB实现数据分片后的一些查询功能。前端使用Tomcat+Ngnix,前端服务器和Memcached服务器全部采用KVM虚拟机管理。还有一个图片压缩和存储的服务,使用Gridfs作为存储文件系统。有时候网站的一些活动确实会带来流量暴涨的情况。这时候一方面是要事先做好评估,如极端的流量增长情况,压力的分布等。另一方面,设计上有做好足够的冗余,服务器要做相应的调配。这时候使用虚拟机管理服务器资源会高效很多。
CSDN:您认为网站架构性能优化的要点和最大的难点是什么?
王治:网站的性能优化是一个系统的事情,各环节上做好把控,如设计、监控、分析、重构等。一是适当的模块划分,清晰的设计是性能优化的基础。二是在各个主要节点上加上监控,这样在性能遇到问题的时候迅速可以打开查看执行情况,看到实际生产环境中时间消耗在哪里。三是过程控制,由于产品功能的不断叠加,升级过程中的控制和不断优化是保持网站高效稳定的关键。四是前端代码的性能对用户体验影响非常大,需要足够重视。
现实中最困难倒不是优化本身,而是我们总是需要在性能、时间、成本以及应付业务变化等多方面因素中做出权衡。
CSDN:您在本次SDCC大会上想分享的话题是?
王治:我想分享用Scala重构19楼这样一个从Discuz论坛成长起来的社区所走过的一些历程,希望对有个类似经历或者正在经历这个过程的同行有些帮助吧。
(注:19楼空间(www.19lou.com)是致力于提供生活资讯、消费购物、人际交流一体化服务的大型互动平台。)
即将举行的SDCC 2013软件开发者大会离我们越来越近了,相信大家还对去年的SDCC记忆犹新。在去年SDCC2012上,蔡学镛、田永强、莫枢等人的演讲给与会者带来了务实的帮助和启示。
值得一提的是,王治将在今年的SDCC 2013《编程语言与工具》主题论坛上为大家带来《19楼网站架构以及Scala的应用》的主题分享;此外,本场的讲师还包括一些知名的技术人,包括:简悦联合创始人 云风;Avos资深工程师 庄晓丹;新浪微博主站架构师 宋琦;北京奇虎测腾科技有限公司白盒测试主管 童小刚 。
想了解更多精彩演讲,想要见到更多顶级软件开发者,敬请关注SDCC 2013中国软件开发者大会官网,>>>报名地址
本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)