問題タブ [publish-subscribe]

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.

0 投票する
1 に答える
602 参照

xmpp - IM クライアントを介して PubSub 通知を受信する

私は Openfire と XMPP を初めて使用するので、少し不明な点がいくつかあります。

新しいブログ投稿が Web サイトに公開されたときに、pubsub を使用してすべてのサブスクライバーに通知したいと考えています。サブスクライバーは、選択した IM アプリケーション (Adium など) を介してこれらの通知を受信できる必要があります。問題は、受信した通知が次のようなものであることです。

通常のクライアントが解釈できないもの。このタイプのメッセージは、IM クライアントが理解できるもの、できればチャット メッセージに転送する必要がありますか? これをサーバープラグインとして追加機能として追加する必要がありますか、それとも他の方法がありますか? このようなものの実装例はありますか?

前もって感謝します

0 投票する
2 に答える
3166 参照

c# - NServiceBus パブリッシュ/サブスクライブ

私たちは、電子メールを表示したりログ ファイルをチェックしたりするよりも操作が簡単な、インフラストラクチャ全体のシステムから生成された例外を報告するための洗練されたソリューションを見つけようとしています。サービス バスを介したパブリッシュ/サブスクライブ モデルは、この問題を非常にうまく解決します。サービスはエラー/イベントを公開し、サブスクライバは単純なパターン マッチングを使用してこれらのメッセージをフィルタリングできます。

NServiceBus プロジェクトを調査して、要件を満たしているかどうか疑問に思っていました。PubSub サンプル ( http://docs.particular.net/samples/pubsub/ ) を見て、次の 2 つのシナリオが解決されないことに気付きました。

  1. すべてのパブリッシャーが同じメッセージ タイプをパブリッシュする
  2. サブスクライバーは、パブリッシャー エンドポイントの知識を必要としません。

これらの要件は達成できましたが、構成が正しいかどうかはわかりません。当社のソリューションは次のとおりです。

  1. すべてのパブリッシャーは、ドキュメントhttp://docs.particular.net/nservicebus/messaging/publish-subscribe/の「サブスクリプション ストレージ」セクションで説明されている共有データベースである、同じサブスクリプション ストレージ構成 (DBSubscriptionStorage) を共有します。

  2. すべてのパブリッシャー/サブスクライバーは、nservicebus Web サイトのドキュメントで説明されているように、ディストリビューターを使用するように構成されています。

これが NServiceBus パブリッシュ/サブスクライブ モデルの正しい実装かどうか、または目標を達成する別のソリューションがあるかどうかを知りたいですか?

0 投票する
6 に答える
42270 参照

java - Java の軽量パブリッシュ/サブスクライブ フレームワーク

パブリッシュ/サブスクライブ パターンを提供する Java 用の優れた軽量フレームワークはありますか?

いくつかの理想的な機能

  • ジェネリックのサポート
  • パブリッシャーへの複数のサブスクライバーの登録
  • API は主にインターフェイスといくつかの便利な実装
  • 純粋にインメモリ、永続性、およびトランザクションの保証は必要ありません。

私は JMS について知っていますが、それは私の必要性には過剰です。パブリッシュ/サブスクライブされたデータは、ファイル システムのスキャンの結果であり、スキャン結果は処理のために別のコンポーネントに供給され、別のコンポーネントに供給される前に処理されます。

編集:すべて同じプロセス内にあります。Bean からの PropertyChangeListener は、特定のアイテムを公開するのではなく、プロパティの変更を報告しているため、あまり役に立ちません。「最後に公開されたオブジェクト」プロパティを使用して、ProprtyChangeListener を機能させることができ、オブジェクトを公開しました。PropertyChangeListeners はジェネリックをサポートせず、純粋なパブリッシュ/サブスクライブではなく、プロパティ変更セマンティクスに定着しています。java.util Observer/Observable パターンが適していますが、Oberver は具象クラスです。

0 投票する
7 に答える
641 参照

.net - 短くて珍しいアクションのためのメッセージベースのマルチスレッドまたはスレッドプール?

私は現在、優れたライブラリである.NETのメッセージベースのマルチスレッドにRetlangを使用しています。明示的なロックはもうありません。すべてのスレッドが独自のビジネスを行っており、アプリケーションの一部を管理し、メッセージを介して他のスレッドと通信しています。

ここで、独自のパブリッシャー/サブスクライバースレッドを持つことができるアプリケーションの機能を実装する必要があります。唯一の問題は、このスレッドが実際に実行する作業が非常に少ないことです。約10分ごとに発行元からメッセージを受信する予定です。メッセージを受信すると、それはいくつかの作業を行いますが、数百ミリ秒以上かかることはありません。

それで、99.9%の時間スレッドをスリープさせることが実際に良い選択であるかどうか疑問に思い始めました。この種の操作にはスレッドプールがありますが、メッセージを受信するスレッドを制御できないため、エラーが発生しやすい醜いロックを使用する必要があります。

私の質問は、スレッドをアイドル状態のままにして、大部分の時間を待つことは、リソースの面で本当に問題なのかということです。優れたメッセージベースのアーキテクチャを使用した後に共有マルチスレッドを使用すると、過去にさかのぼるような気分になります。さらに、ロックを備えたアプリケーションの唯一の部分になります。しかし、私は「ここで何か間違ったことをしているのだろうか」と考え続けています。このスレッドで。

編集:皆さん、ありがとうございました。すべての回答を読んだ後、別のスレッドはそれほど問題ではないと判断しました。私のアプリケーションは、メッセージベースのマルチスレッドのみで一貫性を保ちます。パフォーマンスに本当に問題がある場合は(ただし、そうではないはずです)、さらに調査します。

0 投票する
1 に答える
522 参照

windows-server-2008 - NServiceBus、Bus.Send はできるのに Bus.Publish はできないのはなぜですか? デバッグの助けが必要

Ok、

簡単な背景

  1. 私たちは NServiceBus 2.0 をほとんど標準の設定で使用しており、「クレイジー」なことは何もしていません。

  2. アプリは .NET 3.5

  3. 開発環境はパブリッシャーであり、サブスクライバーは同じボックス、Windows 7 にあります。

  4. ステージング環境はパブリッシャーであり、サブスクライバーは別のボックスにあり、1 つは Windows 7、もう 1 つは Windows Server 2008 です。

行動

  • 開発環境では、パブリッシャー サブスクライバーは正常に動作します。これは、コード自体が、起動、コンテナーの構成などに関して問題がなく、すべてのメッセージが正しく構成されていることを示しています。つまり、サイズ、シリアル化などです。

  • ステージング環境では、パブリッシャーはサブスクリプション リクエストを正常に受け取ります。

  • また、サブスクリプション テーブル (SQL Server、DBSubscription を使用) にサブスクライバーを正常に格納し、"queuename@machinename" は正しいです。

問題

Bus.Publish() では何も起こりません。送信キューは作成されず、メッセージはどこにも送信または作成されず、エラーはスローされません。

追加情報

  • 興味深いことに、パブリッシャーからの Bus.Send は正常に動作します! もちろん、これを構成に追加する必要があります。

    <UnicastBusConfig> <MessageEndpointMappings> <add Messages="Library.Messages" Endpoint="subscriberqueue@machinename"/> </MessageEndpointMappings> </UnicastBusConfig>

  • また、パブリッシャーは次のことを解決できます。

ping マシン名

では、何が起こっているのでしょうか。また、何に注意すればよいですか?

なぜ SEND は機能し、PUBLISH は機能しないのですか?

PUBLISH を機能させるにはどうすればよいですか?

0 投票する
1 に答える
145 参照

c# - 同じパブリッシュ/サブスクライブ サービスに対して実行されているクライアントが、互いのメッセージを取得しないのはなぜですか?

WCF を介してパブリッシュ/サブスクライブを実装しようとしています。私の問題は、1 台のコンピューターから発信された複数のクライアントが期待どおりに動作することですが、同じネットワーク上の別のボックスにあるクライアントがメッセージを受信しないことです。

私はこのブログ チュートリアルに従っています: http://chakkaradeep.wordpress.com/2007/07/30/coding-wcf-publishersusbriber-model/

ネットワーク上の IIS ボックスで WCF サービスをホストし、2 台の別々のネットワーク マシンでテスト クライアントの複数のインスタンスを実行しています。1 台のマシンは問題なくサーバーからメッセージをバウンスできますが、他のマシンのクライアントはこれらのメッセージを受信する必要がありますが、そうではありません。必要なものを許可するために設定する必要がある特定の構成フラグはありますか?

0 投票する
5 に答える
6735 参照

c++ - メディエーター パターンとパブリッシュ/サブスクライブ

誰かが2つの主な違いを指摘できますか?

少なくとも概念的には、この 2 つは非常に密接に関連しているようです。推測を危険にさらすとしたら、パブリッシュ/サブスクライブ メソッドはメディエーター パターンのサブセットであると言えます (メディエーターは必ずしもパブリッシュ/サブスクライブの方法で使用する必要はありませんが、後者には一種のメディエーターが必要なようです)物体)。それに近いところはありますか?

0 投票する
2 に答える
393 参照

java - N層のパブリッシュ/サブスクライバー設計の問題

優れたソフトウェアシステムの優れたアーキテクチャを作成する方法を学び、高レベルのコンポーネントをレイヤーに分離する方法を学んでいます。この場合、各レイヤーをブラックボックスとしてモデル化するために、ティアを使用しようとしています。

私のアーキテクチャには、プレゼンテーション、アプリケーションサービス、ビジネスロジック、ドメイン/永続性の4つの層があります。私の質問の目的のために、私たちは本当にプレゼンテーションとアプリケーションサービスに焦点を合わせる必要があるだけです。

アプリケーションサービスレイヤーには、特定のイベントの追跡を可能にするサービスが含まれます。プレゼンテーションには、イベントの追跡モデルが変更されると動的に更新されるいくつかのビューがあります。本質的に、私は一方向の変更伝播メカニズムが必要なようです。

これらのレイヤーをティアとしてモデル化しようとしているので、各ティアのファサードオブジェクト間の通信を制限し、必要に応じて、インターフェイスでのみ認識されているものの、ティアが1つ下のティアからオブジェクトを集約できるようにします。

私はこのアプリケーションをJavaでプログラミングしているので、使用するのはObservable/Observerです。ただし、Observerインターフェイスのupdateメソッドでオブジェクト引数をキャストする必要があるのは気に入らないです。このメカニズム用に独自のインターフェイスとクラスを定義することで、これを回避したいと思います。したがって、問題は、アプリケーションロジックがプレゼンテーション層のインターフェイスに依存することです。このアーキテクチャでは、特定のノーノーです。これは、MVCを最前線でモデリングし、モデルをレイヤー化する必要があるという兆候ですか?または、アプリケーションサービスレイヤーで知られているインターフェイスを使用して各ビューをモデル化することをお勧めします。それを置くのは悪い場所のようで、私は立ち往生しています。また、複数のビューを処理するためにビューハンドラーデザインパターンを使用しています。

0 投票する
2 に答える
897 参照

wpf - WPFイベント、コマンド、または両方の使用

私はアプリのインフラストラクチャを構築していますが、非常に基本的な動作を実現するのが難しいと感じています。システム内のさまざまなユーザーコントロールからイベントを発生させ、それらをリッスンする他のユーザーコントロールでそれらのイベントをキャッチできるようにしたいと考えています。たとえば、TreeViewを実装するユーザーコントロールがあります。ListViewを実装する別のユーザーコントロールがあります。ここで、ListViewがTreeViewをリッスンするようにし、TreeViewで選択が変更されたときに、それに応じてListViewを再設定したいと思います。また、ListViewがWPF論理ツリーのTreeView内にない場合でも、これを実行したいと思います。

助けてください!!

ありがとう、オラン

0 投票する
1 に答える
617 参照

python - Pythonで遅延イベントを発行して購読する

Google App Engine アプリケーションにイベント メッセージング システムが必要です。

そして、私は次のpythonライブラリを参照していました。

http://pubsub.sourceforge.net/apidocs/concepts.html

私の質問は、イベントで実行するために、実行したいリスナー関数を実行パスのどこかにインポートする(またはそうでなければ存在させる)必要がありますか?

イベントが多いので、なるべく遅延ロードしたいです。

回避策は何ですか?

Python に遅延イベント パブリッシュ サブスクライブ フレームワークはありますか?