支付模块 实际开发工作中经常会遇见如下场景,一个支付模块,一个订单模块,有一定依赖,一个同事负责支付模块,另一个同事负责订单模块,但是开发支付模块的时候要依赖订单模块的相关类 ,方法,或者工具类,这些还没开发出来,看不到一个完整的订单业务逻辑,可能只拿到了订单的Order类,但是呢不能影响我们后端的并行开发,就像前端和后端之间的并行开发,后端之间也有并行开发,后端的项目有时候是非常大的,这个时候该怎么办,本章支付模块和下节订单模块就要模拟这种场景,提高自己的胜任跨业务开发的抽象开发能力,这种能力…
购物车模块 数据库表设计 购物车表 CREATE TABLE mmall_ cart ( 'id' int(11) NOT NULL AUTO_ INCREMENT, 'user_ id' int(11) NOT NULL, 'product_ id' int(11) DEFAULT NULL COMMENT ' 商品id', 'quantity' int(11) DEFAULT NULL COMMENT '数量', 'checked' int(11) DEFAULT NULL COMMENT…
分类管理模块 数据表结构设计 分类表 CREATE TABLE.mmall_ category' ( 'id' int(11) NOT NULL AUTO_ INCREMENT COMMENT ' 类别Id', 'parent_ id' int(11) DEFAULT NULL COMMENT '父类 别id当id=0时说明是根节点,一级类别' , 'name' varchar(50) DEFAULT NULL COMMENT ' 类别名称', 'status' tinyint(1) DEFAU…
数据表结构设计 关系设计 为什么不用外键? 分库分表有外键会非常麻烦,清洗数据也很麻烦.数据库内置触发器也不适合采用. 查业务问题的后悔药--时间戳 create_time 数据创建时间 update_time 数据更新时间 可以用于查询业务,主要要存储datetime类型. 用户模块 用户表 create table mmall_user( id int(11) PRIMARY key not null auto_increment comment '用户表id', username varc…
Redis分布式锁 Redis分布式锁命令 setnx当且仅当 key 不存在.若给定的 key 已经存在,则 setnx不做任何动作.setnx 是『set if not exists』(如果不存在,则 set)的简写,setnx 具有原子性.  getset先 get 旧值,后set 新值,并返回 key 的旧值(old value),具有原子性.当 key 存在但不是字符串类型时,返回一个错误;当key 不存在的时候,返回nil ,在Java里就是 null.  expire 设置 key…
阿里云服务 购买 连接 购买域名 域名备案 域名解析 源配置步骤 资源地址 http://learning.happymmall.com/ 配置阿里云的yum源 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Bas…
准备工作 Linux系统安装 云服务器部署 概要 申请和配置 域名的购买.解析.配置.绑定流程 用户创建实操 环境安装及部署 JDK.Tomcat.Maven下载安装及配置 vsftpd下载安装及配置 nginx下载安装及配置 nginx反向代理服务器安装与配置 Lunix下nginx反向代理服务器域名解析配置实操 Mysql下载安装及配置 git下载安装及配置 自动化发布shell脚本 系统环境变量 FTP服务下载 Windows请在 http://learning.happymmall.co…
数据表结构设计 唯一索引unique,保证数据唯一性 CREATE TABLE `mmall_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户表id', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '用户密码,MD5加密', `email` varchar(50) DEFAULT NULL, `phone…
继上篇文章[微信开发之微电商网站]技术笔记之一,昨日做了日志处理的功能. 对于现在的应用程序来说,日志的重要性是不言而喻的.很难想象没有任何日志记录功能的应用程序运行在生产环境中.日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息.状态信息.调试信息和执行时间信息等.在生产环境中,日志是查找问题来源的重要依据.应用程序运行时的产生的各种信息,都应该通过日志类库来进行记录. 废话不多说了,附上日志类库的源代码:  /** * 日志处理类 * * @since alpha 0.0.1…
阅读目录 前言 解决数据一致性的方案 回到DDD 设计 实现 结语 一.前言 之前的十一篇把用户购买商品并提交订单整个流程上的中间环节都过了一遍.现在来到了这最后一个环节,提交订单.单从业务上看,这个动作的背后包含了多个业务操作,根据用户填写的订单信息生成订单.扣除使用的余额和积分.使用选择的礼券等等.其中涉及到多个上下文的操作,包括新引入的订单上下文,那么如何同时与多个上下文进行数据的写入操作是本篇主要想讨论的问题. 二.解决数据一致性的方案 分布式系统中的多个子系统之间的同时写入问题,也就是…