pom.xml:
< プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" のxsi:schemaLocationの= "のhttp:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd」> < modelVersion > 4.0.0 </ modelVersion > < groupIdを> com.toov5 < / のgroupId > < たartifactId > RabbitMQの</ たartifactId > < バージョン> 0.0.1-SNAPSHOT </ バージョン> < 依存関係> < 依存> < groupIdを> com.rabbitmq </ groupIdを> < たartifactId > AMQPクライアント</ たartifactId > < バージョン> 3.6.5 </ バージョン> </ 依存関係> </ 依存関係> </ プロジェクト>
ツールの接続を作成します:
// 多重化の一つの実施形態は、バーチャルホストにする必要はありません パブリック クラス{MQConnectionUtils //は、新しい接続の作成 パブリック 静的接続newConnectionとを()スローIOExceptionが、TimeoutExceptionを{ // 接続ファクトリを作成 するConnectionFactory工場= 新しい新しいのConnectionFactoryを(); // リンクアドレス factory.setHost( "192.168.91.6" ); // ユーザ名 factory.setUsername( "ADMIN" ); // ユーザーパスワード factory.setPassword( "ADMIN" ); // AMQPポート番号 factory.setPort(5672 ); / /连接バーチャルホスト factory.setVirtualHost( "/ admin_toov5" )。 接続の接続 = factory.newConnection()。 リターン接続。 } }
プロデューサーのカテゴリ:
パブリック クラスプロデューサー{ // キュー名 プライベート 静的な 最終文字列UEUE_NAME =「TEST_QUEUEという」; 公共の 静的な 無効メイン(文字列[] argsが)スローIOExceptionが、TimeoutExceptionを{ // 新しい接続の作成 接続接続を= ; MQConnectionUtils.newConnection() // チャンネル作成 チャンネルチャンネル= connection.createChannelを(); //は、キューの作成 (UEUE_NAME、channel.queueDeclareをfalseに、falseに、falseに、ヌル); // メッセージ作成 文字列MSG = "toov5_messageを" ; のSystem.out.println( "プロデューサー配信メッセージ" + MSG); // プロデューサは、メッセージ送信 channel.basicPublish( ""、UEUE_NAME、ヌル、Msg.getBytes()) ; // 通路と接続閉じ channel.closeを(); Connection.close(); } }
業績は、キューを見て:
シミュレーションGetメッセージ:
実質的に類似して消費者のプロデューサー:
パブリック クラスコンシューマー{ // キュー名 プライベート 静的な 最終文字列queue_nameの=「TEST_QUEUEという」; 公共の 静的な 無効メイン(文字列[] argsが)スローIOExceptionが、TimeoutException { System.out.printlnは(「消費者スタートを....... ... " ); // 新しい接続の作成 接続の接続= MQConnectionUtils.newConnection(); // チャンネル作成 チャンネルチャンネル= connection.createChannelを(); // 消費者協会キュー channel.queueDeclareを(QUEUE_NAMEを、falseに、falseに、falseに、ヌル;) DefaultConsumer defaultConsumerr = 新新DefaultConsumer(チャンネル){ // 取得聴いメッセージ @Override 公共 ボイドhandleDelivery(文字列consumerTag、封筒封筒、BasicPropertiesプロパティ、 バイト []体)がスローにIOException { 文字列MSGを = 新新文字列(ボディ、 "UTF-8" ); System.out.printlnは( "消費者がニュースのプロデューサーを取得:" + MSG)。 } }; // 真自動応答モードを設定する手デフォルトモード:自動応答モード channel.basicConsume(queue_nameの、真の、defaultConsumerr); // // 通路を閉じ、接続 // channel.close(); // Connection.close( ); } }
結果後: