最初のポストは(a)の簡単な言葉ActiveMQの基本概念を-JMS、我々は2つのJMSメッセージングモデルを導入:ポイントをモデルと同様に、メッセージが消費されている2つの方法でポイントとパブリッシュ・サブスクライブする:同期および非同期、対象のJMSプログラミングモデル、そして最後にJMSの利点を述べました。
二ボーエン素人ActiveMQの(2)の簡単な紹介とインストールを-ActiveMQ、我々は、メッセージングミドルウェアのActiveMQ、インストール、起動、および長所と短所を導入しました。
このブログは、私たちは、ピア・モデルへのピアを実現するために皆のためにActiveMQメッセージを使用します。あなたが浅いのアドホックモデルを知っている場合は、導入の最初の投稿を見ることができます。
JMSは、実際にこのブログを読んだ後、あなたは次のトピックに簡単に、直接アクセスが何であるかを知っているので、背の高いとは思いませんでした。
開発環境
私たちは、あなたが、自分自身をダウンロードすることができ、公式サイトの最新バージョンは、ActiveMQの5.12リリースではWindowsのActiveMQの5.11.1リリースバージョンを使用しているアドレスをダウンロードしてください。
開発時間が、あなたはActiveMQの-すべて-5.11.1.jarパッケージ内の減圧は、あなたのクラスパスに追加した後apache-activemq-5.11.1-bin.zipしたい、このパッケージは、すべてのJMS APIインターフェイスが含まれていることに留意すべきです達成。
開発環境のセットアップ
- プロジェクトの設立
:私たちは、プロジェクトのスクリーンショット、ジャーパッケージをインポートし、その上でJavaプロジェクトを作成する必要があります
ポイントは、メッセージングモデル、唯一のメッセージプロデューサとメッセージコンシューマを指し示すのは、コードを書いてみましょうします。
- プロデューサーを書きます
package com.tgb.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* 消息的生产者(发送者)
* @author liang
*
*/
public class JMSProducer {
//默认连接用户名
private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
//默认连接密码
private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
//默认连接地址
private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;
//发送的消息数量
private static final int SENDNUM = 10;
public static void main(String[] args) {
//连接工厂
ConnectionFactory connectionFactory;
//连接
Connection connection = null;
//会话 接受或者发送消息的线程
Session session;
//消息的目的地
Destination destination;
//消息生产者
MessageProducer messageProducer;
//实例化连接工厂
connectionFactory = new ActiveMQConnectionFactory(JMSProducer.USERNAME, JMSProducer.PASSWORD, JMSProducer.BROKEURL);
try {
//通过连接工厂获取连接
connection = connectionFactory.createConnection();
//启动连接
connection.start();
//创建session
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
//创建一个名称为HelloWorld的消息队列
destination = session.createQueue("HelloWorld");
//创建消息生产者
messageProducer = session.createProducer(destination);
//发送消息
sendMessage(session, messageProducer);
session.commit();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(connection != null){
try {
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
/**
* 发送消息
* @param session
* @param messageProducer 消息生产者
* @throws Exception
*/
public static void sendMessage(Session session,MessageProducer messageProducer) throws Exception{
for (int i = 0; i < JMSProducer.SENDNUM; i++) {
//创建一条文本消息
TextMessage message = session.createTextMessage("ActiveMQ 发送消息" +i);
System.out.println("发送消息:Activemq 发送消息" + i);
//通过消息生产者发出消息
messageProducer.send(message);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 消費者を書きます
package com.tgb.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* 消息的消费者(接受者)
* @author liang
*
*/
public class JMSConsumer {
private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;//默认连接用户名
private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;//默认连接密码
private static final String BROKEURL = ActiveMQConnection.DEFAULT_BROKER_URL;//默认连接地址
public static void main(String[] args) {
ConnectionFactory connectionFactory;//连接工厂
Connection connection = null;//连接
Session session;//会话 接受或者发送消息的线程
Destination destination;//消息的目的地
MessageConsumer messageConsumer;//消息的消费者
//实例化连接工厂
connectionFactory = new ActiveMQConnectionFactory(JMSConsumer.USERNAME, JMSConsumer.PASSWORD, JMSConsumer.BROKEURL);
try {
//通过连接工厂获取连接
connection = connectionFactory.createConnection();
//启动连接
connection.start();
//创建session
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//创建一个连接HelloWorld的消息队列
destination = session.createQueue("HelloWorld");
//创建消息消费者
messageConsumer = session.createConsumer(destination);
while (true) {
TextMessage textMessage = (TextMessage) messageConsumer.receive(100000);
if(textMessage != null){
System.out.println("收到的消息:" + textMessage.getText());
}else {
break;
}
}
} catch (JMSException e) {
e.printStackTrace();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
ラン
- まず、第二ボーエンを参照してください、ActiveMQのを開始する方法を開始する方法を、ActiveMQのを起動します。ブラウザで、次のコマンドを入力します。HTTP:// localhostを:8161 / ADMINは/、その後、開始しました:
-
以下に示すように、送信者を実行して、日食コンソール出力:
次のようにこの時点で、我々は、ActiveMQのサーバでキューを見て:
私たちは、HelloWorldメッセージキューの名前を作成するために見ることができ、キューは10件のメッセージが支出されていない持っています、 :我々はまた、メッセージを以下に示し、それを通してブラウズ表示できる
メッセージこれらのキューは、削除された場合、消費者が支出されていません。 -
:私たちは次のように、日食コンソールはメッセージを出力し、消費者で実行し続け
、この時点で、我々は、ActiveMQのサーバを見て、キューを次のように:
私たちは、HelloWorldメッセージキューの変更、10の以上のメッセージキューの中の人を見ることができますメッセージが消費され、それが既に空で、ブラウズを参照してくださいするにはここをクリック。
私たちは、消費者の詳細を確認することができ、アクティブなコンシューマをクリックしてください:
これが私たちの例を終わり、あなた自身よりActiveMQのサーバはActiveMQのに慣れてくるコンテンツことができます。
概要
我々は、それは非常に単純ではない、メッセージングモデルを指すようにこのブログのポイントを達成し、同期メッセージが送信されますか?
次のブログ記事は、私たちはActiveMQのと春の統合インスタンスを実装します。