中小型电子商务网站架构

本文涉及的产品
.cn 域名,1个 12个月
简介: 原文:中小型电子商务网站架构  一个小型的电子商务网站,例如日交易量5万订单以下,或者说每天差不多五千万个pv左右。我们可以讨论下,整个架构应该如何设计。 业务分离,域名分离 现在好的电子商务网站都是按照业务分开,细化每个业务线。
原文: 中小型电子商务网站架构

  一个小型的电子商务网站,例如日交易量5万订单以下,或者说每天差不多五千万个pv左右。我们可以讨论下,整个架构应该如何设计。

业务分离,域名分离

现在好的电子商务网站都是按照业务分开,细化每个业务线。这样有利于系统的扩展,也有利于对系统的维护。例如:商品可以独立出来,交易独立,用户独立等等。各个系统之间需要交互的信息可以通过远程传输来实现。在一个比较有规模的团队中,最好有个组专门来维护一个独立的业务,有利于团队对业务渗透和业务的维护。

由于业务分开,系统分开,当然在域名上也应该分开, 例如:整个网站的域名为www.abcd.com。那商品系统域名就应该为item.abcd.com。交易可以使用order.abcd.com。这样的好处显而易见,在访问上就可以分流。很多公司是通过www.abcd.com/item这样处理,所有流量都统一进入www.abcd.com然后再处理,这样对主服务器压力就非常大。这个道理很简单。就像一个口小身大的瓶子一样,水很难灌进去。现在很多电子商务公司都没有意识到这个问题。这些简单的方法都没有注意到。

 

独立搜索引擎

最近几年很多人都习惯于通过搜索找到自己喜欢的东西,一个好的网站一定要有独立的搜索引擎,分词要好,实时数据更新最好,最好做成分布式搜索。为了能够准确定位商品,对商品一定要有非常完善商品属性,例如:我在搜索一件红色 夏季的衣服,我就会输入红色 夏季进去,如果商品没有颜色属性,没有季节属性,就无法定位到我想要的商品上面。除了完善的商品属性,还应该建立比较好的推荐搜索,保持关键字推荐,搜索结果推荐。

搜索是一个非常庞大和奥妙的课题,本人知之甚少,也不好班门弄斧。我是做java出身,经常使用Lucene也很喜欢Lucene。很多人都误会Lucene做搜索不够强大,其实技术要做好,一样很强大。twitter就是使用Lucene做搜索,也比较强大了,熟能生巧。

 

数据架构

数据架构范围太大,太广,起这个标题有点大题小做了。其实一个比较大的系统,最起码的数据架构要求就是数据库拆分。垂直划分很简单,就按照业务分成不同的数据库。另外一种是水平划分,把同一个业务数据划分到不同的数据。到最后就应该是可以考虑读写分离,读写分离就好像高速公路一样,左右车道分开,中间有隔离带,当然速度就上去了。

在我的博客上有一篇文章主要讲读写分离。

 

缓存数据

缓存是我最喜欢的的技术,也是目前很多系统都会使用到的技术,为了提高系统性能,提高速度,缓存使用必不可少。最有名的莫过于memcache啦,淘宝的tair也很不错。这些都是大型分布式缓存,其实如果是小型系统,可以自己开发缓存,可以根据业务要求,把对应的数据放到内存中,就可以了。其中技巧很多,一切都以合适场景为主。

还有另外一个现在非常流行的技术就是cdn缓存,提供商很多,淘宝比较牛,自己开发cdn,而且架构也非常好。

说到缓存还有静态页面缓存,浏览器客户端缓存。等等,这些都可以在一定程度上提高性能。

 

异步通信系统

在一个分布式系统中,系统之间交互必不可免,就会涉及到很多系统之间消息同步,状态同步,消息记录等,一个好的异步消息系统,可以很好提高系统的强壮性和扩展性。例如为了保证数据或者状态一致性,通过消息系统就可以保证数据一致。在交互时,向消息队列中提交对象,再进行系统之间状态交互。就算系统状态 失败消息中也保证了对象的存在。在上面提到的读写分离中,就可以通过异步消息系统做数据同步。

 

完善的系统监控

 

在一个比较大型的分布式环境中,一定要有监控系统。例如:流量监控,硬件监控,系统性能监控,如果再深入的话,可以对某个页面进行监控,设置页面的其中一块进行监控。特别在硬件监控或者性能监控时如果发现异常,就应该预警,这样也好防范于未然。

 

一个好的系统其实应该从扩展性、安全性、性能和可靠性来考虑,其中三言两语说不完。架构适合就好,可以采用先行之而后优。

目录
相关文章
|
Web App开发 存储 监控
基于AWS的电子商务网站架构——Web前端
用AWS可以建立一个高可用的电子商务网站提供灵活的产品目录和业务扩展。维护一个电子商务网站的一个大型产品目录和全球客户群是具有挑战性的。
1163 0
|
安全 数据安全/隐私保护
基于AWS的电子商务网站架构——结账服务
用AWS建立电子商务网站安全且高可用的结账服务及业务扩展。管理结帐过程涉及许多步骤,必须协调工作。其中的一些步骤,如信用卡交易,应有特定的监管要求。
1332 0
|
Web App开发 存储 监控
基于AWS的电子商务网站架构——营销与推荐服务
用AWS可以建立一个营销与推荐服务,来管理有针对性的营销活动,并为正在浏览电子商务网站的客户提供个性化的产品推荐。 为了建立这样一个服务,你必须处理非常大量来自多个数据源的数据。
1758 0
|
8天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
6天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
7天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
17 1
服务架构的演进:从单体到微服务的探索之旅