专栏首页普通程序员电商网站主站(首页)怎么做

电商网站主站(首页)怎么做

一个常见的网站结构如下图。用户请求网站URL,nginx服务器负责负载均衡,将请求路由到具体的业务服务器tomcat;根据具体的业务需求,请求后端的相关服务(service1、service2)。系统数据由缓存(catch)和数据库(DB)支撑;客户端得到页面后,再从就近的CDN拉取需要的图片、js等静态资源;最后浏览器渲染,展现给用户。如下图所示

主站首页的基本做法思路跟上边描述的一样。但是由于首页非常重要,在性能及可靠性方面要求极高(几乎见不到哪个知名点的网站首页不能访问的),因此,首页的建设还需要考虑其他一些方面。

1、动静分离

主站首页往往会有大量的固定内容(根据地域等可枚举条件发生变化的内容也属于固定内容),这部分内容可以提前生成好,放到缓存中;同时根据用户不同,会显示一些跟用户相关的信息(如积分、等级等),这类动态信息需要通过相关服务拉取。

2、完全配置化

首页核心功能是展示商品或栏目,展示哪些栏目,展示哪些商品,连接跳转什么地方,显示什么图片,banner推广什么活动……等等内容,都要能够通过后台配置系统进行配置。

3、分屏加载

电商类首页恨不得把所有东西都放进去,内容很多。如果一次全部加载,加载速度慢,而且费流量。需要将首页切分成若干部分,用户访问时,先迅速返回第一屏显示的内容,之后再根据策略逐步加载其他屏的内容。

4、本地缓存

文章开始结构图的缓存是Redis等独立缓存,需要通过网路访问。首页中动态内容通过服务拉取的信息采用此类缓存比较合适;对于固定内容,采用本地缓存更加合适,不通过网络访问,速度更快,风险更小。58到家采用的guava本地缓存。

5、AB Test

这里的AB测,主要指首页界面的AB测(推荐算法的对比不在此讨论)。首页肩负着提升二跳率的重任,界面风格,按钮形状,背景颜色等要素极为重要,需要通过积累试验数据,逐步优化,因此首页需要支持在线AB测试。我们一般根据用户画像、地域等条件来划分对照组。

6、千人千面

如果有用户历史行为数据或其他标签(画像)数据,可根据用户特征,优先展示用户感兴趣的商品或栏目。瓜子二手车的首页会根据用户购买力,浏览历史等向用户展示可能感兴趣的车辆。

7、多渠道投放

如果是H5形式的首页,还需要支持多渠道投放。比如到今日头条上打个广告,能够迅速跳转到具体产品页或首页(此时首页运行在头条App中)。

8、柔性降级设计

柔性设计尤为重要。首页依赖的后台服务,不可能百分之百不出问题,绝对不能因为某个服务出现故障,首页的主体显示内容就出现问题(第4点采用本地缓存,也有这层意思)。比如:passport出现异常,只能影响到用户登录,但是用户依然能够看到首页展示的商品;内部网络异常,动态数据可能获取不到,但是固定信息需要能够正常展示给用户。

以上是我做主站项目的一些心得体会,具体实施起来可以讨论的内容还很多。

本文分享自微信公众号 - 普通程序员(farmerbrag),作者:封宇

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HBase的表结构你设计得不对!

    正如我在前面章节强调的,HBase数据模型跟关系型数据库系统有非常大的差异。因此,设计Hbase的数据表的方法和思路跟关系型数据库不一样。设计HBASE表应该在...

    普通程序员
  • Tigase手动安装过程

    网上已有很多Tigase的安装文档,Tigase官方文档(英文)也很详细。但是我还是要再写一下安装过程,主要原因是网上的安装文档基本都是在特别简单的环境中进行安...

    普通程序员
  • 二百元成本单网站每天爬取百万量级数据的方法

    在网络爬虫抓取信息的过程中,如果抓取频率高过了网站设置的阀值,会被禁止访问。通常,网站的反爬虫机制依据IP来标识爬虫。

    普通程序员
  • Linux中iptraf命令详解(IP局域网监控工具)

    iptraf是一个基于ncurses开发的IP局域网监控工具,它可以实时地监视网卡流量,可以生成各种网络统计数据,包括TCP信息、UDP统计、ICMP和OSPF...

    拓荒者
  • 寒潮真的来了,BAT都难逃此劫

    我和很多猎头,还有公司的HR都有合作,包括和一些培训机构也经常沟通,给出的反馈都是裁人比招人的快,大多都是裁人。

    用户1634449
  • 一篇文章讲清面向对象的UML类图

    从定义上看可能有点抽象,说白了就是一种由图表组成的标准化建模语言,一般我们理解的语言都是由文字组成,而这种统一建模语言是由图表组成的。我们知道开发一个软件系统,...

    lyb-geek
  • RGW Bucket Shard设计与优化-中

    如何缓解 index shard 过大造成的影响 下面这些都是属于应急操作,属于快速止血止痛,部分操作属高危,一定要谨慎使用。 1 调整OSD的几个op超时...

    用户1260683
  • ELK学习笔记之ELK分析syslog日志

    Jetpropelledsnake21
  • 基于QT的webkit与ExtJs开发CB/S结构的企业应用管理系统

    一:源起 1.何为CB/S的应用程序     C/S结构的应用程序,是客户端/服务端形式的应用程序,这种应用程序要在客户电脑上安装一个程序,客户使用这个程序与...

    liulun
  • Kubernetes服务发现入门:如何高效管理服务?

    愈发复杂的应用程序正在依靠微服务来保持可扩展性和提升效率。Kubernetes为微服务提供了完美的环境,并能够让其与Kubernetes的工具组件和功能兼容。当...

    CNCF

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动