领域驱动设计&中台/金融支付系统的改造之路0 码力 | 28 页 | 560.52 KB | 1 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造⼈人员,架构师,测试⼈人员等关键⻆角⾊色都 要参与其中 ‣开放空间:有⾜足够的空间可以将事件流 可视化,让⼈人们可以交互讨论 ‣彩⾊色即时贴:⾄至少三种颜⾊色 活动准备 寻找领域事件 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 划分限界上下⽂文 什什么是事件? 为什什么⽤用事件? 如何进⾏行行事件⻛风暴暴? 事件:领域专家关⼼心的,在业务上真实 发⽣生的事 例例1: 客户订单已提交 例例2: 对账已完成,每⽉月末夜间触发 域专家和⼯工作坊参与者⼀一起明确在业务上究 竟是什什么领域模型发⽣生了了什什么改变,最终的 软件系统需要关注业务过程中发⽣生的业务数 据的变化。 事件⻛风暴暴示例例 订单 已创建 订单 已⽀支付 商城库存 已扣减 仓库库存 已占⽤用 商品 已创建 订单 已撤销 商城库存 已增加 出库单已 ⽣生成 出库单已 发货 投诉单 已创建 投诉单已 处理理 商城库存 已增加 商品已 编辑 退货单已 创建 退货单已 审核 订单已 退货 ⼊入库单 已创建 ⼊入库单 已⼊入库 仓库库存 已增加 寻找命令 事件⻛风暴暴 命令⻛风暴暴 寻找聚合 什什么是命令? 为什什么⽤用命令? 如何进⾏行行命令⻛风暴暴? 命令:什什么活动产⽣生了了事件 例例1: 提交客户订单 例例2: 启动夜间对账 事件是业务上的输出,命令是业务 上的输⼊入。命令以及相应⻆角⾊色可以0 码力 | 54 页 | 3.85 MB | 1 年前3
美团点评2018技术年货美团服务体验平台对接业务数据的最佳实践-海盗中间件 167 ...................................................................... 美团点评智能支付核心交易系统的可用性实践 176 ...................................................................... 卫星系统——酒店后端全链路日志收集工具介绍 亿,存储消息量近 400TB,高峰期集群 QPS 达 650万/秒。 面对流量的成倍增长,CAT 在通信、计算、存储方面都遇到了前所未有的挑战。整个系统架构也经历了 一系列的升级和改造,包括消息采样聚合、消息存储、业务多维度指标监控、统一告警等等,项目最终稳 定落地。为公司未来几年内业务流量的稳定增长,打下了坚定的基石。 经过 7 年的持续建设,CAT 也在不断发展,我们也希望更好的回馈社区,将 CAT 3.0 开源发布,支持多语言客户端及多项性能提升 - 美团技术团队 性能提升 性能提升 消息采样聚合 消息采样聚合在客户端应对大流量时起到了至关重要的作用,当采样命中或者内存队列已满时都会经 过采样聚合上报。采样聚合是对消息树拆分归类,利用本地内存做分类统计,将聚合之后的数据进行 上报,减少客户端的消息量以及降低网络开销。 通信协议优化 CAT 客户端与服务端通信协议由自0 码力 | 229 页 | 61.61 MB | 1 年前3
领域驱动设计&中台/如何让DDD落地如何从需求到DDD? 我想要⼀一个电商 平台,我可以在 上⾯面卖东⻄西 ? Event Storming⾥里里缺少了了什什么信息 提交订单的时候 要做什什么检查? 如何添加商品? ⽀支付订单的时候和 ⽀支付宝对接的逻辑 是什什么样的? 魔⻤鬼隐藏在细节之中 今天既然是讲落地,那么就从⼀一个实际需求出发,我们看看 如何把需求拆解成⽤用户故事,然后如何把⽤用户故事转变成领 域故事,最后领域故事⼜又如何变成为代码。 以撤单,查看订单的状态,对订单进⾏行行⽀支付(⽀支付宝)。⽀支付成功后,仓储 管理理员会收到出库请求,进⾏行行配货并发货。同时,买家可以查看物流状态以 及确认收货。 事件⻛风暴暴的结果 事件⻛风暴暴得到的命令和事件就没⽤用了了吗? 订单 已创建 库存 已锁定 提交 订单 ⽤用户 SubmitOrderCommand OrderCreated StockLocked 订单聚合创建订单服务 接收 接收 仓库聚合的事件订阅者 仓库聚合锁定库存服务 发送 LockStockCommand ⽣生成 ⽣生成 接收 ⽣生成 QueryOrderCommand 订单域查询服务 接收 OrderList ⽣生成 需求分析到⽤用户故事 Story6 创建订单 作为⼀一个商城顾客 我可以确定购物⻋车中的商品和数量量,然后提交商品订单 为了了在商城上购买商品 Acceptance0 码力 | 32 页 | 3.25 MB | 1 年前3
付钱拉金融云系统架构演进和最佳实践业务模型 BUSINESS MODEL 服务/方案 基础产品 基础支撑 金融云服务 聚合支付 乐享理财 帮你贷 八方数据 … 资金管理 供应链 分期支付 扫码分销 … 基础支付1 SDK支付 扫码支付 分期支付 比特币 银行卡 开户 监控 报表 … 基础支付2 单笔代收 单笔代付 语音支付 余额查询 批量代收 身份鉴权 批量代付 快捷 … 账务 开户 记账 对账 账户托管 数据分析 … 运营后台 用户系统 商户后台 官网 企业网银 个人网银 解决方案 实时监控 业务属性 BUSINESS ATTRIBUTES 实时性、一致性 安全性、中间账户 聚合的复杂性、第三方依赖性 金融系统 The complexity of aggregation, third-party dependency Financial system Security 冷热数据隔离 读写分离 分库分表 容灾 限制 池化 ACK ... 变化 VARIETY adapter oltp db 银行/第三方支付 adapter service1 service2 银行/第三方支付 service3 … adapter service1 service2 service3 … adapter service1 service20 码力 | 35 页 | 6.05 MB | 1 年前3
Laravel 6.0 中文文档Laravel 中文学习资源:https://xueyuanjun.com 125 少数情况下,我们需要解析特定分类下的所有绑定,例如,你正在构 建一个接收多个不同 Report 接口实现的报告聚合器,在注册 完 Report 实现之后,可以通过 tag 方法给它们分配一个标签: $this->app->bind('SpeedReport', function () { // }); URL 不做 CSRF 安全校验 有时候我们需要从 CSRF 保护中间件中排除一些 URL,例如,如果 你使用了第三方支付系统(如支付宝或微信支付)来处理支付并用到 他们提供的回调功能,这时候就需要从 Laravel 的 CSRF 保护中间 件中排除回调处理器路由,因为第三方支付系统并不知道要传什么 token 值给我们定义的路由。 通常我们需要将这种类型的路由放到文件 routes/web 如果这个验证规则验证失败了,将会生成如下错误消息: The credit card number field is required when payment type is cc. 如果你想要替换支付类型值 cc,可以在 validation 语言文件中定 义一个 values 数组来指定自定义的表示值: 'values' => [ 'payment_type' => [ 'cc' =>0 码力 | 1442 页 | 14.66 MB | 1 年前3
Laravel 5.6 中文文档return Storage::disk('s3'); }); 标签 少数情况下,我们需要解析特定分类下的所有绑定,例如,你正在构建一个接收多个不同 Report 接口实现的报告聚合器,在注册完 Report 实现之 后,可以通过 tag 方法给它们分配一个标签: $this->app->bind('SpeedReport', function () { // }); 置该实现。 排除指定 URL 有时候我们需要从 CSRF 保护中间件中排除一些 URL,例如,如果你使用了第三方支付系统(如支付宝或微信支付)来处理支付并用到他们提供的 回调功能,这时候就需要从 Laravel 的 CSRF 保护中间件中排除回调处理器路由,因为第三方支付系统并不知道要传什么 token 值给我们定义的路 由。 通常我们需要将这种类型的路由放到文件 routes/web 中,该文件允许你配置应用的日志通道,因此请务必查看每个可用通道及其配置 项。下面我们就来看看其中某些配置项。 默认情况下,Laravel 使用 stack 通道来记录日志信息,stack 通道被用于聚合多个日志通道到单个通道,更多关于构建 stack 的信息,请查看下面 的文档。 配置通道名称 默认情况下,Monolog 通过与当前环境匹配的「通道名」实例化,例如 production 或 local,要改变这个值,添加0 码力 | 377 页 | 14.56 MB | 1 年前3
Laravel 5.3 中文文档上有关于此特性的免费视频教程。 Laravel Notifications 为我们提供了简单、优雅的 API 用于在不同的发行渠道中发送通知,例如邮 件、SMS、Slack 等等。例如,你可以定义一个单据已经支付的通知,然后通过邮件和 SMS 发送这 本文档由 Laravel 学院(LaravelAcademy.org)提供 Laravel 学院致力于提供优质 Laravel 中文学习资源 4 return Storage::disk('s3'); }); 标签 少数情况下,我们需要解析特定分类下的所有绑定,例如,你正在构建一个接收多个不 同 Report 接口实现的报告聚合器,在注册完 Report 实现之后,可以通过 tag 方法给它们分配一 个标签: $this->app->bind('SpeedReport', function () { // 值和 Session 中存储的 token 是否一致。 2、从 CSRF 保护中排除指定 URL 有时候我们需要从 CSRF 保护中排除一些 URL,例如,如果你使用了 Stripe 来处理支付并用到 他们的 webhook 系统,这时候就需要从 Laravel 的 CSRF 保护中排除 webhook 处理器路由, 因为 Stripe 并不知道要传什么 token 值给我们定义的路由。0 码力 | 691 页 | 9.37 MB | 1 年前3
Laravel 5.2 中文文档->needs('$maxOrderCount') ->give(10); 标签 少数情况下我们需要解析特定分类下的所有绑定,比如,也许你正在构建一个接收多个不 同 Report 接口实现的报告聚合器,在注册完 Report 实现之后,可以通过 tag 方法给它们 分配一个标签: $this->app->bind('SpeedReport', function () { // }); DB::table('roles')->lists('title', 'name'); foreach ($roles as $name => $title) { echo $title; } 聚合函数 队列构建器还提供了很多聚合方法,比如 count, max, min, avg, 和 sum,你可以在构造查询 之后调用这些方法: 本文档由 Laravel 学院(LaravelAcademy.org)提供 $users = DB::table('users')->count(); $price = DB::table('orders')->max('price'); 当然,你可以联合其它查询子句和聚合函数来构建查询: $price = DB::table('orders') ->where('finalized', 1) ->avg('price');0 码力 | 377 页 | 4.56 MB | 1 年前3
Laravel 5.1 中文文档token 值和 session 中的存 储的作对比。 5.2 从 CSRF 保护中排除 URIs 有时候我们想要从 CSRF 保护中排除一些 URIs,比如,如果你在使用 Stripe 来处理支付并 用到他们的 webhook 系统,这时候你就需要从 Laravel 的 CSRF 保护中排除 webhook 处理 器路由。 你可以通过在 VerifyCsrfToken 中间件中将要排除的 URIs dependency... }); 2.3 标签 少数情况下我们需要解析特定分类下的所有绑定,比如,也许你正在构建一个接收多个不同 Report 接口实现的报告聚合器,在注册完 Report 实现之后,可以通过 tag 方法给它们分配 一个标签: $this->app->bind('SpeedReport', function () { // }); $title; } 2.5 聚合函数 队列构建器还提供了很多聚合方法,比如 count, max, min, avg, 和 sum,你可以在构造查询 之后调用这些方法: $users = DB::table('users')->count();$price = DB::table('orders ')->max('price'); 当然,你可以联合其它查询字句和聚合函数来构建查询: $price0 码力 | 307 页 | 3.46 MB | 1 年前3
共 165 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17













