この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 216172|答える: 69

[コンソールプログラム] .NET/C# ActiveMQ操作例【ソースコード】

  [リンクをコピー]
掲載地 2017/07/27 13:19:10 | | | |

ActiveMQおよびRabbitMQに関する情報概要
http://www.itsvse.com/thread-4659-1-1.html
(出典:Architect_Programmer)

プロジェクトにはデータをプッシュし受信する必要があるため、データ量は比較的大きく、1日に約300万件のデータが処理されます

最初はhttp postでデータを送信していましたが、遅すぎて送信速度も受信速度よりずっと遅いことが分かりました。

したがって、長いソケット接続でデータをプッシュ・受信し、ソケットサーバーとクライアントを自分で書く場合は時間の無駄ですが、うまくできていないかもしれません

最後に、activemqはデータのプッシュと受信に使用されます

まず、プロデューサーコードは以下の通りです。



消費者向けには、2つのモデルがあります。

1: 通常のサブスクリプションで、永続的な「サブスクリプション」は不要です。つまり、接続時にメッセージを受け取ることができ、接続前にメッセージを受け取れないという意味です。これは「CreateConsumer」を使って行われます。
2: 永続的サブスクリプション。接続後、「CreateDurableConsumer」を使って、これまでプッシュされていないデータを受け取ることができます。


CreateDurableConsumerの導入へのリンク:ハイパーリンクのログインが見えます。

指定されたトピックにまだ存在していなければ、共有されていない永続的サブスクリプションを作成し、その永続的サブスクリプションでコンシューマーを作成してください。 この方法はメッセージセレクタを使わずに永続的なサブスクリプションを作成し、noLocal値はfalseです。
アプリケーションは永続的なサブスクリプションを使用しており、アクティブな消費者がいない場合に公開されるメッセージも含め、トピックに関するすべてのメッセージを受信する必要があります。 JMSプロバイダーはこの永続的購読の記録を保持し、対象となる発行者からのすべてのメッセージは消費者に届けられ、その永続的購読によって期限切れまで保持されることを保証します。

永続的な購読はメッセージを蓄積し続け、解約方法で削除されるまで続きます。

この方法は、共有されていない永続的サブスクリプションでのみ使用可能です。 この方法で作成された永続的なサブスクリプションは共有解除されます。 つまり、サブスクリプションには同時に1人のアクティブ(つまりクローズされていない)消費者しか存在できません。 ここでの「consumer」という用語は、クライアント内のTopicSubscriber、MessageConsumer、またはJMSConsumerオブジェクトを指します。

共有されていない永続的サブスクリプションは、クライアント指定の名前と設定が必要なクライアント識別子で識別されます。 その後、非共有の永続的サブスクリプションで消費者を作成したいアプリケーションは、同じクライアント識別子を使用しなければなりません。

同じ名前とクライアント識別子を持つ共有されていない永続的サブスクリプションがすでに存在し、同じトピック、メッセージセレクター、noLocal値がすでに指定されていて、永続的サブスクリプションにアクティブな(つまり閉じられていない)消費者がいない場合、この方法はMessageConsumer上で既存の持続的サブスクリプションを作成します。

同じ名前とクライアント識別子を持つ非共有の永続的サブスクリプションがすでに存在し、その永続的サブスクリプションにすでにアクティブな(つまり閉じていない)コンシューマーがいる場合、JMSExceptionがスローされます。

同じ名前とクライアント識別子を持つ非共有の永続的サブスクリプションがすでに存在し、メッセージセレクターやnoLocal値が指定されていて、その永続的サブスクリプションにまだアクティブな(つまり閉じていない)消費者がいない場合、これは古いサブスクリプションを解約(削除)して新しいサブスクリプションを作成するのと同等です。

共有および非共有の永続的サブスクリプションは、名前やクライアントのアイデンティティが同じでない場合もあります。 同じ名前とクライアント識別子を持つ共有永続的サブスクリプションがすでに存在している場合、JMSExceptionがスローされます。

同じ名前とクライアントIDを持つ永続的サブスクリプションと共有された非永続サブスクリプションには制限はありません。 そのようなサブスクリプションは完全に別個になります。

このメソッドは対応するcreateDurableSubscriberメソッドと同じですが、消費者を表すためにTopicSubscriberではなくMessageConsumerを返します。

パラメーター:
テーマ - 非一時的なトピック購読
名前 - このサブスクリプションを識別するために使われる名称
投げ:
InvalidDestinationException - 無効なトピックが指定されている場合。
IllegalStateException - ゲスト識別子が設定されていない場合
JMSException -
もしセッションが内部エラーにより非共有永続的サブスクリプションやMessageConsumerを作成できなかった場合
同じ名前とクライアント識別子を持つ非共有の永続的サブスクリプションがすでに存在し、消費者がすでにアクティブである場合
同じ名前とクライアント識別子を持つ共有の永続的サブスクリプションがすでに存在する場合
それ以来:
JMS 2.0

IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal);

ここで、messageSelectorはメッセージセレクタです。 noLocalフラグはデフォルトでfalseであり、trueに設定すると、消費者が自分と同じ接続で公開されたメッセージのみを受け取ることを制限します。これはトピックにのみ適用され、キューには適用されません。 名前はサブスクリプショントピックの一意なアイデンティティであり、永続的サブスクリプションに加入する際にこのパラメータを設定する必要があります。

Activemq .netはパッケージダウンロードを参照する必要があります:ハイパーリンクのログインが見えます。

完全なソースコードダウンロード:

観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ答える




スコア

参加者数1MB+1 倒れる 理由
LXC1118 + 1 とても強力です!

すべての評価を見る





先の:Activemqユーザー権限設定
次に:Unknown: Input variables exceeded 1000. To increase the limit change max_inpu...
掲載地 2018/01/16 9:11:47 |
a5192142 2017年10月20日 11:46に投稿
RE: .net/c# activemq操作示例[源码] [修改]
上級モード

ソースコードの読み方
掲載地 2019/12/11 11:49:26 |
処方方法は厄介です。
掲載地 2017/10/20 11:46:30 |
RE: .net/c# activemq操作示例[源码] [修改]
上級モード
掲載地 2017/08/16 23:54:36 |
M2MQTTを使用する場合、証明書はエラーとして報告されます
掲載地 2017/08/17 4:14:37 |
さて、MQTTをプッシュにどう使うか試し始めましょう
掲載地 2017/08/17 15:45:19 |
良いものになると思います
掲載地 2017/08/29 10:40:38 |
参考になれば幸いです
掲載地 2017/08/29 13:38:07 |
うまくいくといいな
掲載地 2017/09/14 15:15:04 |
若い頃は詩や本を読んでいて、どこへ行っても行きました
掲載地 2017/09/25 9:35:22 |
ずっと探していました。今回は役に立てれば幸いです。ありがとうございます!
掲載地 2017/09/25 9:45:59 |
@小渣渣
     アクセサリーの買い方!
掲載地 2017/09/29 16:35:28 |
結局のところ、私は興味があり、学ぶための資料を見つけるために来ているからです
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com