电商网站架构案例(3)

news/2024/5/12 23:29:36/文章来源:https://blog.csdn.net/weixin_34128237/article/details/93735674

本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结。

6.5数据库集群(读写分离,分库分表)

大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计。一般有两种方式读写分离和分库分表。

读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式。

本案例在业务拆分的基础上,结合分库分表和读写分离。如下图:

 

(1)       业务拆分后:每个子系统需要单独的库;

(2)       如果单独的库太大,可以根据业务特性,进行再次分库,比如商品分类库,产品库;

(3)       分库后,如果表中有数据量很大的,则进行分表,一般可以按照Id,时间等进行分表;(高级的用法是一致性Hash)

(4)       在分库,分表的基础上,进行读写分离;

 

相关中间件可参考Cobar(阿里,目前已不在维护),TDDL(阿里),Atlas(奇虎360),MyCat(在Cobar基础上,国内很多牛人,号称国内第一开源项目)。

分库分表后序列的问题,JOIN,事务的问题,会在分库分表主题分享中,介绍。

6.6服务化

         将多个子系统公用的功能/模块,进行抽取,作为公用服务使用。比如本案例的会员子系统就可以抽取为公用的服务。

        

6.7消息队列

         消息队列可以解决子系统/模块之间的耦合,实现异步,高可用,高性能的系统。是分布式系统的标准配置。本案例中,消息队列主要应用在购物,配送环节。

(1)       用户下单后,写入消息队列,后直接返回客户端;

(2)       库存子系统:读取消息队列信息,完成减库存;

(3)       配送子系统:读取消息队列信息,进行配送;

 

目前使用较多的MQ有Active MQ,Rabbit MQ,Zero MQ,MS MQ等,需要根据具体的业务场景进行选择。建议可以研究下Rabbit MQ。

6.8其他架构(技术)

除了以上介绍的业务拆分,应用集群,多级缓存,单点登录,数据库集群,服务化,消息队列外。还有CDN,反向代理,分布式文件系统,大数据处理等系统。

此处不详细介绍,大家可以问度娘/Google,有机会的话也可以分享给大家。

七、架构总结

 

以上是本次分享的架构总结,其中细节可参考前面分享的内容。其中还有很多可以优化和细化的地方,因为是案例分享,主要针对重要部分做了介绍,工作中需要大家根据具体的业务场景进行架构设计。 

以上是电商网站架构案例的分享一共有三篇,从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型。除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标)。

关于负载均衡,业务拆分,集群架构,读写分离,分库分表,服务化,消息队列等常用技术和架构实现,本博客将会推出系列文章,进行介绍。欢迎小伙伴们围观。

转载于:https://www.cnblogs.com/qdlixuecai/p/5534370.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_762265.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决ASP.NET网站'__doPostBack' is undefined的脚本错误

最近碰到一个很奇怪的问题! 新发布一个ASP.NET的网站,基于.net 4.0 framework,基本没有用到什么特别新的技术,但是由于给客户预览用的服务器比较老,操作系统用的是Windows 2003,上面默认只支持IIS 6。将网站…

【网站安全】网站被挂木马与777权限的奥妙

某天站长平台的微信群里的一位同学说网站被人挂马了,查了半天也查不到原因。艺龙SEO负责人刘明问了一句“是不是技术把linux系统里网站的核心目录设置777文件权限了”,同学查后发现果然如此。那么,777是什么?老虎机吗?…

分布式网站隔离术

隔离是将系统或资源分隔开,系统隔离是为了在系统发生故障时,能限定传播范围和影响范围,即发生故障后不会出现滚雪球效应,从而保证只有出问题的服务不可用,其他的服务还是可用的。在此介绍的隔离手段有,线程…

不用 PS 和 AI,5个网站能做出更好看的设计

要完成漂亮的设计,一定要掌握 PS、AI、Sketch 等专业的做图工具才可以。其实,现在有很多网站可以帮助不会专业设计工具的我们,做出很多很漂亮的设计,完成自己的设计需求。今天,我们就来介绍一下这些网站。 原型设计 ST…

Android上PhoneGap打包本地网站和在线网站

谢谢刚子提供这么个社区交流平台,特别感谢刚子提供上传权限, 哈哈,今天也发一个简单的Demo上来上来,给社区贡献一点绵薄之力。最近一直关注移动web开发,更多看的是web开发的程序的效果,还没有深入的去编程或…

JavaScript 编程精解 中文第三版 二十一、项目:技能分享网站

二十一、项目:技能分享网站 原文:Project: Skill-Sharing Website 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 If you have knowledge, let others l…

用户登录界面(1.8版本--网站框架改进)

1.创建数据库db_user与表users 1 CREATE DATABASE db_user CHARACTER SET utf8;2 3 CREATE TABLE users (4 userid TINYINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,5 username varchar(20),6 passwd varchar(20),7 email varchar(30),8 priority int9 ); 10…

linux --xampp 配置多个网站

我们想要在本地安装两个测试域名,www.abc.tld, www.xyz.tld, 分别指向到 htdoc 目录下的 abc.tld 和 xyz.tld 文件夹下。tld 是顶级域名 the top domain 的缩写。如果你喜欢,也可以用 abc.com, abc.net 这样的顶级域名来代替。这里使用 tld 主要是为了避…

Dropbox泄密事件仍在蔓延 一家成人网站被爆掉80万帐号密码

上周黑客在暗网相继泄漏了 Dropbox 和 Last.fm 两家公司的上亿条账号密码,暴露了互联网公司在保护用户信息上的严重缺陷。但现在这场“泄密事件”仍没有停止的迹象,最新的消息是黑客团队泄漏了色情网站 Brazzers 近 80 万条用户账号密码。 这个被黑客公布…

Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署动态网站(二)--技术流ken

项目前言 在上一篇博客《JenkinsGitGitlabAnsible实现持续化集成一键部署静态网站(一)--技术流ken》中已经详细讲解了如何使用这四个工具来持续集成自动化部署一个静态的网站。 如果大家可以熟练掌握以上内容,势必会在工作中减轻不小的工作量…

Asp.net网站的简单发布

概述 网站是由一个个页面组成的,是万维网具体的变现形式,关于万维网,网页的方面的理论知识,大家可以看一看这篇博客:万维网文档,在这里就不多说了。网站的发布要到达的一个目的就是,别人可以通过…

SharePoint 2010 类似人人网站内信功能实施

简介:用SharePoint代码加实施的方式,完成类似人人网站内信功能,当然,实现的比较简单,样式也比较难看,只为给大家一个实施的简单思路,如有谬误,还请见谅。当然,还有就是截…

2019最受欢迎开源免费CMS建站系统排行榜

2019独角兽企业重金招聘Python工程师标准>>> 互联网的蓬勃发展,免费且开源的建站系统的层出不穷,而我们经常在网上看见有人问及”哪个CMS系统最好用”、”企业建站用哪个CMS系统最多”等类似问题,我们今天来说一下,201…

“网络推广”企业做了网站效果没有达到自己的营销效果

我们有理由相信每一公司做的设计不是给自己看的,当然是给客户看的,我们长处就在于我们的技术是基础,创意是翅膀,只有充分利用好网络,创意才能把您们的价值体现出来,传播出去。 我们不只是为您们的企业披上外…

一步步学习SPD2010--第十章节--SP网站品牌化(3)--在内容页中识别样式

一步步学习SPD2010--第十章节--SP网站品牌化(3)--在内容页中识别样式 当你在SPD中显示内容页时,尽管设计视图显示了内容页与母版页的融合,你只能辨识储存在内容页的部件的CSS样式。使用页面的代码视图,来辨识储存在内容…

Challenge Checkio(python)—初尝python练习网站

最近在找点python语言练习的网站,发现这个网站不错 http://www.checkio.org/ 页面设计的也比较漂亮,比较适合学习python的语法知识。不过注册这个网站 开始就得解决一个python问题,不过很简单。 1 #python3.3 is inside 2 def checkio(els):…

[Hugo+Netlify]从零开始建立并发布一个网站

现在有越来越多的开发者选择把自己的博客以静态网站的方式托管在 GitHub 上, 这样的方式可以通过诸如 Jekyll, Hexo,Hugo 等等现有的静态博客生成工具, 非常便捷地搭建出一个样式美观的静态博客或文档页面。 通过对比,我选择了Hugo框架来创建网页,使用 N…

现在怎么访问安卓开发者网站

问题描述前两个月还能访问安卓开发者网站,现在就访问不了了,请问有什么方法么,以后想下官方最新的mac版本的ADT都困难。 解决方案1翻墙啊啊啊啊啊啊啊。 解决方案2翻墙软件,大家都懂的! 解决方案3现在是不行了&#xf…

win8 iis安装及网站发布

win8 iis安装及网站发布 系统:win8 环境:vs2012 一:安装IIS 比较win7的安装来说,多选了几个钩钩,不然会报错,偶就遇到这样的错误。 控制面板-》程序和功能-》启动和关闭windows功能,钩钩图例&am…

Svg图片在asp网站上的使用

最近需要做一个动态的根据后台的返回数据而动态显示的导航图,然后我就采用了jqueryajaxSVG矢量图来实现这个功能。 首先,客户给了个ai的矢量图,我对这一块不懂就找以前同事帮我转成了svg图形,听说很简单,但是矢量图是封…