ActiveMQ

一、ActiveMQ基础 MQ (MessageQueue)
  • ActiveMQ是由Apache出品的,一款最流行的,能力强劲的 开源消息总线.
  • ActiveMQ默认使用的TCP连接端口是 61616,
  • 通过查看该端口的信息可以测试ActiveMQ是否成功启动

    C:\Users\Administrator>netstat -an|find "61616"
     TCP    0.0.0.0:61616          0.0.0.0:0              LISTENING
     TCP    [::]:61616             [::]:0                 LISTENING
    
  • 停止服务器,只需要按着 Ctrl+Shift+C,之后输入 y 即可。

二、ActiveMQ特性列表
  1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WS Notification,XMPP,AMQP
  2. 完全支持JMS1.1和J2EE 1.4规范 (持久化,XA消息,事务)
  3. 对Spring的支持,ActiveMQ可以很容易内嵌到使用Spring的系统里面去,而且也支持Spring2.0特性
  4. 通过了常见J2EE服务器(如 Geronimo,JBoss 4, GlassFish,WebLogic)的测试,其中通过JCA 1.5 resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE 1.4 商业服务器上
  5. 支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA
  6. 支持通过JDBC和journal提供高速的消息持久化
  7. 从设计上保证了高性能的集群,客户端-服务器,点对点
  8. 支持Ajax
  9. 支持与Axis的整合
  10. 可以很容易得调用内嵌JMS provider,进行测试
三、什么情况下使用ActiveMQ?
  1. 多个项目之间集成 : 跨平台、多语言、多项目
  2. 降低系统间模块的耦合度,解耦 :软件扩展性
  3. 系统前后端隔离 : 前后端隔离,屏蔽高安全区
四、应用实例
1)下载ActiveMQ

http://activemq.apache.org/

2)运行ActiveMQ

解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhost:8161/admin/,账号/密码:admin/admin

3)创建Eclipse项目并运行

创建project:ActiveMQ-5.5,并导入apache-activemq-5.5.1\lib目录下需要用到的jar文件,项目结构如下图所示:

4)代码

Sender.java

package com.weijiao.activemq;

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.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {
    private static final int SEND_NUMBER = 2;

    public static void main(String[] args) {
        // ConnectionFactory :连接工厂,JMS 用它创建连接
        ConnectionFactory connectionFactory;
        // Connection :JMS 客户端到JMS Provider 的连接
        Connection connection = null;
        // Session: 一个发送或接收消息的线程
        Session session;
        // Destination :消息的目的地;消息发送给谁.
        Destination destination;
        // MessageProducer:消息发送者
        MessageProducer producer;
        // TextMessage message;
        // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
        try {
            // 构造从工厂得到连接对象
            connection = connectionFactory.createConnection();
            // 启动
            connection.start();
            // 获取操作连接
            session = connection.createSession(Boolean.TRUE,
                    Session.AUTO_ACKNOWLEDGE);
            // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
            destination = session.createQueue("SecondQueue");
            // 得到消息生成者【发送者】
            producer = session.createProducer(destination);
            // 设置不持久化,此处学习,实际根据项目决定
            producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
            // 构造消息,此处写死,项目就是参数,或者方法获取
            sendMessage(session, producer);
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != connection)
                    connection.close();
            } catch (Throwable ignore) {
            }
        }
    }

    public static void sendMessage(Session session, MessageProducer producer)
            throws Exception {
        for (int i = 1; i <= SEND_NUMBER; i++) {
            TextMessage message = session.createTextMessage("ActiveMq 发送的消息"
                    + i);
            // 发送消息到目的地方
            System.out.println("发送消息:" + "ActiveMq 发送的消息" + i + ".....");
            producer.send(message);
        }
    }
}

Receiver.java

package com.weijiao.activemq;

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.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Receiver {
    public static void main(String[] args) {
        // ConnectionFactory :连接工厂,JMS 用它创建连接
        ConnectionFactory connectionFactory;
        // Connection :JMS 客户端到JMS Provider 的连接
        Connection connection = null;
        // Session: 一个发送或接收消息的线程
        Session session;
        // Destination :消息的目的地;消息发送给谁.
        Destination destination;
        // 消费者,消息接收者
        MessageConsumer consumer;
        connectionFactory = new ActiveMQConnectionFactory(
                ActiveMQConnection.DEFAULT_USER,
                ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
        try {
            // 构造从工厂得到连接对象
            connection = connectionFactory.createConnection();
            // 启动
            connection.start();
            // 获取操作连接
            session = connection.createSession(Boolean.FALSE,
                    Session.AUTO_ACKNOWLEDGE);
            // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
            destination = session.createQueue("SecondQueue");
            consumer = session.createConsumer(destination);
            while (true) {
                // 设置接收者接收消息的时间,为了便于测试,这里谁定为100s
                TextMessage message = (TextMessage) consumer.receive(500000);
                if (null != message) {
                    System.out.println("收到消息 : " + message.getText() + "====");
                } else {
                    break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != connection)
                    connection.close();
            } catch (Throwable ignore) {
            }
        }
    }
}

转载自:http://www.cnblogs.com/xwdreamer/archive/2012/02/21/2360818.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
### ActiveMQ 使用指南和配置教程 ActiveMQ 是一个功能强大的消息中间件,广泛应用于分布式系统中。以下是关于 ActiveMQ 的安装、配置及使用方法的详细说明。 #### 1. 安装与启动 ActiveMQ 的安装过程相对简单。首先需要下载并解压 ActiveMQ 的二进制文件[^2]。完成解压后,进入 `bin` 目录,根据操作系统选择合适的启动脚本: ```bash # 在 Linux 或 macOS 上 ./activemq start # 在 Windows 上 activemq.bat start ``` 启动后,可以通过访问默认管理界面 `http://localhost:8161/admin/` 来验证是否成功运行。 #### 2. 配置文件详解 ActiveMQ 的核心配置文件为 `activemq.xml`,位于安装目录下的 `conf` 文件夹中[^5]。以下是一些常见的配置项: - **持久化存储**:ActiveMQ 支持多种持久化机制,如 KahaDB 和 LevelDB。默认使用 KahaDB,其配置如下: ```xml <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> ``` 如果需要切换到 LevelDB,可以修改为: ```xml <persistenceAdapter> <levelDB directory="${activemq.data}/leveldb"/> </persistenceAdapter> ``` - **日志存储路径**:日志文件通常存储在 `%activemq安装目录%/data/kahadb` 中[^5]。 #### 3. 使用方法 ActiveMQ 提供了多种使用模式,包括点对点(Point-to-Point)和发布/订阅(Publish/Subscribe)。具体操作步骤可参考相关文档[^4]。 以下是一个简单的 Java 示例代码,展示如何向队列发送消息: ```java import javax.jms.*; import org.apache.activemq.ActiveMQConnectionFactory; public class Producer { public static void main(String[] args) throws JMSException { ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); Connection connection = connectionFactory.createConnection(); connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = session.createQueue("TEST.QUEUE"); MessageProducer producer = session.createProducer(destination); TextMessage message = session.createTextMessage("Hello ActiveMQ!"); producer.send(message); session.close(); connection.close(); } } ``` #### 4. 管理控制台 ActiveMQ 提供了一个基于 Web 的管理控制台,用于监控和管理消息队列及主题。可以通过以下方式访问控制台[^3]: - 打开浏览器并输入地址:`http://localhost:8161/admin/` - 默认用户名和密码为 `admin/admin` #### 5. 常见问题解决 如果在使用过程中遇到问题,可以参考以下建议: - **无法连接到服务器**:确保 ActiveMQ 服务已正确启动,并检查防火墙设置。 - **日志文件过大**:调整日志级别或清理旧的日志文件[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值