大型网站架构系列:电商网站架构案例(3)

news/2024/5/10 2:34:20/文章来源:https://blog.csdn.net/u012598110/article/details/50739238

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

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,有机会的话也可以分享给大家。

七、架构总结

 

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

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

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

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

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

相关文章

大型网站架构系列:负载均衡详解(1)

面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分…

大型网站架构系列:负载均衡详解(3)

本次分享大纲 软件负载均衡概述Ngnix负载均衡Lvs负载均衡Haproxy负载均衡本次分享总结 一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负载均衡在互联网领域大量使用。常用…

大型网站架构系列:负载均衡详解(4)

本文是负载均衡详解的第四篇,主要介绍了LVS的三种请求转发模式和八种负载均衡算法,以及Haproxy的特点和负载均衡算法。具体参考文章,详见最后的链接。 三、LVS负载均衡 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于19…

大型网站架构系列:分布式消息队列(一)

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务(见第二篇:大…

大型网站架构系列:消息队列(二)

本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇…

12个最佳的免费学习编程的游戏网站

在这篇文章中,我们对 200 多个编程游戏网站的各个方面进行了评估,包括是否免费、是否自由开源、是面对菜鸟还是有经验的程序员、支持的编程语言等等,然后遴选出这 12 个上佳的免费的编程游戏网站,希望能让你或你的朋友(或者你的孩…

11个最值得Java开发者收藏的网站

Java是一种面向对象的编程语言,由Sun Microsystems公司在1995年的时候正式发布。直到今天,Java都一直是最受欢迎的编程语言之一。如今,Java应用于各种各样的技术领域,例如网站开发、Android开发、游戏开发、大数据等等。 在世界各…

2020-08-27 KK日记,记录一下使用flask做的看小说网站

1、前言 虽然一直干着运维的工作,但是对编程却有莫名的兴趣,于是就依仗着大学时的一些编程基础,在空闲时间自学了python、flask框架、bootstrap、jquery,html等。并用此写了一个看爽文的“工具”。 2、设计思路 通过爬虫爬取感兴…

【易懂教程】在Github上搭建网站

首先,还是要说一下“写在前面的话”,文章属于个人学习笔记,抛砖引玉,希望能对你有微薄的帮助。 操作步骤: 既然是易懂教程,当然是图文并茂更能让你理解,将会大量采用图文形式进行讲解。 首先你…

手把手教你搭建网站环境——基于node后台的web服务

战前准备 下载好xftp(必备,用于上传你要部署的文件);xshell作为windows而言是个非常好用的工具,不过像阿里本来就有控制台,倒不是必备,但是那个控制塔的字符丑得一匹,实在看不下去,我用xhell只…

网站/织梦首页或文章分享微信带缩略图和简介

1.在微信公众号号的基本设置里 2.公众号设置-功能设置-绑定好对应的域名 3.然后下载wechat.php文件下载,放在网站根目录(下方提供了下载地址) 4.把这段代码放到需要的页面里,url改成自己的域名 ig({ debug: 0,//如果分享失败&a…

如何实现分享网站文章到微信朋友圈时显示指定缩略图或LOGO

微信在分享第三方网站是不显示缩略图和描述的,如下图所示 要解决这个问题必须调用微信JS-SDK接口,下面讲一下如何调用接口 方法一: 第一部分 准备步骤 注册微信公众号。 通过左侧导航“开发”–“基本配置”进入。通过开发者ID及密码调用获取…

我的第一篇文章 ^_^庆祝我的个人网站开张

长沙开始下雨了,早上出去冻的不行,这就是南方的天气,没办法。想想我将要去读研的哈尔滨,现在已经在10度一下了,真不知道到时候怎么过。 下午去交研究生登记表,一份成绩单要盖4个章,每次办个什么…

discuz网站没备案无执照接入支付宝充值功能

discuz个人网站没备案无执照接入支付宝充值功能 文章目录 事情是这样的一、支付宝当面付是什么?二、如何申请当面付接口1.登录 支付宝商家中心2.点击“产品中心”,支付产品中选择当面付3.点击“立即开通”4.按步骤填写 三、创建应用及生成公钥和私钥1.登…

tuzicms企业网站系统安装图文教程

TuziCMS(简称TC)是基于ThinkPHP 框架开发的企业网站内容管理系统,国内PHPMYSQL 开源建站程序,它具有操作简单、功能强大、稳定性好、扩展性强,二次开发及后期维护方便,可以帮您快速构建起一个强大专业的企业…

如何安装配置TuziCMS网站程序模板

如何安装配置TuziCMS网站程序模板 1.登录网站后台 2.进入网站管理后台首页 3.打开“系统设置”-“模板管理” 4.将设计好的模板放置在程序Public目录 电脑模板:Public\Home 手机模板:Public\Mobile 5.安装配置模板 电脑模板默认风格:配置的…

兔子(tuzicms)网站程序及数据库迁移搬家教程

前言:网站的迁移搬家,涉及到两个方面,一是网站程序的迁移,二是网站数据库的迁移。下面以线上网站程序搬家迁移到本地开发环境为例讲解。 一.程序的迁移搬家 1、登录购买的网站服务器 打开服务器管理后台文件管理器&a…

从零开始布置你的个人网站(一)

准备 之前用腾讯云的学生购买了一个1元服务器,但是一直没有用起来,最近项目不太忙,准备自己搭建一个线上环境。 安装ubuntu环境 安装ubuntu的16.04.1的32环境 登录ubuntu系统,可以直接使用腾讯云的登录,也可以通过各…

从零开始部署个人网站(二)--Laravel环境

部署Laravel环境 部署完基本LAMP环境之后,因为我的项目中会使用到Laravel,所以接下来继续搭建Laravel环境。 首先要使用Laravel最好先安装composer。 安装composer ubuntu中安装composer 可以下面两个命令来执行 命令一: curl -sS https://getcompose…