摘要: 订票的实现思路 同时借助像ENode这样的框架,我们可以实现in-memory + Event Sourcing的架构。Event Sourcing技术,可以让领域模型的所有状态修改的持久化统一起来,本来要用ORM的方式保存聚合根最新状态的,现在只需要简单的通用的方式保存一个事件即可(一次订票只涉及 阅读全文
posted @ 2019-06-26 14:34 pangkaxxxl 阅读(1033) 评论(0) 推荐(0) 编辑
摘要: 传统电商的思路 如果按照普通电商的思路,把票(站点区间)设计为商品(聚合根),然后为票设计库存数量。我个人觉得是很糟糕的。因为一方面这种聚合根非常多,另一方面,即便枚举出来了,一次购票也一定会影响非常多其他聚合根的库存数量(只要被部分或全部重叠的区间都受影响)。这样的一次订单处理的复杂度是难以评估的 阅读全文
posted @ 2019-06-18 14:34 pangkaxxxl 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 需求简述 12306这个系统,核心要解决的问题是网上售票。涉及到2个角色使用该系统:用户、铁道部。用户的核心诉求是查询余票、购票;铁道部的核心诉求是售票。购票和售票其实是一个场景,对用户来说是购票,对铁道部来说是售票。因此,我们要设计一个在线的网站系统,解决用户的查询余票、购票,以及铁道部的售票这3 阅读全文
posted @ 2019-06-08 14:33 pangkaxxxl 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 豆瓣整个基础架构可以粗略的分为在线和离线两大块。在线的部分和大部分网站类似:前面用LVS做HA,用Nginx做反向代理,形成负载均衡的一 层;应用层主要是做运算,将运算结果返回给前面的用户,DAE平台是这两年建起来的,现在大部分豆瓣的应用基本都跑在DAE上面了;应用后面的基础服务也 跟其他网站差不多 阅读全文
posted @ 2019-05-30 14:32 pangkaxxxl 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 1. Vm虚拟机下Linux扩展原有磁盘空间,详细步骤如下: 注意:linux只能扩展磁盘容量而不能减小, 所填写的容量为总容量,即包含已分区的磁盘,扩展容量时不能有快照哟,大家可以先把快照删除掉。 2. 启动客户机 fdisk –l 看到sda1和sda2已使用 指令:fdisk -l 3. fd 阅读全文
posted @ 2019-05-30 11:05 pangkaxxxl 阅读(319) 评论(0) 推荐(0) 编辑
摘要: 水平分层 水平维度的划分,在大中型互联网后台业务系统的设计中非常基础,在平台的每一代技术体系中都有体现。这里还是简单介绍一下,为后续垂直维度的延伸讲解做铺垫: 接口层主要实现与Web页面、移动客户端的接口交互,定义统一的接口规范,平台最核心的三个接口服务分别是内容(Feed)服务、用户关系服务及通讯 阅读全文
posted @ 2019-05-20 14:32 pangkaxxxl 阅读(139) 评论(0) 推荐(0) 编辑
摘要: web应用通常存在的10大安全问题 1、SQL注入 拼接的SQL字符串改变了设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库 服务器, SQL Injection与Command Injection等攻击包括在内 2、跨站脚本攻击(XSS或css) 跨站脚本(Cross-Site Sc 阅读全文
posted @ 2019-05-13 14:31 pangkaxxxl 阅读(940) 评论(0) 推荐(0) 编辑
摘要: 我在安装软件的时候修改了etc/profile里环境变量,导致无法登录解决 不要在 etc/profile里设置 export PATH这样会导致重启后登录不了系统 在登录界面 alt +ctrl+f2进入命令模式,如果不是root用户需要键入 /usr/bin/sudo /usr/bin/vi / 阅读全文
posted @ 2019-05-13 10:25 pangkaxxxl 阅读(3011) 评论(0) 推荐(0) 编辑
摘要: 一、三种坏人与servlet安全 网络攻击者 对应的servelt安全规范 假冒者 认证 非法升级者 授权 窃听者 机密性 数据完整性 认证可以防止“假冒者”攻击,授权可以防止“非法升级者”攻击,机密性和数据完整性可以防止“窃听者”攻击。 二、认证与授权 Web容器进行认证与授权的过程: 客户端:浏 阅读全文
posted @ 2019-05-06 14:30 pangkaxxxl 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输 阅读全文
posted @ 2019-04-30 14:29 pangkaxxxl 阅读(3532) 评论(0) 推荐(0) 编辑