问题标签 [eventstoredb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Eventstore 连接导致内存使用和 Web 应用程序崩溃
我们正在使用 .netcore Web 应用程序中的 EventStore.ClientAPI.NetCore 连接到我们的事件存储。连接大约一个小时后,我们突然收到此错误
“指定的 CGI 应用程序遇到错误,服务器终止了进程。”
订阅量下降。我们正在使用这些重试设置
查看是否有其他人因订阅 Eventstore 而退出,并且之前看到过这个问题。
更改我们的订阅设置。围绕重试添加 polly 只会使问题变得更糟。
c# - 在 EventSourcing 中,关于订阅的公认智慧是什么?
正如标题所示。目前我正在GetEventStore
为我的活动使用后端,而且效果很好。我的困惑在于让我的阅读存储保持最新的订阅。
目前我正在使用
方法。这很好用,我有办法缓存我所有的特定事件观察者,它们很好地构建了我的读取模型。
但是,如果我想重播特定聚合的事件怎么办?就目前而言,我需要从头开始订阅并让它全部完成。迄今为止我这样做的方式是存储每个观察者当前的流位置,将其与订阅进行比较,如果更大,则跳过。
让每个观察者都有自己的订阅是否更好,这样只有一个可以被清除?在这种情况下,您如何知道流 ID,您是否需要保留您创建的每个流 ID 以便在以后重新订阅?
一些代码示例,或者一些阅读,会很棒。我觉得我错过了 ES 拼图的最后一块
event-sourcing - EventStore 竞争消费者订购
我正在横向扩展应用程序,并且已经意识到读取模型更新(通过事件处理程序的外部投影)将需要在竞争消费者的基础上进行处理。
我最初假设我需要确保订购,但此要求取决于消息。在我想知道总数的购物车结账的情况下,无论订单如何,我都可以添加总数 - 获取消息,更新 SQL 数据库,然后确认消息。
我现在绞尽脑汁想出一个场景/消息,但我知道情况并非如此。一些额外的清晰度和示例将非常有用。
我需要帮助的问题是:
排序需要什么类型的消息很重要,以及如何按原样使用消息来解决这个问题?
当进程加入/离开时,我们如何知道要从哪个事件重新订阅我可以看到可能导致对刚刚被另一个进程处理的消息请求订阅的时间问题?
我看到有一种
Pinned
消费者策略可以使流与订阅者的最大努力亲和力,但这并不能保证。我可以解决这个问题,使特定的流单线程只按顺序处理那些消息 - 一个进程是否可以对不同的流进行多个订阅?
gitlab - 无法在我的免费帐户中连接到 Gitlab CI 中的容器
我有一个免费的 gitlab 帐户。我还有一个公司帐户(不确定哪个计划)。
我有完全相同的项目,EventStore 上的一个包装器。
在 CI 管道中,我想启动一个带有事件存储的容器,以便我可以针对它运行一些集成测试。
这是我.gitlab-ci.yml
的恢复、编译、运行测试和发布 nuget 包
如您所见,我启动了事件存储容器。
从我的集成测试中,我尝试使用以下连接字符串连接到 CI 中的容器:
"ConnectTo=tcp://admin:changeit@127.0.0.1:1113; HeartBeatTimeout=500;";
使用我的工作帐户,它可以正常工作,有一个容器在端口 1113 上侦听 127.0.0.1,我可以使用上面的连接字符串连接到它。
使用我的免费个人帐户无法连接。
为什么?
我怀疑这与 docker 在两个 gitlab CI 运行器上都可用的方式有关,但为什么不同呢?
更重要的是,如何在我的免费帐户上的个人 CI 管道上配置事件存储,以便在 localhost 由于某种原因不是有效的主机 Uri 时可以连接到它?
docker - Eventstore doesn't work in Kubernetes (but works in Docker)
I want to run Eventstore in Kubernetes node. I start the node with minikube start
, then I apply this yaml file:
the deployment, the replica set and the pod starts, but nothing happens: Eventstore doesn't print to the log, I can't open its dashboard. Also other services can't connect to eventstore:1113. No errors and the pods doesn't crash. The only I see in logs is "The selected container has not logged any messages yet".
I've tried a clean vanilla minukube node with different vm drivers, and also a node with configured Ambassador + Linkerd. The results are the same.
But when I run Eventstore in Docker with this yaml file via docker-compose
Everything works fine: Eventstore outputs to logs, other services can connect to it and I can open its dashboard on 2113 port.
UPDATE: Eventstore started working after about 30-40 minutes after deployment. I've tried several times, and had to wait. Other pods start working almost immediately (30 secs - 1 min) after deployment.
c# - 将日志目标写入 EventStore
我需要编写 Logary 目标以将日志从 .NET 应用程序存储到 EventStore。
我已按照以下说明进行操作:https ://freesoft.dev/program/20382492#writing-a-new-target 。
现在我有一个与 Noop.fs 内容相同的新文件,我想更改它,以便能够将我的日志发送到 EventStore。我需要编辑的部分是这个:
我不确定我需要添加什么。根据消息的重要性以某种方式解析消息?给消息添加时间戳?使用EventStore的地址发送到EventStore?也许是它应该是什么样子的一个例子,至少在伪代码中?
eventstoredb - 如何将特定事件的元数据发布到 EventStore?
我们有与事件直接关联的元数据,因此我根据 EventStore 中描述的 json blob 对数据进行了建模:
即使这是所描述的格式,当我尝试将事件批量添加到 EventStore 时,我也会收到400 Write request body invalid.
响应。
查看单个事件,我可以看到我显然无法以这种方式添加元数据。
问题很简单,如何将特定事件的元数据发布到 EventStore?
可以这么说,我需要一个原子提交,所以我期待将元数据添加到正文中。
原因是我希望能够根据元数据中的值过滤流以允许多租户方法。(这甚至可能吗?)
projection - 在 EventStore Projection 中没有得到任何结果
嘿嘿,希望你能帮助我解决以下问题。
我已经构建了一个小型刽子手游戏,至少我已经构建了后端。它是事件源的,我使用 eventstore 作为事件存储。我在商店里举办了一些活动,我创建了一个投影,不幸的是它没有返回任何结果。
我想通过这个投影实现的目标非常简单。它应该显示现在正在进行的每场比赛的猜测词。我会听一个事件(“HangmanBackend.Domain.GameStarted”)。
所有流(每个游戏 1 个流)都以hangman 为前缀,这就是为什么我可以在投影中使用“fromCategory”。
我没有看到任何结果有什么明确的原因吗?
已经非常感谢了!
docker - Docker Compose / 无效,因为
我想运行 docker-compose.yaml 文件,但出现以下错误:
“无效,因为:services.eventstore.volumes 包含无效类型,它应该是一个数组”。
我将文件备份eventstore
到我的 Windows 桌面,我想使用 docker 恢复它。
这是我的 docker-compose 文件:
有关更多信息,我在放置该volumes
部分后出现错误,因为我无法理解该部分,我将从local
not恢复 db 文件host
。
我的电脑运行的是windows 1O。
migration - 如何在 Eventstore 中进行复制和转换技术?
由于需要更改域,我正在尝试修改事件存储中的事件类型名称。所以我必须迁移事件存储。我研究了一些关于如何做到这一点的主题。由于事件是不可变的,因此很难更改事件类型名称。有一些方法可以改变它。一种方法是复制和转换事件技术。当我阅读他们说从旧事件存储中读取所有事件的文章时,然后在将所有事件写入新事件存储后修改事件。这很好,它将解决我的解决方案。但我找不到任何关于如何做到这一点的小例子。所以我很困惑。我找到了一种方法,但它只适用于 postgresql,但我正在使用 eventstore 来存储数据。
如果有人向我展示了我可以使用复制和转换技术的方法,我将非常高兴。
谢谢大家