activemq安装与简单消息发送接收实例

安装环境:Activemq5.11.1, jdk1.7(activemq5.11.1版本需要jdk升级到1.7),虚拟机: 192.168.147.131
[[email protected] software]# pwd
/export/software
[[email protected] software]# tar -zxvf apache-activemq-5.11.1-bin.tar.gz
[[email protected] software]# mv apache-activemq-5.11.1 /usr/local
配置Nginx代理Activemq后台管理应用默认绑定的8161端口  
upstream tomcat_tools.activemq.local {
        server 127.0.0.1:8161  weight=10 max_fails=2 fail_timeout=300s;
}
server {
        listen                   80;
        server_name              tools.activemq.local.com;
        root                     /usr/local/apache-activemq-5.11.1/webapps/;
        access_log               /usr/local/apache-activemq-5.11.1/logs/tools.activemq.local.com_access.log main;
        error_log                /usr/local/apache-activemq-5.11.1/logs/tools.activemq.local.com_error.log warn;
        error_page               403 404 /40x.html;

        location / {
            index index.html index.htm;
            proxy_next_upstream     http_500 http_502 http_503 http_504 error timeout invalid_header;
            proxy_set_header        Host  $host;
            proxy_set_header       X-Real-IP        $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass              http://tomcat_tools.activemq.local;
        }

        #静态文件,nginx自己处理
            location ~ ^/(images|javascript|js|css|flash|media|static)/ {

                    #过期30天,静态文件不怎么更新,过期可以设大一点,
                    #如果频繁更新,则可以设置得小一点。
                    expires 30d;
            }
}
重启nginx
启动activemq
[[email protected] linux-x86-64]# pwd
/usr/local/apache-activemq-5.11.1/bin/linux-x86-64
[[email protected] linux-x86-64]# ./activemq start

配置host[192.168.147.131 tools.activemq.local.com]

登录activemq的后台,默认账号 admin/admin
http://tools.activemq.local.com/admin

实例展示MQ消息的发送和接收[消息类型分为queue 和 Topics,实例展示为queue类型消息发送]
pom引入
 <dependency>
     <groupId>org.apache.activemq</groupId>
     <artifactId>activemq-all</artifactId>
     <version>5.11.1</version>
 </dependency>
1、定义消息destination和brokerUrl[61616为activemq用于消息通讯的端口]
public class Constant {

    public static final String brokerURL = "tcp://192.168.147.131:61616";

    public static final String queueDestination = "testQueue";
}

2、编写消息的发送程序
import javax.jms.*;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * created on 2015/6/4
 * @author [email protected]
 * @version 1.0
 */
public class MqSender {

    public static void main(String[] args) throws JMSException {
        ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD, Constant.brokerURL);
        Connection connection = factory.createConnection();
        connection.start();
        Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue(Constant.queueDestination);
        MessageProducer producer = session.createProducer(destination);
        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
        ObjectMessage message = session.createObjectMessage("hello world...");
        producer.send(message);
        session.commit();
        System.out.println("send...");
    }

}

执行消息发送,在管理后台查看

3、编写消息的消费程序

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.ObjectMessage;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * created on 2015/6/4
 * @author [email protected]
 * @version 1.0
 */
public class MqReceiver {

    public static void main(String[] args) throws JMSException {
        ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD,
                Constant.brokerURL);
        Connection connection = factory.createConnection();
        connection.start();
        Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
        Destination destination = session.createQueue(Constant.queueDestination);

        MessageConsumer consumer = session.createConsumer(destination);
        ObjectMessage message = (ObjectMessage)consumer.receive();
        if (message != null) {
            String messageString = (String)message.getObject();
            System.out.println("Receive : " + messageString);
        }
    }
}

执行这段代码会输出接收到的消息内容:

管理后台在查看queue中心结果如下:

转载请注明出处:[http://www.cnblogs.com/dennisit/p/4551182.html]

				
时间: 2024-10-10 12:42:31

activemq安装与简单消息发送接收实例的相关文章

RabbitMQ基础概念详解(一)——环境配置及模拟生产者和消费者简单消息发送

一.简介: RabbitMq 是实现了高级消息队列协议(AMQP)的开源消息代理中间件.消息队列是一种应用程序对应用程序的通行方式,应用程序通过写消息,将消息传递于队列,由另一应用程序读取 完成通信.而作为中间件的 RabbitMq 无疑是目前最流行的消息队列之一. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.

ActiveMQ(2)---ActiveMQ原理分析之消息发送

持久化消息和非持久化消息的发送策略 消息同步发送和异步发送 ActiveMQ支持同步.异步两种发送模式将消息发送到broker上.同步发送过程中,发送者发送一条消息会阻塞直到broker反馈一个确认消息,表示消息已经被broker处理.这个机制提供了消息的安全性保障,但是由于是阻塞的操作,会影响到客户端消息发送的性能 异步发送的过程中,发送者不需要等待broker提供反馈,所以性能相对较高.但是可能会出现消息丢失的情况.所以使用异步发送的前提是在某些情况下允许出现数据丢失的情况. 默认情况下,非

MQ入门知识和简单消息发送配置

消息(Message) 消息:应用数据体和消息数据头. 消息是分为持久的和非持久的,持久就是队列管理器重启houston消息仍然存在. 队列 队列就是存放消息的容易,本地队列,远程队列,别名队列,模型队列. 本地队列:队列实体 远程队列和别名队列:一种队列的定义 模型队列:模型队列是为了创建动态队列 本地队列 1.初始化队列:用于消息触发,存放触发消息的队列 2.目标队列:消息的目的地,存放消息 3.死信队列:存放不能抵达的消息 4.传输队列:用于传递消息 队列管理器 消息队列的管理者,用来维护

ActiveMQ 重发机制(消息发送失败后的重新发送)

一.写RedeliveryPolicy配置文件 <!-- 定义ReDelivery(重发机制)机制 ,重发时间间隔是100毫秒,最大重发次数是3次 --> <bean id="activeMQRedeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy"> <!--是否在每次尝试重新发送失败后,增长这个等待时间 --> <property name="u

rocketmq简单消息发送

有以下3种方式发送RocketMQ消息 可靠同步发送 reliable synchronous 可靠异步发送 reliable asynchronous 单向发送 one-way transmission 可靠同步发送 主要运用在比较重要一点消息传递/通知等业务 public class SyncProducer { public static void main(String[] args) throws Exception { DefaultMQProducer producer = new

ActiveMQ 部署及发送接收消息

一.           下载 下载地址:http://activemq.apache.org/ 我这里使用的版本为当前最新5.8.0. 下载版本有Windows和Linux两个版本,且都分为32位和64位.根据自己需要选择下载. 二.           安装 我这里下载的为windows的32位版本(apache-activemq-5.8.0-bin.zip),下载后直接解压到需要安装的目录或在直接解压到当前目录也可,解压完安装也完成. 解压后目录如上图,里面包含了示例和文档,及所有的jar

ActiveMQ消息发送与接收

推荐文章:ActiveMQ讯息传送机制以及ACK机制 ActiveMQ发送消息 1:创建链接工厂ConnectionFactory 2:创建链接Connection 3:启动session 4:创建消息发送目的地 5:创建生产者 6:发送消息 消息发送类: package com.apt.study.util.activemq; import java.util.concurrent.atomic.AtomicInteger; import javax.jms.Connection; impor

rabbitMQ学习笔记(二) 简单的发送与接收消息 HelloWorld

首先要下载rabbitmq的javaClient库,然后加入到项目中,下载地址为:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1.5/rabbitmq-java-client-bin-3.1.5.zip 1.发送消息 发送消息首先要获取与rabbitmq-server的连接,然后从渠道(chann)中指定的queue发送消息 , 不能定义两个queue名字相同,但属性不同 示例: Sender01.java 1 package

Spring使用MappingJackson2MessageConverter发送接收ActiveMQ消息

一.Spring使用JmsTemplate简化对JMS的访问 在JAVA对JMS队列访问中,使用默认的JMS支持将存在大量的检查型异常.通过Spring的支持,可以将所有的JMS的检查型异常转换为运行时非检查异常.以及在Spring中,通过配置JMSConnectionFactory的DefaultDestinationName指定发送和接收目的地. 下面是ActiveMQ的连接factory配置: 1 @Bean 2 public ActiveMQConnectionFactory getAM