文档章节

购物车异步化

running_egg
 running_egg
发布于 2016/11/22 11:25
字数 444
阅读 36
收藏 1
点赞 0
评论 0

1.使用队列

输入图片说明

2.更核心的价值是解耦

商品原来是一个单表,后来慢慢发展成为了一个全量的商品系统,包括前端、后端整个一套的流程。异步异构完了之后,系统可进行各方面的优化,这样系统的容量也会慢慢接近预期值。然后找到系统容量的最大值,如果超过这个值,整个系统就会宕机。那么,我们会做分流和限流,来保证系统的可用性。否则,这种大流量系统一旦倒下去,需要很长的时间才能恢复正常,会带来很大的损失。

3.可以异构的部分

  • 接单
  • 订单中心
  • 商品

接单

输入图片说明

订单中心

异构出订单中心的存储,支付台帐存储等。 异构出来数据都具有业务针对性存储。数据体量会变小

商品 商品数据库异构

这样就把所有的属性异构处理,针对商品纬度、商品ID等所有数据会异构一份到库存、促销、单品页,后面进行改造的时候,又将数据分A包、B包、C包。京东的业务很复杂,有自营,又有平台数据,A包可能是基础数据,B包可能是扩展数据,C包可能是更加偏的扩展数据。这样,促销系统可能调用的是B包的扩展属性,也有可能调用的是A包的基础属性。单品页访问A包、B包,调的集群是不一样的。这样存储的容量就可以提高两倍,系统的容灾承载力也会提高。 http://www.infoq.com/cn/articles/trading-system-evolution-of-the-jingdong-mall

4.状态机

© 著作权归作者所有

共有 人打赏支持
running_egg
粉丝 3
博文 13
码字总数 3261
作品 0
杭州
程序员
如何避免 async/await 地狱

async/await 让我们摆脱了回调地狱,但是这又引入了 async/await 地狱的问题。 什么是 async/await 地狱 在 Javascript 中进行异步编程的时候,人们总是使用很多 await 语句,很多时候我们的...

极光推送 ⋅ 04/25 ⋅ 0

微信点击链接不能返回视图springMVC,freemarker

大家好,有个问题想请教下,实在无能为力了!下面问题描述~~ 异常流程: 1.微信公众号开发,首页是用html5定位,然后异步加载首页的数据,通过首页底部的购物车链接跳转到购物车页面,链接为购...

大风车呐转呀转 ⋅ 2016/03/22 ⋅ 1

仿盒马微信小程序

冬天来了,寒风吹的瑟瑟发抖是不是不想出门啦? 用盒马小程序,不需要出门,就能买到新鲜的食材。有盒马购新鲜😜 盒马app刚出现,就吸足了眼球。最近看了看盒马界面,很Q,就想着仿照app写...

TeanLee ⋅ 2017/12/04 ⋅ 0

基于Vue全家桶制作的的高仿美团APP

鸣谢:该项目核心部分参考了慕课网精英讲师ustbhuangyi的课程,其余部分高仿美团APP构建。 前端菜鸟项目,大佬们轻喷~ 美团外卖APP 👉 项目演示地址:http://39.108.232.27:9000 👉 GitH...

白小明 ⋅ 2017/09/13 ⋅ 0

大促系统全流量压测及稳定性保证——京东交易架构分享(含PPT)

大家好!我是来自京东商城交易平台的杨超,今天特别高兴能够来给大家分享每年 618 及双十一所做过的工作,我是 2011 年加入京东,在这 5 年中我经历了不少技术演进,也看到了不少变化,在这里...

花生核 ⋅ 2016/06/29 ⋅ 0

Oneproxy 读写分离

基本架构: 写请求全部定向到主库,数据通过日志异步复制到副库,读请求可根据情况路由到主库或者副库,分散读压力目前读的压力平均分到3台服务器,性能提升在20-30%左右 中间件连接池会根据...

zhanjia ⋅ 2016/05/14 ⋅ 0

redis 简单使用总结

最近一段时间与redis接触比较频繁。发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下。本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章...

王清培 ⋅ 2017/07/29 ⋅ 0

微信小程序商城更新最新版 v1.2.2

微信小程序商城更新最新版 v1.2.2,主要改进内容包括: 1、 修复js循环异步加载API时候导致的变量异常; 2、增加后台发布商品选择使用快递时候下单的支持; 3、物流快递费用支持按件数和按重...

javazj ⋅ 2017/07/30 ⋅ 4

redis 使用总结

最近一段时间与redis接触比较频繁。发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下。本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章...

王清培 ⋅ 2017/07/29 ⋅ 0

Yii 2.0开发一个仿京东商城平台

第1章 课程简介 介绍了课程内容、背景和案例展示。 第2章 项目的准备工作 介绍了如何使用PHP依赖管理工具Composer安装Yii2框架,模拟配置真实企业开发项目运行环境和编辑器。 第3章 项目前台...

15543595340 ⋅ 05/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 32分钟前 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 今天 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 今天 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部