`
dyccsxg
  • 浏览: 205281 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类

ActiveMQ - tcp 协议接收消息

 
阅读更多
    /**
     * 基于tcp协议接收JMS消息
     * @param args 参数
     */
    public static void main(String[] args)
    {
        ConnectionFactory connFactory;
        Connection conn = null;
        Session session;
        Destination destination;
        MessageConsumer consumer;
        
        try {
            connFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
            conn = connFactory.createConnection("user1", "password1");
            conn.start();
            
            // 第一个参数为 false, 表示不使用事务
            session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
            destination = session.createQueue(JMSInfo.QUEUE_NAME);
            // destination = session.createTopic(JMSInfo.TOPIC_NAME);
            consumer = session.createConsumer(destination);
            consumer.setMessageListener(new MessageListener()
            {
                @Override
                public void onMessage(Message msg)
                {
                    try {
                        if (msg instanceof TextMessage) {
                            TextMessage textMsg = (TextMessage)msg;
                            System.out.println("received text: " + textMsg.getText());
                        } else if (msg instanceof MapMessage){
                            ActiveMQMapMessage map = (ActiveMQMapMessage)msg;
                            System.out.println("received map: ");
                            printMapMessage(map);
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
//            if (null != conn) {
//                try {conn.close(); } catch (Exception e) {}
//            }
        }
    }
    
    /**
     * 输出 map 消息
     * @param map 参数
     */
    @SuppressWarnings("unchecked")
    public static void printMapMessage(ActiveMQMapMessage map) throws Exception 
    {
        String key = null;
        String value = null;
        
        // print headers
        System.out.println("JMS Header:");
        Enumeration<String> headerKeys = map.getPropertyNames();
        while (headerKeys.hasMoreElements()) {
            key = headerKeys.nextElement();
            value = map.getStringProperty(key);
            System.out.println(key + " : " + value);
        }
        
        // print body
        System.out.println("JMS Body:");
        Enumeration<String> bodyKeys = map.getMapNames();
        while (bodyKeys.hasMoreElements()) {
            key = bodyKeys.nextElement();
            value = map.getString(key);
            System.out.println(key + " : " + value);
        }
    }

分享到:
评论

相关推荐

    activemq-cpp-library-3.9.5-src.zip

    new ActiveMQ::CMSConnectionFactory("tcp://localhost:61616")); ``` 创建会话和消费者: ```cpp std::auto_ptr&lt;cms::Session&gt; session = connection.createSession(); std::auto_ptr&lt;cms::MessageConsumer&gt; ...

    apache-activemq-5.9.0-bin

    消息队列确保消息的可靠传输,即使在发送方和接收方之间发生故障时也能保持数据的完整性。 2. **JMS兼容性**:ActiveMQ完全符合JMS 1.1规范,这意味着它能与任何JMS兼容的客户端库无缝集成,提供标准API进行消息...

    apache-activemq-5.8.0-bin.zip

    - Apache ActiveMQ是业界广泛使用的消息代理,提供可靠的消息传递服务,支持多种协议,如OpenWire、STOMP、AMQP、MQTT和WS-Notification。 - 版本5.8.0是一个稳定版本,包含了之前版本的改进和新特性,旨在提高...

    apache-activemq-5.12.0-bin

    7. **网络连接**:ActiveMQ可以通过TCP/IP协议与其他服务器或客户端通信,并且支持SSL/TLS加密,确保数据传输的安全性。 8. **性能优化**:ActiveMQ内置了多种优化策略,如批处理、预取策略,以提高消息处理速度和...

    activeMQ-cpp 测试文件

    ActiveMQ 是一个开源的消息中间件,它遵循开放消息模型(Open Message Model)并支持多种协议,包括AMQP、STOMP、XMPP等。ActiveMQ-cpp是ActiveMQ的C++客户端库,允许开发者在C++应用程序中使用ActiveMQ的功能。 在...

    apache-activemq-5.11.1

    1. **消息队列**:ActiveMQ作为消息中间件,能够接收、存储并转发消息。它支持点对点(P2P)和发布/订阅(Pub/Sub)两种消息模型。 2. **协议支持**:ActiveMQ不仅支持JMS,还支持AMQP、STOMP、MQTT等多种消息协议...

    linux activemq-cpp-library-3.8.2-src.tar.gz

    ActiveMQ是Apache软件基金会的一款开源消息中间件,它提供了一个高效、灵活且强大的消息传递平台,支持多种协议,如OpenWire、AMQP、STOMP等。在C++编程环境下,ActiveMQ提供了名为ActiveMQ-CPP的库,使得C++开发者...

    activemq-spring-5.5.0.jar.zip

    1. 消息与队列:ActiveMQ提供了一种消息模型,其中消息被发送到队列或主题中,然后由消费者进行接收。队列遵循“先入先出”(FIFO)原则,而主题支持多播,允许多个订阅者同时接收消息。 2. 代理与持久化:ActiveMQ...

    activemq-transport-gnet-1.2.jar.zip

    在ActiveMQ中,传输组件是负责在网络间发送和接收消息的核心部分。GNet传输层提供了一种通用的方式来处理不同类型的网络连接,如TCP/IP,SSL/TLS等。它封装了网络I/O操作,使得ActiveMQ可以轻松地适应各种网络环境。...

    springboot集成activemq实现消息接收demo

    此外,ActiveMQ支持多种协议和特性,如topic、持久化、事务消息等,可以根据项目需求进一步探索和利用。 这个简单的Demo展示了如何在Spring Boot中集成ActiveMQ进行消息接收。通过这种方式,你可以构建出一个可靠的...

    activemq-transport-jgroups-1.4.jar.zip

    集成JGroups后,ActiveMQ可以创建一个分布式的、无中心的 broker 集群,每个broker都可以接收和发送消息,当某台机器出现故障时,集群中的其他节点可以接管其职责,确保服务的连续性。此外,JGroups的多播特性使得...

    activemq-rar-5.8.0.rar

    ActiveMQ是Apache软件基金会开发的一款开源的消息代理,它实现了多种消息协议,如OpenWire、STOMP、AMQP、MQTT和XMPP,使得应用程序可以通过这些协议进行异步通信。在描述中提到的"rar包下载,依赖包"意味着这个RAR...

    activemq-rar-5.9.1.rar

    2. **ActiveMQ Broker**:`activemq-broker-5.9.1.jar`包含了ActiveMQ消息代理的核心组件,它负责接收、存储和转发消息。此库实现了JMS服务器的角色,提供多种协议支持,如OpenWire、STOMP、AMQP等,并具备高可用性...

    activemq-transport-http-1.4.jar.zip

    Apache ActiveMQ是开源社区中最流行的Java消息代理,它支持多种消息协议,包括开放消息传递应用接口(Open Message Passing Interface, JMS)和高级消息队列协议(Advanced Message Queuing Protocol, AMQP)。...

    apache-activemq-5.11.2 附全解教程

    Apache ActiveMQ是Apache软件基金会的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker,JMS)标准,提供高效、可靠的消息传递服务。在本教程中,我们将深入探讨Apache ActiveMQ 5.11.2版本的核心...

    activemq-5.16.5-bin.zip

    ActiveMQ支持多种协议,包括开放标准的TCP/IP协议以及基于HTTP/HTTPS的STOMP和AMQP,这使得它能与各种编程语言和平台无缝集成。 在ActiveMQ 5.16.5这个版本中,我们可以期待一些关键特性,例如: 1. **持久化**:...

    apache-activemq-5.1.0-src

    它支持多种传输协议,包括TCP/IP、HTTP、HTTPS以及NMS(.NET Messaging System),同时兼容多种消息模型,如点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)模式。 **版本5.1.0** 5.1.0是ActiveMQ的一个...

    ActiveMq-JMS简单实例使用tomcat.pdf

    【ActiveMQ-JMS简单实例使用Tomcat】是一个关于如何在Tomcat环境下集成并使用ActiveMQ进行JMS消息传递的初级教程。ActiveMQ是一款开源的消息中间件,它遵循JMS(Java Message Service)1.1规范,能兼容J2EE1.4及以上...

    activemq 通过ajax发送接收消息简单例子

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,也称为AMQP)并支持多种协议,如STOMP、XMPP等。Ajax(Asynchronous JavaScript and XML)是一种在...

    apache-activemq-5.4.3-bin.zip

    Apache ActiveMQ是一个高性能、轻量级的消息代理,它支持多种消息协议,如OpenWire、STOMP、AMQP和XMPP。它提供了一个统一的API,使得开发者可以方便地在不同的消息协议间切换。ActiveMQ 5.4.3是该产品的一个稳定...

Global site tag (gtag.js) - Google Analytics