当前位置: 首页 > 知识库问答 >
问题:

kafka作为事件源系统中的事件存储库

俞衡虑
2023-03-14

这个问题类似于将Kafka用作CQRS EventStore。好主意?,但更具体的实现。当我有数千个事件“源”(DDD中的聚合根)时,如何使用kafka作为事件存储?正如我在链接问题和其他一些地方读到的,我会有每个来源的主题的问题。如果我将事件按类型拆分到主题中,它将更容易使用和存储,但我需要访问特定源的事件流。如何用Kafka做事件来源?

共有1个答案

赵才俊
2023-03-14

将所有事件源发布到具有数据类型的单个主题(节俭?)它包括每个事件源的某些唯一标识符。然后为您感兴趣的每个事件类型创建消费者,并用唯一的消费者组名称标识每个用户。这样,在Zookeeper中,每个唯一的源消费者都有自己的偏移值。每个人都阅读整个主题,但只输出(或处理)来自单个来源(或一组来源)的信息。

 类似资料:
  • 简介 Laravel 的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。事件类保存在 app/Events 目录中,而这些事件的的监听器则被保存在 app/Listeners 目录下。这些目录只有当你使用 Artisan 命令来生成事件和监听器时才会被自动创建。 事件机制是一种很好的应用解耦方式,因为一个事件可以拥有多个互不依赖的监听器。例如,如果你希望每次订单发货时向用户发送

  • 事件机制是一种很好的应用解耦方式。CatLib事件系统让我们可以订阅和监听程序中出现的各种事件。 应用程序已经默认提供了事件系统,供给全局事件使用。如果您要定义私有范围的事件可以这么做: var dispatcher = new EventDispatcher(); 名词定义 载荷是指程序调用所附带的上下文信息。不同的调用者所提供的上下文信息各不相同。 注册普通监听器 通过 AddListene

  • 我想尝试使用Cassandra作为事件源应用程序中的事件存储。我对事件存储的要求非常简单。事件“模式”应该是这样的: id:聚合根实体的id data:序列化的事件数据(例如JSON) 时间戳:事件发生时 sequence_number:事件的独特版本 我对卡桑德拉完全陌生,所以请原谅我对即将写的东西的无知。我只有两个查询,我想对此数据运行。 为我提供给定聚合根 ID 的所有事件 如果序列号为 我

  • 这很可能是我们自己的缺陷(可能是我们的bean配置Kafkapublisher/EventProcessorConfigurer),我们将解决这个问题,但在您看来,更大的问题是,是否可以让Cassandra与Axon一起工作。我记得在google groups论坛上看到一些帖子说,由于性能问题,没有考虑对Cassandra的支持。我们希望确保我们不会投资于那些将是一场噩梦或根本不是一个好的解决方案

  • 前言 Laravel 的事件系统是一个简单的观察者模式,主要目的是用于代码的解耦,可以防止不同功能的代码耦合在一起。laravel 中事件系统由两部分构成,一个是事件的名称,事件的名称可以是个字符串,例如 event.email,也可以是一个事件类,例如 AppEventsOrderShipped;另一个是事件的 listener,可以是一个闭包,还可以是监听类,例如 AppListenersSe

  • 本文向大家介绍jQuery 1.9.1源码分析系列(十)事件系统之绑定事件,包括了jQuery 1.9.1源码分析系列(十)事件系统之绑定事件的使用技巧和注意事项,需要的朋友参考一下 事件绑定的方法有很多种,使用了jquery那么原理那种绑定方式(elem.click = function(){...}))就不太想推荐给大家了。最主要的原因是elem.click=fn这种方式只能绑定一个事件处理,