bra*_*ndo 5 mongodb cqrs asp.net-web-api kubernetes
我正在使用 CQRS 方法重新设计一个 dotnet 后端 api。这个问题是关于如何在 Kubernetes 部署的上下文中处理 Query 端。
我正在考虑使用 MongoDb 作为查询数据库。该应用程序是 dotnet webapi 应用程序。那么最好的方法是什么:
创建一个 sidecar Pod,它将 dotnet 应用程序和 MongoDb 容器化到一个 Pod 中。根据需要进行缩放。
将 MongoDb 容器化到它自己的 pod 中,并在每个区域部署一个 MongoDb pod。然后让 dotnet 容器在其自己的区域内使用 MongoDb pod。按区域缩放 MongoDb。以及区域内和区域之间需要的 dotnet pod。
我还没有想到的其他一些方法
我将从最简单的方法开始,即将写入端和读取端放在一起,因为它们属于相同的有界上下文。
然后将来如果需要的话,我会考虑添加更多的读取端或扩展到其他区域。
首先,我还会考虑将 ReadSide 添加到与写入端相同的虚拟机中。只是为了简单起见,因为将其全部安装并投入生产始终是一项艰巨的任务,并且存在很多陷阱。
我会考虑使用类似 Kafka 的系统将数据传输到读取端,因为使用队列,如果您以后添加新的实例或者想要重建读取端实例,那么使用队列可能会很麻烦。在这里,发件人需要知道您有哪些阅读面。通过 Kafka 风格的集成,每个“读取端”都可以按照自己的节奏消费事件。您还可以稍后更轻松地添加更多读取面。并且发送者不需要知道接收者。
Kafka 允许您将数据生产者与数据消费者解耦,就像这张取自我的培训课程之一的图片:

在 kafka 中,您有一组生产者将数据附加到 Kafka 日志中:
然后,您可以让一个或多个消费者处理这一事件日志:
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |