消息中间件之ActiveMQ之一

1 ActiveMQ简介

1.1 ActiveMQ是什么?

  • ActiveMQ是Apache推出的,一款开源的,完全支持JMS1.1和J2EE 1.4规范的JMS Provider实现的消息中间件(Message Oriented Middleware,MOM)。

1.2 ActiveMQ能做什么?

  • 最主要的功能就是:实现JMS规范的Provider,用来帮助实现高可用、高性能、可伸缩、易用和安全的企业级面向消息服务的系统。

1.3 ActiveMQ的特点

  • 完全支持JMS1.1和J2EE 1.4规范(持久化、XA消息、事务)。
  • 支持多种传输协议:in-VM、TCP、SSL、NIO、UDP、JGroups、JXTA等。
  • 可插拔的体系结构,可用灵活定制,如消息存储方式、安全管理等。
  • 很容易和应用服务器继承使用。
  • 多种语言和协议编写客户端。语言:java、C、C++、C#、Ruby、Python、PHP等。
  • 从设计上保证了高性能的集群:客户端-服务器、点对点。
  • 可以很容易的和Spring集成使用。
  • 支持通过JDBC和Journal提供高速的消息持久化。
  • 支持和Axis的整合。

2 消息中间件

2.1 消息中间件的基本功能

  • 将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序。

2.2 消息中间件的主要特点

  • ①消息异步接收:类似手机短信的行为,消息的发送者不需要等待消息接收者的响应,减少软件多系统集成的耦合度。
  • ②消息可靠接收:确保消息在中间件可靠保存,只有当接收方收到后才删除消息,多个消息也可以组成原子事务。

2.3 消息中间件的主要应用场景

  • 在多个系统间进行整合和通讯的时候,通常会要求:
  • ①可靠传输,数据不能丢失,有的时候,也会要求不能重复传输。
  • ②异步传输,如果是同步发送数据,各个系统会出现互相等待,非常容易造成系统瓶颈。

2.4 目前比较知名的消息中间件

  • IBM MQSeries
  • BEA WebLogic JMS Server
  • Oracle AQ
  • Tibco
  • SwiftMQ
  • ActiveMQ
  • RobbitMQ
  • RocketMQ
  • ……

3 ActiveMQ的安装和基本使用

3.1 注意

  • 本人所使用的操作系统是CentOS7。

3.2 下载并安装ActiveMQ服务器端

3.3 启动运行

3.3.1 普通方式

  • ①进入ActiveMQ的bin目录下。
  • ②输入./activemq start

3.3.2 启动并指定日志文件

  • ①进入ActiveMQ的bin目录下
  • ②输入 ./activemq start > /tmp/activemq.log

3.4 检查是否已经启动

  • ActiveMQ默认采用61616端口提供JMS服务,使用8161端口提供管理控制台服务,执行以下命令以便检查是否成功启动ActiveMQ服务。

3.4.1 查看61616端口是否打开

  • netstat -anp | grep -i 61616

3.4.2 查看控制台输出或者日志文件

3.4.3 可以直接访问ActiveMQ的管理页面

  • http://localhost:8161/admin
  • 默认用户名/密码是admin/admin

3.5 关闭ActiveMQ

  • ①在ActiveMQ的bin目录下,输入./activemq stop。
  • ②根据端口找到进程号,杀死即可。

4 ActiveMQ的快速入门

4.1 导入pom

      <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.15.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xbean</groupId>
            <artifactId>xbean-spring</artifactId>
            <version>4.13</version>
        </dependency>

4.2 快速入门

  • 示例:生产者

package com.xuweiwei;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class QueueSender {
    public static void main(String[] args) throws JMSException, InterruptedException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.78.50:61616");

        Connection connection = connectionFactory.createConnection();
        connection.start();

        Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);

        Destination destination = session.createQueue("xuweiwei-queue");

        MessageProducer producer = session.createProducer(destination);

        for (int i = 0; i < 10; i++) {
            TextMessage textMessage = session.createTextMessage("许威威就是好啊" + i);
            Thread.sleep(1000);
            //通过消费生产者发出消息
            producer.send(textMessage);
        }

        session.commit();
        session.close();
        connection.close();

    }

}

  • 示例:消费者

package com.xuweiwei;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;

public class QueueReceiver {
    public static void main(String[] args) throws JMSException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.78.50:61616");

        Connection connection = connectionFactory.createConnection();
        connection.start();

        Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);

        Destination destination = session.createQueue("xuweiwei-queue");

        MessageConsumer consumer = session.createConsumer(destination);

        for (int i = 0; i < 10; i++) {
            TextMessage textMessage = (TextMessage) consumer.receive();
            session.commit();
            System.out.println("消费了" + textMessage.getText());
        }
        session.close();
        connection.close();

    }
}

原文地址:https://www.cnblogs.com/xuweiweiwoaini/p/10887991.html

时间: 2024-08-03 16:04:11

消息中间件之ActiveMQ之一的相关文章

JMS消息中间件之ActiveMQ学习

1.下载 下载二进制bin文件:http://activemq.apache.org/activemq-5132-release.html 下载源码: 2.启动: 解压任意路径: 启动后: 3.访问: 访问http://localhost:8161/admin/  用户名&密码:admin 4.主要应用:

JMS消息中间件系列[ActiveMQ](一)

版本5.13.3的特性: 1.Supports a variety of Cross Language Clients and Protocols from Java, C, C++, C#, Ruby, Perl, Python, PHP OpenWire for high performance clients in Java, C, C++, C# Stomp support so that clients can be written easily in C, Ruby, Perl, P

消息中间件之ActiveMQ

一,简介ActiveMQ是较优秀的JMS实现框架,在异步消息通信方面有简单便捷,性能良好的优点. 二,安装下载地址:http://mirror.bit.edu.cn/apache/activemq/解压即可 三,启动windows启动linux启动 四,java应用依赖的包:activemq-all-5.12.0.jar发送消息:// 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar<br/>ConnectionFactory connectionFacto

消息中间件--ActiveMQ&amp;JMS消息服务

### 消息中间件 ### ---------- **消息中间件** 1. 消息中间件的概述 2. 消息中间件的应用场景(查看大纲文档,了解消息队列的应用场景) * 异步处理 * 应用解耦 * 流量削峰 * 消息通信 ---------- ### JMS消息服务 ### ---------- **JMS的概述** 1. JMS消息服务的概述 2. JMS消息模型 * P2P模式 * Pub/Sub模式 3. 消息消费的方式 * 同步的方式---手动 * 异步的方式---listener监听 4.

消息中间件面试题31道RabbitMQ+ActiveMQ+Kafka

前言 文章开始前,我们先了解一下什么是消息中间件? 什么是中间件? 非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件. 什么是消息中间件? 是关注于数据的发送和接收,利用高效可靠的异步消息传递机制集成分布式系统 图示: 消息中间件RabbitMQ+ActiveMQ+Kafka的对比 接下来就是消息中间件面试题RabbitMQ+ActiveMQ+Kafka RabbitMQ消息中间件系列 1:RabbitMQ 中的 broker 是指什么?cl

分布式 dubbo zookeeper springmvc mybatis shiro restful redis fastdfs activemq

摘要: 摘要: SSH ++shiro+restful+bootstrap java架构 java企业架构 spring mvc +mybatis + KafKa+Flume+Zookeeper j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 分布式架构 分布式消息中间件:spring mvc +mybatis + KafKa+Flume+Zookeeper 分布式缓存:Redis spring mvc +mybatis + 分布式

ActiveMQ;RabbitMQ;ZeroMQ

中间件类型: Embedded middleware: As the name suggests, this typeof middleware handles embedded applications (software or firmware). RPC middleware: RPC (Remote Procedure Call)middleware communicates with applications using calls. Object request broker: He

C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

目       录 工业物联网和集成系统解决方案的技术路线... 1 前言... 1 第一章           系统架构... 3 1.1           硬件构架图... 3 1.2           组件构架图... 4 第二章           技术选型与介绍... 5 2.1           开发环境... 5 2.2           数据源... 5 2.3           数据采集... 5 2.4           数据上传服务... 6 2.5      

分布式 Dubbo+Zookeeper+springmvc+mybatis+shiro+restful+activemq+redis

1.      项目核心代码结构截图 <modules>        <!-- jeesz 工具jar -->        <module>jeesz-utils</module>        <!-- jeesz 公共配置jar -->        <module>jeesz-config</module>        <!-- jeesz 核心框架jar -->        <module