event-driven-design相关内容

为什么要分别表示命令和事件?

强调事件的架构中的命令和事件有什么区别?我能看到的唯一区别是命令通常是由系统外部的参与者获取/调用的,而事件似乎是由系统中的处理程序和其他代码获取的.但是,在我见过的许多示例应用程序中,它们具有不同(但功能相似)的接口. 解决方案 命令可以被拒绝. 事件发生了. 这可能是最重要的原因.在事件驱动架构中,毫无疑问,引发的事件代表了已经发生的事情. 现在,因为命令是我们想要发 ..
发布时间:2022-01-23 08:23:09 其他开发

事件驱动架构的jQuery插件?

是否有任何事件驱动架构 jQuery 插件? 第 1 步:订阅 订阅者订阅中间的事件处理函数,并传入一个回调方法,以及他们正在监听的事件的名称...... 即两个绿色订阅者将监听 p0 事件.蓝色的订阅者将监听 p1 事件. 第 2 步:p0 事件由另一个组件触发到事件处理程序 一个 p0 事件被触发到事件处理程序 事件处理程序通知它的订阅者该事件,调用他们在订阅时 ..

在 kafka 事件驱动的主干中保持服务同步

假设我在系统设计中使用 Kafka 作为我所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库.现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务只能在它上线后才能使用事件,因此不会有很多丢失的数据.我想要一个策略,这样我就不必通过编写脚本来回填我的内部数据库. 我可以采用哪些不会给 Kafka & 带来巨大负载的很酷的策略?没有在我创建的新服务中使用大量脚本来回 ..

事件驱动架构……无限循环

我有一个事件驱动架构,其中 A 等待 B 的更改,B 等待 C 的更改,C 等待 A 的更改,形成一个循环. 现在,如果 B 发生变化,则 A 向 C 触发一个事件,C 触发事件,B 触发事件,A 触发事件,C 触发事件......无限. 我现在可以更改我的程序以不包含此循环,但我担心我可能会在以后将自己置于无法做到的角落.在设计基于事件的系统时,如何防止此类事情发生? 解决方案 ..
发布时间:2021-11-17 02:32:00 其他开发

同步关注的事件溯源

我一直在努力理解如何设计一个使用支持同步请求的事件源驱动的事件驱动的后端.据我所知,要利用事件源,您必须开发系统来对事件做出反应,以便在必要时可以重播它们以重新创建您的状态.为此,这意味着我们正在尝试将事件触发器和事件处理程序分离. 如果我们假设客户端发送请求更新某些数据的情况,我们如何在使用事件驱动系统时适应这种同步请求/响应模型?您认为以下步骤是以事件驱动方式处理请求的正确方法吗: ..
发布时间:2021-11-17 02:23:39 其他开发

“通知和检查"的名称发布订阅架构?

基本的发布订阅架构问题.在高层次上,在设计 pubsub 时,我有时会面临两种架构之间的选择: 发布突变或“新状态". 某些数据库状态发生了变化,发布者通过 pubsub 通知该更改.但是它们在消息中包含了足够的信息,因此订阅者不需要在数据库上进行查找.想象一下,订阅者有一个数据库缓存.它可以接收突变或新状态,并在不进行查找的情况下更新其缓存. 我的问题是,这两种类型的架构有通用 ..

如果在处理步骤中发生故障,如何使 Spring Cloud 流 Kafka 流绑定器重试处理消息?

我正在使用 Spring Cloud Stream 处理 Kafka Streams.在消息处理应用程序中,有可能会产生错误.所以消息不应该被提交并再次重试. 我的申请方法- @Beanpublic Function, KStream>过程() {返回(输入)->{KStreamkt = input.flatMap ..

在 kafka 事件驱动的主干中保持服务同步

假设我在系统设计中使用 Kafka 作为我所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库.现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务只能在它上线后使用事件,因此不会有很多数据丢失.我想要一个策略,这样我就不必通过编写脚本来回填我的内部数据库. 我可以采用哪些不会对 Kafka 造成巨大负载的很酷的策略?没有考虑到大量脚本来回填我创建的新服务中的数据? ..

带有 Actor 的设计模式

基于演员的范式非常酷.它的有效扩展能力使其成为必须评估任何并发系统的范例.我已经阅读了一些关于它的内容,并且对核心意图有一个不错的想法:用消息和多个“参与者"驱动昂贵的操作,以最大限度地减少由于请求/响应交互而导致的等待,从而增加系统的吞吐量.但是,我还没有充分了解人们与演员一起使用的设计模式.我正在寻找基于角色的系统的设计模式. actor 设计模式的一个常见示例是一个系统,其中有一个主协 ..

ZeroMQ,我们可以使用 inproc:transport 和 pub/sub 消息传递模式吗

场景: 我们正在评估事件驱动机制的 ZeroMQ(特别是 jeroMq). 应用程序是分布式的,其中多个服务(发布者和订阅者都是服务)可以存在于同一个 jvm 中,也可以存在于不同的节点中,这取决于部署架构. 观察 为了玩耍,我使用 jero 创建了一个 pub/sub 模式,使用 inproc: 作为传输mq(版本:0.3.5) 线程发布是可以发布的(看起来要发布了 ..
发布时间:2021-06-23 18:45:43 Java开发

回合制游戏设计:事件驱动与游戏循环

我正在用Java创建我的第一个游戏.游戏是大富翁.我正在为如何设计游戏以基于回合结构(管理玩家回合)建模而苦苦挣扎.我想允许一个人类控制的玩家和一个或多个AI控制的玩家一起玩游戏. 我的具体问题是我不知道是否实施游戏循环,这意味着可以管理玩家和与大富翁游戏直接相关的变量的循环(例如,提示每个玩家选择他们的回合,将回合增加到下一个玩家,或依次从每个玩家那里掷骰子.我指的不是“游戏循环"一词的低 ..
发布时间:2021-05-04 21:09:11 Java开发

DDD-跨有界上下文边界的聚合根身份使用

在域模型中为实体身份建模的一种建议方法是创建值对象,而不是使用原始类型(例如,在C#中): 公共类CustomerId{公开长号{放;}} 在我看来,此类应在整个应用程序中使用,而不仅应在域模型中使用.它们与命令和事件一起可以为有限的上下文定义服务协定.现在,在消息/事件驱动的体系结构中,具有多个有界上下文且每个上下文具有单独的服务协定,很容易遇到圈子依赖关系. 在有界上下文之间的通信 ..
发布时间:2021-04-24 21:12:39 C#/.NET

同步关注的事件来源

我努力了解如何设计可以使用支持同步请求的事件源进行事件驱动的后端.据我了解,要利用事件源,您必须开发系统以对事件做出反应,以便在必要时可以重播事件以重新创建状态.为此,这意味着我们正在尝试使事件触发器和事件处理程序脱钩. 如果我们假设客户端发送请求更新某些数据的情况,那么在使用事件驱动系统时,我们如何适应这种同步请求/响应模型?您是否可以说以下步骤是以事件驱动的方式处理请求的正确方法: ..
发布时间:2021-04-09 19:04:38 其他开发

“通知和检查"的名称pubsub体系结构?

基本pubsub体系结构问题.从较高的角度来看,在设计pubsub时,有时会在两种体系结构之间做出选择: 发布突变或“新状态". 某些数据库状态发生了变化,发布者通过pubsub通知了该更改.但是它们在消息中包含足够的信息,因此订户不需要在DB上进行查找.假设订户具有数据库的缓存.它可以接收突变或新状态,并在不进行查找的情况下更新其缓存. 通知并检查发布者仅通知“有新变化",这提 ..

对于相同的技术,轮询和事件驱动的编程是否有不同的用语?

我研究了中断与周期性轮询的关系,并了解了不必等待轮询的中断的优点.在我看来,轮询就像事件驱动的编程一样,或者至少类似于侦听器,而轮询所做的实际上就像侦听输入或输出.您同意还是误解了轮询(周期性侦听)与事件驱动的编程(也称为所谓的侦听器)之间的重要区别? 解决方案 不,相反,中断驱动的编程与事件驱动的编程在硬件级别上差不多.中断驱动代码和事件驱动代码都在运行代码之前等待事件,而轮询将尝试查询 ..

使用MDA时,是否应区分幂等事件处理程序和非幂等事件处理程序?

该问题假定使用事件源。 通过重播事件重建当前状态时,事件处理程序应该是幂等的。例如,当用户成功更新其用户名时,可能会发出 UsernameUpdated 事件,该事件包含 newUsername 字符串属性。重建当前状态时,适当的事件处理程序将接收 UsernameUpdated 事件,并在 username 属性。 c> User 对象指向 UsernameUpdated 事件对象的 ne ..

在kafka事件驱动的主干中保持服务同步

说我在系统设计中将Kafka用作所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库. 现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务仅在活动上线后才能使用事件,因此不会丢失很多数据.我想要一种策略,使我不必通过编写脚本来回填内部数据库. 我可以采用哪些不错的策略,这些策略不会给Kafka&不会花很多脚本来回填我曾经创建的新服务中的数据? 解决方案 根 ..