簡単に言えばActiveMQの(3) - ActiveMQの単純なHelloWorldの例

最初のポストは(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

ラン

  1. まず、第二ボーエンを参照してください、ActiveMQのを開始する方法を開始する方法を、ActiveMQのを起動します。ブラウザで、次のコマンドを入力します。HTTP:// localhostを:8161 / ADMINは/、その後、開始しました:
  2. 以下に示すように、送信者を実行して、日食コンソール出力: 
    ここで説明する絵を書きます 
    次のようにこの時点で、我々は、ActiveMQのサーバでキューを見て: 
    ここで説明する絵を書きます
    私たちは、HelloWorldメッセージキューの名前を作成するために見ることができ、キューは10件のメッセージが支出されていない持っています、 :我々はまた、メッセージを以下に示し、それを通してブラウズ表示できる 
    ここで説明する絵を書きます
    メッセージこれらのキューは、削除された場合、消費者が支出されていません。

  3. :私たちは次のように、日食コンソールはメッセージを出力し、消費者で実行し続け 
    ここで説明する絵を書きます 
    、この時点で、我々は、ActiveMQのサーバを見て、キューを次のように: 
    ここで説明する絵を書きます
    私たちは、HelloWorldメッセージキューの変更、10の以上のメッセージキューの中の人を見ることができますメッセージが消費され、それが既に空で、ブラウズを参照してくださいするにはここをクリック。 
    私たちは、消費者の詳細を確認することができ、アクティブなコンシューマをクリックしてください: 
    ここで説明する絵を書きます

これが私たちの例を終わり、あなた自身よりActiveMQのサーバはActiveMQのに慣れてくるコンテンツことができます。

概要

我々は、それは非常に単純ではない、メッセージングモデルを指すようにこのブログのポイントを達成し、同期メッセージが送信されますか?

次のブログ記事は、私たちはActiveMQのと春の統合インスタンスを実装します。

おすすめ

転載: blog.csdn.net/qqyb2000/article/details/78221793