Newbe.Claptrap 项目是笔者正在构建以反应式.Actor模式和事件溯源为理论基础的一套服务端开发框架.本篇我们将来了解一下框架在水平扩展方面的能力. 前情提要 时隔许久,今日我们再次见面.首先介绍一下过往的项目情况: 第一次接触本框架的读者,可以先点击此处阅读本框架相关的基础理论和工作原理. 日前,我们也编写了一些预热文章和工具,读者可以通过以下链接进行了解: 谈反应式编程在服务端中的应用,数据库操作优化,从 20 秒到 0.5 秒 docker-mcr 助您全速下载 dotnet…
让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商品和数量 向购物车中添加商品 从购物车中移除特定的商品 安装项目模板 首先,需要确保已经安装了 .NetCore SDK 3.1 .可以点击此处来获取最新的版本进行安装. SDK 安装完毕后,打开控制台运行以下命令来安装最新的项目模板:   dotnet new --install Newbe.Cl…
Newbe.Claptrap 框架中为什么用 Claptrap 和 Minion 两个词?最近整理了一下项目的术语表.今天就谈谈为什么起了 Claptrap 和 Minion 两个名字. Claptrap 简单来说 Claptrap = Actor + 事件溯源 Claptrap 是本框架定义的一种特殊 Actor.除了上文中提到 Actor 两种特性之外,Claptrap 还被定义为具有以下特性: 状态由事件进行控制.Actor 的状态在 Actor 内部进行维护.Claptrap 同样也是如…
接上一篇 Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车 ,我们继续要了解一下如何使用 Newbe.Claptrap 框架开发业务.通过本篇阅读,您便可以开始尝试使用 Claptrap 实现业务了. 开篇摘要 本篇,我通过实现 “清空购物车” 的需求来了解一下如何在已有的项目样例中增加一个业务实现. 主要包含有以下这些步骤: 定义 EventCode 定义 Event 实现 EventHandler 注册 EventHandler 修改 Grain 接口 实现 G…
Newbe.Claptrap 框架非常适合于解决具有并发问题的业务系统.火车票售票系统,就是一个非常典型的场景用例. 本系列我们将逐步从业务.代码.测试和部署多方面来介绍,如何使用 Newbe.Claptrap 框架来构建一个简易的火车票售票系统. 吹牛先打草稿 让我们来首先界定一个这个简易的火车售票系统所需要实现的业务边界和性能要求. 业务边界 该系统仅包含车票的余票管理部分.即查询剩余座位,下单买票减座. 而生成订单信息,付款,流量控制,请求风控等等都不包含在本次讨论的范围中. 业务用例 查…
Newbe.Claptrap 框架中 State 和 Event 应该如何理解?最近整理了一下项目的术语表.今天就谈谈什么是 Event 和 State. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 事件 Event Claptrap 是基于事件溯源的 Actor 模式.事件自然就起到了至关重要的作用. 想要操作 Claptrap 就需要对其传递事件.事件也是改变 Claptrap State 的…
Newbe.Claptrap 框架如何实现多级生命周期控制?最近整理了一下项目的术语表.今天就谈谈什么是 Claptrap Lifetime Scope. 特别感谢 kotone 为本文提供的校对建议! Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. Claptrap 生命周期按照笔者的看法分为两大类进行阐述:运行时生命周期和设计时生命周期. 运行时生命周期 运行时生命周期是指 Claptrap 系统…
Newbe.Claptrap 框架如何实现 Claptrap 的多样性?最近整理了一下项目的术语表.今天就谈谈什么是 Claptrap Design 和 Claptrap Factory. 特别感谢 kotone 为本文提供的校对建议! Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. Claptrap Design 实现 Claptrap 的高可定制性 Claptrap 拥有较高的可定制性.开发者可以…
Newbe.Claptrap 框架如何实现在多种框架之上运行?最近整理了一下项目的术语表.今天就谈谈什么是 Claptrap Box. 特别感谢 kotone 为本文提供的校对建议! Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. Claptrap Box 使 Claptrap 能够运行在更多框架之上 Claptrap 是基于 Actor 模式实现的一种对象.其仅具备处理事件和状态控制相关的能力.因此…
接上一篇 Newbe.Claptrap 框架入门,第二步 —— 简单业务,清空购物车 ,我们继续要了解一下如何使用 Newbe.Claptrap 框架开发业务.通过本篇阅读,您便可以开始学会添加一个全新的 Claptrap. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如果您是首次阅读本系列文章.建议可以先从本文末尾的入门文章开始了解. 开篇摘要 本篇,我通过实现 “管理库存” 的需求来了解一下如何在已有的项目样例中定义一个 Claptrap. 结合前一篇的基本步骤…