网站 首页那点事儿(一)

          做了Jrkj这个项目后,确实收获良多。由于项目1.0刚刚完结,还未正式上线,就不以该项目的实际面貌来为大家展示了。但这丝毫不影响我们接下来的首页技术分享~

          本篇文章我们以淘宝为例,主要讲首页的实现机制及提速方式。

          首先,我们来看淘宝首页:首页 或 看下图:

          


       我把页面上能看到的主要部分划分了四个区域:类别菜单、条件搜索区、图片区和账户服务及其他功能区。

       这四个功能区,我们的jrkj项目也是都存在的,所以就以这个页面为例了。


       左侧菜单类别区,我们的jrkj项目中展现的是讲师领域,分为一、二级,通过这两级领域来查询相应领域下的讲师。

       我们主要用了Redis来做一级缓存,缓存了数据。就是第一次发起查询时,先去缓存中找,缓存中没有再去数据库中查,并将结果加入缓存中。这样就减少了直接查询数据库的机会,提高了访问速度。

   

       关于图片,我们先是用了Nginx做图片服务器(阿里云),后来发现首页速度依然很慢,就增加了带宽到5M。通过工具分析淘宝的图片加载速度,快过我们几十倍。发现是我们的图片太大,就开始限制用户的上传大小,并进行了图片压缩处理,这样达到的效果大概控制在了淘宝时间的5倍左右,后续还会继续优化。

       关于后期的优化方向,一是要寻求更优的图片服务器及服务器集群,二是CDN和反向代理技术的应用。


       关于条件搜索,也有了一个比较成熟的解决方案。

       我们想实现模糊搜索,最开始学习的时候是使用LIKE,但这里显然不能用,一是效率太差,二是查询精度太低。

       这里就需要使用全文检索框架来实现了:通过搭建zookeeper+solr集群,来进行查询提速和精度优化。


        关于账户服务区,还没有进行优化,这里可能出现的问题就是登陆压力大。通常解决办法是进行登陆限制,比如添加计算式或问题式的验证码,来进行层次化登陆;或者增加服务器,搭建集群来进行分流。


        好了,上面介绍的都是看得见的内容,还有一些隐藏的提速手段:

        1、js和css文件压缩,我们先是进行了压缩,然后放到了Nginx服务器上,未来需要搭建一个文件服务器来进行管理。

        2、通过数据库读写分离和分库分表技术来实现数据读写加速;

        3、扩容缓存服务器,或搭建缓存集群、利用Redis二级缓存技术进一步提升查询速度;

        4、还有未实现的动静分离技术,缓存静态页面还在研究中~


        小结:看起来简简单单的一个首页,包含了这么多技术和思想。在大牛企业中肯定还有我们所不知道的优化手段和技术,需要进一步探索和学习。

        要想在今后的互联网世界中发展,我们必须一方面不断探索技术,优化网络和软件服务,另一方面还要着眼于需求变化,提示服务质量,扩展服务类型,以始终为人民服务的态度来对待世界和未来。





评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值