Heim  >  Artikel  >  Java  >  Erstellen Sie einen einfachen Hello World-Fall

Erstellen Sie einen einfachen Hello World-Fall

PHP中文网
PHP中文网Original
2017-06-21 17:11:471740Durchsuche

1. Erstellen Sie einen einfachen Hello World-Fall

Zuerst müssen Sie das Paket activemq-all-5.14.5.jar importieren und das Produktionsende schreiben:

package com.ietree.mq.helloworld;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Sender {public static void main(String[] args) throws Exception {// 第一步:建立ConnectionFactory工厂对象,需要填入用户名、密码、以及要连接的地址,均使用默认即可,默认端口为:tcp://localhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");// 第二步:通过ConnectionFactory工厂对象我们创建一个Connection链接,并且调用ConnectionFactory的start方法开启链接,Connection默认是关闭的Connection connection = connectionFactory.createConnection();
        connection.start();// 第三步:通过Connection对象创建Session会话(上下文环境对象),用于接收消息,参数配置1为是否启用事务,参数配置2为签收模式,一般我们设置为自动签收Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);// 第四步:通过Session创建Destination对象,指的是一个客户端用来指定生产消息目标和消费信息来源的对象,在PTP模式中,Destination被称作Queue即队列;在Pub/Sub模式,Destination被称作Topic即主题。在程序中可以使用多个Queue和Topic。Destination destination = session.createQueue("queue1");// 第五步:我们需要通过Session对象创建消息的发送和接收对象(生产者和消费者)MessageProducer/MessageConsumer。MessageProducer messageProducer = session.createProducer(destination);// 第六步:我们可以使用MessageProducer的setDeliveryMode方法为其设置持久化特性和非持久化特性(DeliveryMode)        messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);// 第七步:最后我们使用JMS规范的TextMessage形式创建数据(通过Session对象),并用MessageProducer的send方法发送数据。同理,客户端使用receive方法进行接收数据,最后需要关闭Connection连接。for (int i = 0; i < 5; i++) {
            TextMessage textMessage = session.createTextMessage();
            textMessage.setText("我是消息内容......" + i);
            messageProducer.send(textMessage);
            System.out.println("生产者:" + textMessage.getText());
        }if (connection != null) {
            connection.close();
        }
    }
}

Schreiben Sie die Verbraucherseite:

package com.ietree.mq.helloworld;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.MessageConsumer;import javax.jms.Session;import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class Receiver {public static void main(String[] args) throws Exception {// 第一步:建立ConnectionFactory工厂对象,需要填入用户名、密码、以及要连接的地址,均使用默认即可,默认端口为:tcp://localhost:61616ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnectionFactory.DEFAULT_USER,
                ActiveMQConnectionFactory.DEFAULT_PASSWORD, "tcp://localhost:61616");// 第二步:通过ConnectionFactory工厂对象我们创建一个Connection链接,并且调用ConnectionFactory的start方法开启链接,Connection默认是关闭的Connection connection = connectionFactory.createConnection();
        connection.start();// 第三步:通过Connection对象创建Session会话(上下文环境对象),用于接收消息,参数配置1为是否启用事务,参数配置2为签收模式,一般我们设置为自动签收Session session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);// 第四步:通过Session创建Destination对象,指的是一个客户端用来指定生产消息目标和消费信息来源的对象,在PTP模式中,Destination被称作Queue即队列;在Pub/Sub模式,Destination被称作Topic即主题。在程序中可以使用多个Queue和Topic。Destination destination = session.createQueue("queue1");// 第五步:我们需要通过Session对象创建消息的发送和接收对象(生产者和消费者)MessageProducer/MessageConsumer。MessageConsumer messageConsumer = session.createConsumer(destination);        while (true) {
            TextMessage msg = (TextMessage) messageConsumer.receive();if(msg == null){break;
            }
            System.out.println("接收到的内容:" + msg.getText());
        }if (connection != null) {
            connection.close();
        }
    }
}

Sehen Sie sich den Nachrichtenverbrauch über den Pfad http://localhost:8161/admin/queues.jsp an.

2. ActiveMQ-Sicherheitsmechanismus

Die Webverwaltungsoberfläche von ActiveMQ: http://127.0.0.1:8161/admin
Die ActiveMQ-Verwaltungskonsole wird über Jetty bereitgestellt, falls Sie Änderungen vornehmen müssen Für das Passwort müssen Sie die entsprechende Konfigurationsdatei aufrufen: apache-activemq-5.14.5confjetty-realm.properties
activeMQ sollte mit einem Sicherheitsmechanismus eingerichtet sein. Nur Benutzer, die die Authentifizierung erfüllen, können Nachrichten senden und empfangen Wir können auch Sicherheit in activemq.xml hinzufügen. Überprüfen Sie die Konfiguration, apache-activemq-5.14.5confjetty-realm.propertiesactivemq.xml. Fügen Sie einfach nach Zeile 123 eine Plug-in-Konfiguration hinzu.

Administratorbenutzer in activemq.xml hinzufügen:

<!-- destroy the spring context on shutdown to stop jetty --><shutdownHooks><bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" /></shutdownHooks><plugins>
            <simpleAuthenticationPlugin>
                <users>
                    <authenticationUser username="root" password="root" groups="users,admins"/>
                </users>
            </simpleAuthenticationPlugin>
        </plugins></broker>

Auf diese Weise können Sie nur über die Root-Kontoinformationen eine Verbindung herstellen.

Das obige ist der detaillierte Inhalt vonErstellen Sie einen einfachen Hello World-Fall. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn