5

私は過去9か月間CQRSプロジェクト(私の最初のプロジェクト)に取り組んできましたが、これは大変な学習曲線でした。現在、書き込みモデルでJOliverの優れたEventStoreを使用しており、読み取りモデルでPostGresSqlを使用しています。

私の読み取りデータベースと書き込みデータベースはどちらも同じマシン上にあります。つまり、書き込みデータベースに変更が加えられると、同じ同期呼び出しで読み取りモデルに変更が加えられます。

CQRSを学んでいたとき、MassTransit、NServiceBusなどのメッセージキュー/サービスバスフレームワークの経験がなかったので、これが最善の方法だと感じました。

私は今、メッセージキューフレームワークを導入するために私のアーキテクチャのほとんどを整えているところです。

今日、ServiceStackの一部であるRedis MQに出くわしましたが、RestベースのHTTPクライアントにすでにServiceStackを使用しているため、これは正しい方法のようです。

私の質問は、Redis MQを実装するために知っておくべきこと(または誤解があるかどうか)を理解することと、RedisMQが正しい選択であるかどうかについてです。

私が理解していることから、書き込みデータベースと読み取りデータベースの間の永続的なキューとしてRedisMQを使用します。イベントストアがドメインで何かが発生したことを記録すると、RedisMQに公開されます。イベント/メッセージをリッスンするサービスは、Redis MQからイベント/メッセージを受信し、処理(つまり、読み取りモデルの更新または書き込み)が完了すると、通知/応答がイベントストアに戻って、イベントストアに次のことを通知します。メッセージはリスナー/サブスクライバーによって受信および処理されました。

この音は正しいですか?

また、Redis MQアーキテクチャは、NSB、RavenDB、MassTransitなどが提供するすべてのものを提供してくれますか?

また、Windows2008および2003サーバーに展開します。これらのOSに対してRedisは安定していますか?

4

3 に答える 3

3

RedisでのメッセージキューのServiceStack実装は、ジョブキューシナリオに適していると思います。メッセージをRedisリストの最後にプッシュし、Redis pub-subを使用して、リスニングサブスクライバーにプルするメッセージがあることを通知します。列。すべての消費者はメッセージを求めて競争するでしょう。

イベントソーシングの場合、RabbitMQによって提供されるファンアウトまたはトピックベースのメッセージングトポロジのタイプに関心があるかもしれませんが、Redisデータ構造を使用してそのようなものを自分で構築することを妨げるものではありません。

于 2012-12-20T15:23:27.947 に答える
2

私が理解していることから、書き込みデータベースと読み取りデータベースの間の永続的なキューとしてRedisMQを使用します。

はい、これは正しいです。

イベントストアがドメインで何かが発生したことを記録すると、RedisMQに公開されます。

はい、これはいくつかの方法で行うことができます。これは、イベントストアに永続化するトランザクションの一部として発生するか、イベントストアからイベントを継続的に公開する帯域外プロセスを持つことができます。

通知/応答はイベントストアに戻り、メッセージがリスナー/サブスクライバーによって受信および処理されたことをイベントストアに通知します。

イベント発行者への返信は通常省略されます。これにより、パブリッシャーとサブスクライバーが完全に切り離されます。メッセージが公開されると、関心のあるすべてのサブスクライバーがメッセージを処理することを前提としています。何かが起こった場合は、エラーをログに記録する必要があります。

また、Redis MQアーキテクチャは、NSB、RavenDB、MassTransitなどが提供するすべてのものを提供してくれますか?

私はRedisMQを実行した経験はありませんが、RedisがNSBとMassTransitの価値提案の1つであるpub / subをサポートしていることは知っています(最低限のMSMQとは対照的です)。MTとNSBがpub/subを超えて提供するのはサガであり、RedisMQは少なくとも箱から出してすぐにそれらをサポートしているようには見えません。あなたはサガを必要としないかもしれないので、これが自動的に抑止力になるべきではありません。RavenDBはメッセージキューではないため、ここでは適用されません。

また、Windows2008および2003サーバーに展開します。これらのOSに対してRedisは安定していますか?

私は2008R2でRedisを実行しましたが、安定しているので、RedisMQも安定していると思います。

于 2012-12-10T17:57:11.903 に答える
2

Redisを使用したNServiceBusのキューと永続性の実装であるGitHubでの私の小さなサイドプロジェクトに興味があるかもしれません。https://github.com/mackie1001/NServicebus.Redis

私はそれを本番環境に対応しているとは言いません。NSB4に移植して徹底的なテストを行いたいのですが、その内容は完了しています。

于 2013-02-24T21:59:55.060 に答える