Apache ActiveMQ技术讲解文档

合集下载

activemq用法

activemq用法

activemq用法ActiveMQ是一个开源的分布式消息中间件,采用Java编写,它是Apache软件基金会的一个顶级项目。

ActiveMQ实现了Java Message Service(JMS)规范,可以在不同系统之间进行消息传递和通信。

下面将介绍ActiveMQ的用法。

1.安装与配置:2.创建队列:在ActiveMQ管理界面上,点击"Queues"选项卡,然后点击"Add a new Queue"按钮。

给队列指定一个名称,并配置其他参数,如持久性、最大消息数等。

点击"Add"按钮后,队列就会被创建。

3.发送和接收消息:ActiveMQ提供了多种编程语言的客户端库,可以方便地发送和接收消息。

以Java为例,使用JMS API可以完成这些操作。

首先,需要创建一个ConnectionFactory对象,指定ActiveMQ的连接URL。

然后,通过ConnectionFactory创建一个Connection对象,并启动连接。

接下来,创建一个Session对象,用于发送和接收消息。

最后,创建一个MessageProducer对象,通过调用它的send方法发送消息。

同样地,可以创建一个MessageConsumer对象,接收消息。

接收消息的时候,可以通过调用MessageConsumer的receive方法,阻塞等待接收消息;也可以注册一个MessageListener,通过回调方式接收消息。

具体代码如下:```javaimport javax.jms.*;public class ActiveMQExamplepublic static void main(String[] args) throws JMSException ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(brokerURL);Connection connection = connectionFactory.createConnection(;connection.start(;Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);Destination destination = session.createQueue("myQueue");MessageProducer producer =session.createProducer(destination);//发送消息TextMessage message = session.createTextMessage(;message.setText("Hello, ActiveMQ!");producer.send(message);//接收消息MessageConsumer consumer =session.createConsumer(destination);Message receivedMessage = consumer.receive(;if (receivedMessage instanceof TextMessage)String text = ((TextMessage) receivedMessage).getText(;System.out.println("Received message: " + text);}session.close(;connection.close(;}}```4.持久化与事务:ActiveMQ支持消息的持久化,保证消息在传送过程中不会丢失。

ActiveMQ应用开发指南

ActiveMQ应用开发指南

ActiveMQ应用开发指南ActiveMQ是一个开源的消息传递中间件,它能够通过许多协议和编程语言与各种系统集成。

作为Apache软件基金会的一个项目,ActiveMQ保证了可靠性和数据完整性,使得应用开发者更加轻松地开发分布式应用程序和服务。

1. 安装ActiveMQ要使用ActiveMQ进行应用开发,首先需要在本地计算机上安装ActiveMQ。

安装过程取决于操作系统和平台,因此应该访问ActiveMQ官方网站并从下载页面上获取适当的安装程序。

在安装过程中,应该选择默认设置以确保正确地安装ActiveMQ。

2. 使用ActiveMQActiveMQ提供了一种灵活而易于使用的API,它可以与多种开发语言集成,例如Java、C++、Python和Ruby等。

在使用ActiveMQ之前,必须先熟悉其基本概念和术语。

- Destination:消息发送和接收的地址- Producer:创建和发送消息的客户端- Consumer:接收和处理消息的客户端- Message:传递的数据单元,包含消息正文和相关元数据3. 创建ActiveMQ应用程序在使用ActiveMQ API之前,必须添加ActiveMQ类库到项目中。

这些类库在ActiveMQ安装目录的lib目录下,可以直接添加到项目中或通过构建工具来引用。

3.1 生产者创建生产者的主要任务是将数据转换为消息并将其发送到一个或多个消息目的地。

对于基于Java的应用程序而言,可以使用ActiveMQ所提供的几个类来创建一个生产者。

要创建与ActiveMQ Broker的连接并发送消息,需要以下步骤:- 创建ConnectionFactory对象- 创建Connection对象- 启动连接- 创建一个Session对象- 创建一个Destination(队列或主题)- 创建一个MessageProducer对象- 发送消息3.2 消费者对于基于Java的应用程序而言,需要使用ActiveMQ API中的许多具有各种方法和属性的类,以便从队列或主题中接收消息。

ActiveMQ基本介绍

ActiveMQ基本介绍

ActiveMQ基本介绍预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制ActiveMQ基本介绍1、ActiveMQ服务器工作模型通过ActiveMQ消息服务交换消息。

消息生产者将消息发送至消息服务,消息消费者则从消息服务接收这些消息。

这些消息传送操作是使用一组实现 ActiveMQ应用编程接口 (API) 的对象来执行的。

ActiveMQ客户端使用 ConnectionFactory 对象创建一个连接,向消息服务发送消息以及从消息服务接收消息均是通过此连接来进行。

Connection 是客户端与消息服务的活动连接。

创建连接时,将分配通信资源以及验证客户端。

这是一个相当重要的对象,大多数客户端均使用一个连接来进行所有的消息传送。

连接用于创建会话。

Session 是一个用于生成和使用消息的单线程上下文。

它用于创建发送的生产者和接收消息的消费者,并为所发送的消息定义发送顺序。

会话通过大量确认选项或通过事务来支持可靠传送。

客户端使用MessageProducer 向指定的物理目标(在API 中表示为目标身份对象)发送消息。

生产者可指定一个默认传送模式(持久性消息与非持久性消息)、优先级和有效期值,以控制生产者向物理目标发送的所有消息。

同样,客户端使用MessageConsumer 对象从指定的物理目标(在API 中表示为目标对象)接收消息。

消费者可使用消息选择器,借助它,消息服务可以只向消费者发送与选择标准匹配的那些消息。

消费者可以支持同步或异步消息接收。

异步使用可通过向消费者注册MessageListener 来实现。

当会话线程调用 MessageListener 对象的onMessage 方法时,客户端将使用消息。

2、ActiveMQ消息传送模型ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布/订阅模型),分别称作:PTP Domain 和Pub/Sub Domain。

ActiveMQ培训教程

ActiveMQ培训教程

一、ActiveMQ介绍 二、ActiveMQ安装配置 三、ActiveMQ架构 四、ActiveMQ消息模式 四、 消息模式 五、Java for ActiveMQ
入门实例
实例说明:
ActiveMQ发送和异步接受文本类型消息的简单功能 , 采用PTP模式
MQBroker
类com.honno.activemq.MQBroker负责启动ActiveMQ的消息代理。 代码片段: BrokerService broker = new BrokerService(); try { broker.addConnector("tcp://localhost:61616"); broker.start(); } catch (InterruptedException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); }
谢谢
1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, P HP。应用协议: 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简介

ActiveMQ简介

ActiveMQ简介ActiveMQ简介1. 什么是ActiveMQActiveMQ是⼀种开源的,实现了JMS1.1规范的,⾯向消息(MOM)的中间件,为应⽤程序提供⾼效的、可扩展的、稳定的和安全的企业级消息通信。

ActiveMQ使⽤Apache提供的授权,任何⼈都可以对其实现代码进⾏修改。

ActiveMQ的设计⽬标是提供标准的,⾯向消息的,能够跨越多语⾔和多系统的应⽤集成消息通信中间件。

ActiveMQ实现了JMS标准并提供了很多附加的特性。

这些附加的特性包括,JMX管理(java Management Extensions,即java管理扩展),主从管理(master/salve,这是集群模式的⼀种,主要体现在可靠性⽅⾯,当主中介(代理)出现故障,那么从代理会替代主代理的位置,不⾄于使消息系统瘫痪)、消息组通信(同⼀组的消息,仅会提交给⼀个客户进⾏处理)、有序消息管理(确保消息能够按照发送的次序被接受者接收)。

消息优先级(优先级⾼的消息先被投递和处理)、订阅消息的延迟接收(订阅消息在发布时,如果订阅者没有开启连接,那么当订阅者开启连接时,消息中介将会向其提交之前的,其未处理的消息)、接收者处理过慢(可以使⽤动态负载平衡,将多数消息提交到处理快的接收者,这主要是对PTP消息所说)、虚拟接收者(降低与中介的连接数⽬)、成熟的消息持久化技术(部分消息需要持久化到数据库或⽂件系统中,当中介崩溃时,信息不会丢失)、⽀持游标操作(可以处理⼤消息)、⽀持消息的转换、通过使⽤Apache的Camel可以⽀持EIP、使⽤镜像队列的形式轻松的对消息队列进⾏监控等。

2. ActiveMQ 特性⽀持JMS规范:ActiveMQ完全实现了JMS1.1规范。

JMS规范提供了同步消息和异步消息投递⽅式、有且仅有⼀次投递语义(指消息的接收者对⼀条消息必须接收到⼀次,并且仅有⼀次)、订阅消息持久接收等。

如果仅使⽤JMS规范,表明⽆论您使⽤的是哪家⼚商的消息代理,都不会影响到您的程序。

ActiveMQ技术文档

ActiveMQ技术文档

ActiveMQ技术文档1.概述消息队列(MQ)是一种应用程序对应用程序的通信方法。

应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。

消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。

排队指的是应用程序通过队列来通信。

队列的使用除去了接收和发送应用程序同时执行的要求。

ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。

ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现2.预期读者1.精通Java SE和Java EE技术。

2.熟悉JMS规范。

3.参加过一个以上大中型项目开发。

3.名称解释JMS:JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。

4.JMS规范介绍4.1.JMS的基本构件4.1.1.连接工厂连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory。

4.1.2.连接JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接。

4.1.3.会话JMS Session是生产和消费消息的一个单线程上下文。

会话用于创建消息生产者(producer)、消息消费者(consumer)和消息(message)等。

会话提供了一个事务性的上下文,在这个上下文中,一组发送和接收被组合到了一个原子操作中。

4.1.4.目的地目的地是客户用来指定它生产的消息的目标和它消费的消息的来源的对象。

JMS1.0.2规范中定义了两种消息传递域:点对点(PTP)消息传递域和发布/订阅消息传递域。

消息中间件ActiveMQ使用详解

消息中间件ActiveMQ使用详解

消息中间件ActiveMQ使⽤详解消息中间件ActiveMQ使⽤详解⼀、消息中间件的介绍介绍消息队列是指利⽤⾼效可靠的消息传递机制进⾏与平台⽆关的数据交流,并基于数据通信来进⾏分布式系统的集成。

特点(作⽤)应⽤解耦异步通信流量削峰(海量)⽇志处理消息通讯…...应⽤场景根据消息队列的特点,可以衍⽣出很多场景,或者说很多场景都能⽤到。

下⾯举⼏个例⼦:1)异步通信注册时的短信、邮件通知,减少响应时间;2)应⽤解耦信息发送者和消息接受者⽆需耦合,⽐如调⽤第三⽅;3)流量削峰例如秒杀系统;⼆、消息中间件的对⽐1.ActiveMQ官⽹:简介:ActiveMQ 是Apache出品,最流⾏的,能⼒强劲的开源消息总线。

ActiveMQ 是⼀个完全⽀持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应⽤中间仍然扮演着特殊的地位。

特点:1. ⽀持来⾃Java,C,C ++,C#,Ruby,Perl,Python,PHP的各种跨语⾔客户端和协议2. 完全⽀持JMS客户端和Message Broker中的企业集成模式3. ⽀持许多⾼级功能,如消息组,虚拟⽬标,通配符和复合⽬标4. 完全⽀持JMS 1.1和J2EE 1.4,⽀持瞬态,持久,事务和XA消息5. Spring⽀持,以便ActiveMQ可以轻松嵌⼊到Spring应⽤程序中,并使⽤Spring的XML配置机制进⾏配置6. 专为⾼性能集群,客户端 - 服务器,基于对等的通信⽽设计7. CXF和Axis⽀持,以便ActiveMQ可以轻松地放⼊这些Web服务堆栈中以提供可靠的消息传递8. 可以⽤作内存JMS提供程序,⾮常适合单元测试JMS9. ⽀持可插拔传输协议,例如in-VM,TCP,SSL,NIO,UDP,多播,JGroups和JXTA传输10. 使⽤JDBC和⾼性能⽇志⽀持⾮常快速的持久性2.RabbitMQ官⽹:简介:RabbitMQ 是⼀个由 Erlang 语⾔开发的 AMQP 的开源实现。

activeMQ

activeMQ

初识ActiveMQ消息中间件ActiveMQ是Apache的一个开源项目,它是一个能力强劲的开源消息总线,也是一个中间件产品。

它是JMS的一个实现。

在介绍ActiveMQ之前,先来复习一下J2EE中的JMS规范。

JMS是java Message Service的简称,用来发送异步消息,在不同系统和不同的模块之间我们可以利用它实现集成。

JMS有两个好处,第一个就是让模块之间或者系统之间的耦合度降低,第二个是异步通信。

JMS的消息机制有2种模型,一种是Point to Point,表现为队列的形式。

发送的消息,只能被一个接收者取走;另一种是Topic,可以被多个订阅者订阅,类似于群发。

在JMS中有这样几个重要的核心接口和类:1. ConnectionFactory,用于jms client获取与jms provider的连接。

不同的jms产品,对这个接口有不同的实现,比如说ActiveMQ,这个接口的实现类是ActiveMQConnectionFactory2. Connection,是由ConnectionFactory产生的,表示jms client与jms provider的连接3. Session,是由Connection产生的,表示一个会话。

Session是关键组件,Message、Producer/Consumer、Destination都是在Session上创建的4. Message,这个组件很好理解,就是传输的消息,里面包括head、properties、body,其中head是必选的5. Destination,是消息源,对发送者来说,就是消息发到哪里;对接收者来说,就是从哪里取消息。

Destination有2个子接口,Queue和Topic,分别对应上面提到的2种模型6. MessageProducer,是消息发送者,创建这个组件的代码类似:Java代码 :[java]Destination dest =session.createQueue("dotaQueue");// 消息目的地MessageProducer producer =session.createProducer(dest);// 消息发送者可以注意到,这里需要把Destination作为参数,传入createProducer()方法,这说明消息发送者是绑定到Destination上的,这个发送者发送的消息,会发送到这个绑定的Destination上7. MessageConsumer,是消息接收者,和Message Producer是相反的一种组件对JMD有所了解之后,我们来看ActiveMQ。

ActiveMQ文档

ActiveMQ文档

调研一下Apache ActiveMQ。

目标:1,整理一下收集的资料;2,部署一个Apache ActiveMQ Server;3,简单的应用;资料收集与整理:1。

JMS简介:JMS(Java Message Service,Java消息服务)是一组Java应用程序接口(Java API),它提供创建、发送、接收、读取消息的服务。

由Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得Java程序能够和其他消息组件进行通信。

JMS是一种与厂商无关的API,用来访问消息收发系统。

它类似于JDBC (Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的API,而JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。

(引自:/phrase/200604261605045.html)JMS API 是J2EE 平台的整体组成部分,允许在松耦合组件之间进行基于消息的通信。

通过客户机、Web 层组件、业务层企业JavaBeans (EJB) 和企业信息系统(EIS) 层服务之间的J2EE 堆栈可以发送和接收消息。

这些消息是异步发送的,消息发出后,发送方能够继续使用其他应用程序逻辑,消息代理(message broker) 负责代表发送方传递消息。

消息可以在特定的端点(发送方和接收方)之间发送和接收,或通过公共/订阅交互模式在生产者与消费者之间进行匿名传递。

在J2EE 架构内部,通过JMS 进行通信的组件可以使用容器提供的安全和事物处理功能。

JMS规范目前支持两种消息模型:点对点(point to point, queue)和发布/订阅(publish/subscribe,topic)。

点对点:消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。

这里要注意:消息被消费以后,queue中不再有存储,所以消息消费者不可能消费到已经被消费的消息。

ActiveMQ之基础讲解篇

ActiveMQ之基础讲解篇

ActiveMQ之基础讲解篇文档编号:2020-03-09当前版本:V1.0.0编写者:海带发布时间:2020-03-09修订记录1.概述 (4)1.1ActiveMQ是什么 (4)1.2整体架构 (4)1.2.1相关概念 (4)2.P2P (5)3.Publish (6)4.代码流程 (6)5.存储方式 (7)5.1KahaDB (7)5.2AMQ (8)5.3JDBC (8)5.4内存存储 (9)6.部署模式 (9)6.1单例模式 (9)6.2无共享主从模式 (9)6.3共享存储主从模式 (11)6.3.1基于数据库 (11)6.3.2基于文件系统 (12)7.网络连接 (13)7.1代理网络 (13)7.2网络发现 (14)8.实例 (15)9.性能调优 (15)1.概述本文档为海带中间件系列之ActiveMQ基础篇,描述了ActiveMQ的基本概念、运行机制及单Broker、多Broker的使用方法。

给大家明确一点,ActiveMQ只是一种工具,安装、配置后使用即可,可以简单地集成到Spring等框架中来,就像我们使用MySql数据库一样。

1.1ActiveMQ是什么ActiveMQ是一种MOM,即消息中间件,是用于以分布式应用或系统中的异步、松耦合、可靠、可扩展和安全通信的一类软件。

MOM 的总体思想是它作为消息发送器和消息接收器之间的消息中介,这种中介提供了一个全新水平的松耦合。

JMS 叫做Java 消息服务(Java Message Service),是Java 平台上有关面向MOM 的技术规范,旨在通过提供标准的产生、发送、接收和处理消息的API 简化企业应用的开发,类似于JDBC 和关系型数据库通信方式的抽象。

1.2整体架构1.2.1相关概念●Provider:纯Java 语言编写的JMS 接口实现(如ActiveMQ )●Domains:消息传递方式,包括点对点(P2P)、发布/订阅(Pub/Sub)两种●Connection factory:客户端使用连接工厂来创建与JMS provider 的连接●Destination:消息被寻址、发送以及接收的对象2.P2PP2P (点对点)消息域使用queue 作为Destination,消息可以被同步或异步的发送和接收,每个消息只会给一个Consumer 传送一次。

activemq监控程序的使用文档1.0

activemq监控程序的使用文档1.0

Activemq监控程序主要原理使用activemq-admin命令来查询activemq应用的各种状态,必要的要求是activemq的jmx 功能必须开启。

依赖软件版本1、 activemq5.3.1 以上的版本2、 jdk1.5以上activemq的jmx功能配置说明Activemq的jmx功能开启后,执行activemq-admin query 命令后,出现下面打印信息,代执行命令Java –jar amqmonitor.jar mq-listener.xml/data/develop/activemq说明:amqmonitor.jar 是activemq监控程序的jar名;mq-listener.xml是activemq监控程序的配置文件;/data/develop/activemq 是activemq程序的安装目录配置文件说明监控程序的配置文件名称可自定义。

但是内部结构是规定好的,下面是一个样例文件:<Config>为监控程序配置文件的根标签一级子标签有<Parameters>、<Compares>、<Contacts>、<SendInfo>。

<Parameters>主要是对单个队列的监控,<Compares>主要是比较两个队列的值,<Contacts>主要是联系人、<SendInfo>主要是邮件和发短信的配置说明。

<Parameters>标签中主要是<ObjectName>子标签,其代表着activemq中的destination,<ObjectName>的type属性只有两个值queue,topic,分别代表queue和topic 两种队列。

<ObjectName>的各种子标签都是desctination的各种属性。

其中Name是destination的定义名称,不需要与阀值作比较;其它字标签都有compare属性,来与标签中定义的阀值作比较,compare的值:1 代表大于、2代表小于、3代表大于等于、4代表小于等于。

Active MQ教程+配置

Active MQ教程+配置

ActiveMQ-陈波Active MQ是一个基于Apcache 2.0licenced发布,开放源码的JMS产品。

其特点为:1)提供点到点消息模式和发布/订阅消息模式;2)支持JBoss、Geronimo等开源应用服务器,支持Spring框架的消息驱动;3)新增了一个P2P传输层,可以用于创建可靠的P2P JMS网络连接;4)拥有消息持久化、事务、集群支持等JMS基础设施服务。

Apache activemq是最受欢迎和最强大的开源消息中间件。

Apache activemq是非常快速的,支持多种跨客户端语言和协议,并且还有许多先进功能。

Apache activemq完全遵守JMS1.1和J2EE 1.4规范。

Apache activemq是在Apache 2.0License许可下发布的。

一.ActiveMQ是什么?ActiveMQ is the most popular and powerful open source MessageBus.ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,尽管JMS 规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

下面是它的特性列表1.多种语言和协议编写客户端。

语言:Java,C,C++,C#,Ruby,Perl,Python,PHP。

应用协议:OpenWire,Stomp REST,WS Notification,XMPP,AMQP2.完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务)3.对Spring的支持,ActiveMQ可以很容得内嵌到使用Spring的系统里面去,而且也支持Spring2.0的特性4.通过了常见J2EE服务器(如Geronimo,JBoss4,GlassFish,WebLogic)的测试,其中通过JCA1.5resource adaptors的配置,可以让ActiveMQ可以自动的部署到任何兼容J2EE1.4商业服务器上5.支持多种传送协议:in-VM,TCP,SSL,NIO,UDP,JGroups,JXTA6.支持通过JDBC和journal提供高速的消息持久化7.从设计上保证了高性能的集群,客户端-服务器,点对点8.支持Ajax9.支持与Axis的整合10.可以很容易得调用内嵌JMS provider,进行测试二.ActiveMQ的竞争者1,其他开源JMS provider(资料来自):jbossmq(jboss4)jboss messaging(jboss5)joram-4.3.212006-09-22openjms-0.7.7-alpha-3.zip December26,2005mantamqubermqSomnifugiJMS2005-7-27开源的JMS Provider大部分都已经停止发展了,剩下的几个都是找到了东家,和某种J2EE 服务器挂钩,比如jboss mq与jboss,joram与jonas(objectweb组织),ActiveMQ与Geronimo(ASF APACHE基金组织),而在这3个之间,从网络底层来看,只有ActiveMQ使用了NIO,单从这个角度来看ActiveMQ在性能上会有一定的优势。

activemq用法(一)

activemq用法(一)

activemq用法(一)ActiveMQ用法详解概述ActiveMQ是一款开源的,基于JMS(Java消息服务)规范的消息中间件。

它提供了高性能、可靠的消息传递方式,支持多种通信协议。

安装配置1.下载ActiveMQ二进制文件,解压到指定目录。

2.配置ActiveMQ启动脚本,设置JAVA_HOME和ActiveMQ_HOME环境变量。

3.启动ActiveMQ服务器,通过命令行或脚本方式启动。

发送消息•创建连接工厂对象使用ActiveMQConnectionFactory类创建连接工厂对象,需要指定ActiveMQ服务器的地址和端口。

•创建连接对象通过连接工厂对象的createConnection()方法创建连接对象。

•创建会话对象通过连接对象的createSession()方法创建会话对象,可以设置事务和确认模式。

•创建目标对象使用会话对象的createQueue()或createTopic()方法创建目标对象,分别代表点对点和发布订阅模式。

•创建消息生产者对象通过会话对象的createProducer()方法创建消息生产者对象。

•创建消息对象使用会话对象的createTextMessage()方法创建文本消息对象,可以设置消息内容。

•发送消息通过消息生产者对象的send()方法发送消息。

接收消息•创建连接工厂对象、连接对象、会话对象和目标对象同上。

•创建消息消费者对象通过会话对象的createConsumer()方法创建消息消费者对象。

•注册消息监听器通过消息消费者对象的setMessageListener()方法注册消息监听器,实现对消息的接收和处理。

•接收消息在消息监听器的onMessage()方法中处理接收到的消息。

消息持久化•配置持久化方式在ActiveMQ的配置文件中配置消息持久化方式,可以选择将消息持久化到磁盘,从而保证消息的持久性。

消息传递模式•点对点模式点对点模式下,消息发送者将消息发送到一个指定的队列,消息接收者从队列中接收消息。

ACTIVEMQ入门教程

ACTIVEMQ入门教程

ACTIVEMQ入门教程ActiveMQ是一个开源的消息中间件,它具有高性能、可靠性和可扩展性的特点,可以在分布式系统中处理大量的消息通信。

本教程将介绍如何入门使用ActiveMQ,包括安装配置、基本概念和使用方法等。

一、安装配置3. 启动ActiveMQ:进入解压目录,找到bin文件夹,执行activemq命令(Windows下执行activemq.bat,Linux下执行activemq.sh)。

5. 配置连接信息:在管理控制台中,可以配置ActiveMQ的连接信息,包括端口号、用户名、密码等。

二、基本概念1. Broker:Broker是ActiveMQ中的核心组件,负责接收和分发消息。

一个Broker可以同时连接多个生产者和消费者。

2. Destination:Destination是消息发送和接收的目的地。

可以分为两种类型:Queue和Topic。

Queue用于Point-to-Point的消息通信,每个消息只能被一个消费者接收;Topic用于Publish/Subscribe的消息通信,每个消息可以被多个订阅者接收。

3. Producer:Producer是消息的发送者,负责将消息发送到Broker的Destination中。

4. Consumer:Consumer是消息的接收者,负责从Broker的Destination中接收消息。

5. Message:Message是ActiveMQ中的消息对象,包含消息的内容和一些元数据信息。

三、使用方法1. 发送和接收消息:首先需要创建一个连接,并创建一个会话。

然后创建一个Destination,并创建一个Producer发送消息到该Destination中。

接收消息的方法类似,创建一个Destination,并创建一个Consumer用于接收消息。

2. 消息过滤:可以通过消息选择器来过滤消息。

消息选择器使用SQL-92语法来选择消息。

例如,可以通过消息属性来选择消息:consumer.receive("color = 'red'")。

ActiveMQ简介

ActiveMQ简介

ActiveMQ简介我们都知道ActiveMQ是消息中间件,⾸先我们先来了解下⼀些相关的概念;消息“消息”是在两台计算机间传送的数据单位。

消息可以⾮常简单,例如只包含⽂本字符串;也可以更复杂,可能包含嵌⼊对象。

消息队列“消息队列”是在消息的传输过程中保存消息的容器,消息队列管理器在将消息从它的源中继到它的⽬标时充当中间⼈,队列的主要⽬的是提供路由并保证消息的传递;如果发送消息时接收者不可⽤,消息队列会保留消息,直到可以成功地传递它。

消息队列的特点消息队列的主要特点是异步处理,主要⽬的是减少请求响应时间和解耦。

所以主要的使⽤场景就是将⽐较耗时⽽且不需要即时(同步)返回结果的操作作为消息放⼊消息队列。

同时由于使⽤了消息队列,只要保证消息格式不变,消息的发送⽅和接收⽅并不需要彼此联系,也不需要受对⽅的影响,即解耦和。

ActiveMQ简介ActiveMQ是Apache软件基⾦会所研发的开放源代码消息中间件;由于ActiveMQ是⼀个纯Java程序,因此只需要操作系统⽀持Java虚拟机,ActiveMQ便可执⾏。

对Spring的⽀持,ActiveMQ可以很容易内嵌到使⽤Spring的系统⾥⾯去通过了常见J2EE服务器的测试ActiveMQ⾓⾊介绍1,Destination ⽬的地,消息发送者需要指定Destination才能发送消息,接收者需要指定Destination才能接收消息。

2,Producer 消息⽣产者,负责发送Message到⽬的地3,Consumer/Receiver 消息消费者,负责从⽬的地中消费(处理/监听/订阅)Message4,Message 消息消息封装⼀次通信的内容。

这⾥我们在spring整合ActiveMQ来写个⼩例⼦.先创建⼀个maven项⽬,并在pom.xml添加相关依赖,如下:<dependencies><!-- ActiveMQ客户端完整jar包依赖 --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>5.9.0</version></dependency><!-- ActiveMQ和Spring整合配置⽂件标签处理jar包依赖 --><dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>4.5</version></dependency><!-- Spring-JMS插件相关jar包依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>4.1.6.RELEASE</version></dependency><!-- Spring框架上下⽂jar包依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.6.RELEASE</version></dependency></dependencies>然后定义消息载体类型. 即要在ActiveMQ中传递的数据实体类型,消息载体对象必须实现接⼝java.io.Serializable, 因为消息需要在⽹络中传递,要求必须可序列化。

activemq

activemq

activemqActiveMQ使用文档1.安装需求1.1硬件*ActiveMQ 4.*发布版需要33M磁盘空间*ActiveMQ4.*开发版需要200M磁盘空间1.2操作系统*Windows: Windows XP SP2, Windows 2000, Windows Vista, Windows 7.*Unix: Ubuntu Linux, Powerdog Linux, MacOS, AIX, HP-UX, Solaris, 或其他支持java的系统1.3环境*运行需要jdk1.4以上,开发编译需要jdk1.5以上,ActiveMQ5需要jdk1.6以上*JAVA_HOME环境变量必须设定*jar必须设定到吃辣classpath里面2.Linux环境安装2.1下载:wget /path/tofile/apache-activemq-4.1.0-incubato r.tar.gz2.2解压缩:tar zxvf activemq-x.x.x.tar.gz2.3 设置可执行:cd [activemq_install_dir]/binchmod 755activemq2.4执行:bin/activemq或者:bin/activemq > /tmp/smlog 2>&1 &;最好:nohup bin/activemq > /tmp/smlog 2>&13.监控:netstat -an|find "61616"http://localhost:8161/admin4。

缺省配置:<beans< p="">xmlns="/schema/beans"xmlns:amq="/schema/core"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/sche ma/beans/schema/beans/spring-beans.xsd/schema/core/schema/core/activemq-core.xsd"><bean< p="">class="org.springframework.beans.factory.config.PropertyPl aceholderCo nfigurer">file:${activemq.conf}/credentials.properties</bean<></beans<>。

Apache ActiveMQ技术讲解文档

Apache ActiveMQ技术讲解文档

Apache ActiveMQ技术文档说明:本文档在我们最大努力范围之内确保其正确性、实效性和可观性,但并不代表所有的观点都是正确的,而仅代表个人看法。

如发现不当之处,请多指教,谢谢!联系方式:1、技术概述JMS是指java消息服务(Java Message Service)应用程序接口是一个java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS1.1规范,是消息驱动中间软件,为企业消息传递提供高可用,出色性能,可扩展,稳定和安全保障。

ActiveMQ使用Apache许可协议,因此任何人都可以使用和修改它而不必反馈任何改变。

ActiveMQ的目标是在尽可能多的平台和语言上提供一个标准的,消息驱动的应用集成。

ActiveMQ实现JMS规范并在此之上提供大量额外的特性。

2、ActiveMQ特性1.遵循JMS规范:包括同步和异步消息传递,对于预订者的持久消息等等。

依附于JMS 意味着不论JMS消息提供者是谁,同样的基本特性都是有效的2.连接:ActiveMQ提供各种连接选择,包括HTTP、HTTPS、IP多点传送,SSL,STOMP,TCP,UDP,XMPP等。

大量的连接协议支持使之具有更好的灵活性。

很多现有的系统使用一种特定协议并且不能改变,所以一个支持多种协议的消息平台降低了使用的门槛。

3.可插拔的持久性和安全:ActivemQ提供多种持久性方案可供选择,也可以完全按自己需求定制验证和授权。

4.用java建立消息驱动应用:ActiveMQ最常用在java应用中,用于发送和接收消息。

5.与应用服务器集成:ActiveMQ与java应用服务器集成是很常见的。

6.客户端APIs:ActiveMQ对多种语言提供客户端API,除了Java之外还有C/C++,.NET,Perl,PHP,Python,Ruby等。

activemq介绍

activemq介绍

• 非正常:
Mbean指标
• 指标:
–broker –connection –queue –topic
Mbean指标
• broker:
–TotalConsumerCount :共有多少个处理者 –TotalDequeueCount: 完成了多少消息 –TotalEnqueueCount: 提交了多少消息 –TotalMessageCount: 还有多少消息没被处 理(负数?)
• 发送第三方码
–发码步骤
• 1、标记码被占用 • 2、更新订单
–前台并发访问的时候,会发生两个用 户同时标记的情况,第二个用户发码 失败或者码发重复了
需要通知多系统、多 平台、多模块
• 订单付款成功,除了更新订单表, 还需要:
–给数个合作伙伴的CPS推送信息 –发送短信 –记录CPS来源 –。。。
Mbean指标
• 指标:
–connection
• 从哪儿来的 • 当前状态
Mbean指标
Mbean指标
• queue(通过发短信的Q确定amq的状 态)
–AverageEnqueueTime:在队列中的平均时间 –ConsumerCount:消息处理者的数量 –ProducerCount:消息提交者的数量 –DequeueCount:处理完成的消息数 –EnqueueCount:进入队列的消息数 –DispatchCount:已经分配给处理者的消息数 –ExpiredCount:废弃的消息数 –InFlightCount:正在处理的消息数
ActiveMQ监控
• Jconsole • Java指标:
– 内存占用 – 线程数量 – 加载类数量
• Mbean指标
– Broker – Queue – Topic
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache ActiveMQ技术文档说明:本文档在我们最大努力范围之内确保其正确性、实效性和可观性,但并不代表所有的观点都是正确的,而仅代表个人看法。

如发现不当之处,请多指教,谢谢!联系方式:1、技术概述JMS是指java消息服务(Java Message Service) 应用程序接口是一个java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS1.1规范,是消息驱动中间软件,为企业消息传递提供高可用,出色性能,可扩展,稳定和安全保障。

ActiveMQ使用Apache许可协议,因此任何人都可以使用和修改它而不必反馈任何改变。

ActiveMQ的目标是在尽可能多的平台和语言上提供一个标准的,消息驱动的应用集成。

ActiveMQ实现JMS规范并在此之上提供大量额外的特性。

2、A ctiveMQ特性1.遵循JMS规范:包括同步和异步消息传递,对于预订者的持久消息等等。

依附于JMS 意味着不论JMS消息提供者是谁,同样的基本特性都是有效的2.连接:ActiveMQ提供各种连接选择,包括HTTP、HTTPS、IP多点传送,SSL,STOMP,TCP,UDP,XMPP等。

大量的连接协议支持使之具有更好的灵活性。

很多现有的系统使用一种特定协议并且不能改变,所以一个支持多种协议的消息平台降低了使用的门槛。

3.可插拔的持久性和安全:ActivemQ提供多种持久性方案可供选择,也可以完全按自己需求定制验证和授权。

4.用java建立消息驱动应用:ActiveMQ最常用在java应用中,用于发送和接收消息。

5.与应用服务器集成:ActiveMQ与java应用服务器集成是很常见的。

6.客户端APIs:ActiveMQ对多种语言提供客户端API,除了Java之外还有C/C++,.NET,Perl,PHP,Python,Ruby等。

这使得ActiveMQ能用在Java之外的其它语言中。

很多其它语言都可以通过ActiveMQ提供的客户端API使用ActiveMQ的全部特性。

当然,ActiveMQ 代理器(broker)仍然是运行在java虚拟机上,但是客户端能够使用其它的被支持的语言。

7.代理器集群(Broker clustering):为了利于扩展,多个ActiveMQ broker能够联合工作。

这个方式就是network of brokers并且能支持多种拓扑结构。

8.高级代理器特性和客户端选项:ActiveMQ为代理器和客户端连接提供很多高级的特性。

ActiveMQ也可以通过代理器的XML配置文件支持Apache Camel。

9.简单的管理:ActiveMQ是为开发者设计的。

它并不需要专门的管理工具,因为它提供各种易用且强大的管理特性。

有很多方法去监控ActiveMQ的各个方面,可以通过JMX 使用JConsole或ActiveMQ web console;可以运行ActiveMQ消息报告;可以用命令行脚本;可以通过日志。

3、松耦合与ActiveMQActiveMQ提供松耦合的应用架构。

松耦合一般是为了减轻经典RPC(Remote Procedure Calls)调用的紧耦合架构而被引入的。

该松耦合以异步形式存在,任何一个应用对ActiveMQ 的调用不依赖于任何其它应用,没有任何依赖或者时序要求。

应用依赖于ActiveMQ的能力保证消息传递。

因此,我们把应用发送消息的形式称之为触发和忘记(fire-and-forget)--应用发送消息到ActiveMQ之后并不关心消息如何或者什么时候被传递。

同样的消息的接收者也不关心消息从哪里或者如何到来。

在不同的环境中这样做的好处是允许客户端使用不同的语言编写甚至使用不同的线路协议。

ActiveMQ作为中间人存在,允许不同环境的集成和异步交互。

使用RPC,当一个应用调用另一个应用,调用者将被阻塞知道被调用者返回结果。

图1.1描述了这个过程。

调用方(Application one)将被阻塞直到被调用方(Application two)返回控制权。

很多系统使用RPC并且成功了。

但是对于这样一个紧耦合系统确实有很多缺点:最显著的缺点是,即使很小的一个改变都要较高的维护代价;正确的时机也很重要,当请求从应用1发到应用2时,两个系统都必须正常工作,同样的,响应从应用2发送到应用1时,两个系统也必须正常工作。

这样的时序要求有点麻烦,使得系统稳定性降低。

现在我们把这个紧耦合系统和图1.2的系统进行比较。

在图1.2中,应用1发送消息到MOM只是一个单方行为。

可能一段时间后,应用2从MOM 接收消息,这也是一个单方行为。

任何一方都不需要知道另一方的存在,它们之间也没有任何时序要求。

所以在分布式系统设计时,松耦合系统比紧耦合系统有巨大的优势。

如图所示,这就是ActiveMQ存在的地方。

考虑现在其中的一个应用必须搬到一个新的地方。

这可能在新硬件引入或应用需要移动时发生。

如果是一个紧耦合系统,这样的迁移会很困难,因为系统的其它部分都必须停止工作等待迁移完成。

如果是松耦合系统,系统的各个部分能够自由迁移而不影响其它部分。

考虑这样一个场景,应用A和B各有很多个实例,其中各个实例分布在不同的机器上。

ActiveMQ安装在另外的机器上。

在这种情况下,任何一个应用实例都可以自由移动而不影响其它应用。

事实上,多个ActiveMQ实例也可以通过network of brokers配置联合使用。

这就允许ActiveMQ实例自由迁移而不影响应用A或应用B。

采用这种价构,系统的任何一部分在任何时间都可以停机进行维护而不影响整个系统。

更多的介绍将放在第10章。

总之,ActiveMQ提供一个令人难以置信的灵活性允许松耦合思想变成现实。

对于某些情况不能使用异步方式实现,ActiveMQ也提供消息的请求/回复模式支持。

4、何时使用ActiveMQ有很多情况ActiveMQ和异步消息能对一个系统的架构产生有意义的作用。

下面列举一些场景。

1.不同语言应用集成----ActiveMQ使用java编写,并且提供一个java客户端API。

但ActiveMQ也为C/C++,.NET,Perl,PHP,Python,Ruby等提供客户端。

当你考虑在不同平台不同语言下的各个应用进行集成时,这将是一个巨大的优势。

不同语言的客户端API使各种不同的语言能够通过ActiveMQ发送和接收消息。

对于ActiveMQ提供的多语言兼容,还有一个好处是相对于RPC调用,它能帮助系统各应用间的解耦。

2.RPC的替代者----应用广泛的使用RPC模式的同步调用。

想一下,现在大量使用RPC 调用的客户端服务器模式的应用,它们包括ATMs,大多数web应用,信用卡系统,销售点(point-of-sale)系统等。

尽管它们大多数是成功的,但是转换到异步消息模式能够在保证正确响应的情况下带来一些好处。

使用同步请求的系统在规模上有较大的限制,因为请求会被阻塞,从而导致整个系统变慢。

如果使用异步消息替代,可以很容易增加额外的消息接收者,使得消息能被并发消耗,从而加快请求处理。

当然,必须你系统应用间是解耦的。

3.应用间解耦----就是上面讨论过的,紧耦合系统能带来很多问题,特别是在应用是分布式的情况下。

松耦合系统,也就是依赖性小的系统,可以更好地适应未知变化。

不只是系统某部分的改变不会影响整个系统,而且部件间的交互也更简单。

相比使用同步的系统(调用者必须等待被调用者返回信息),异步系统(调用方发送消息后就不管,即fire-and-forget)能够给我们带来事件驱动架构(event-driven architecture EDA).4.作为事件驱动架构的骨架----解耦,异步架构的系统允许通过代理器自己配置更多的客户端,内存等(即vertical scalability)来扩大系统,而不是增加更多的代理器(即horizontal scalability)。

考虑如亚马逊这样繁忙的电子商务系统。

当用户购买物品,事实上系统需要很多步骤去处理,包括下单,创建发票,付款,执行订单,运输等。

但是用户下单后,会立即返回“谢谢你下单”的界面。

不只是没有延迟,而且用户还会受到一封邮件表明订单已经收到。

在亚马逊下单的例子就是一个多步处理的例子。

每一步都由单独的服务去处理。

当用户下单是,有一个同步的体积表单动作,但整个处理流程并不通过浏览器同步处理。

相反地,订单马上被接受和反馈。

而剩下的步骤就通过异步处理。

如果在处理过程中出错,用户会通过邮件收到通知。

这样的异步处理能提供高负载和高可用性。

5.提高系统扩展性。

很多使用事件驱动设计的系统是为了获得高可扩展性,例如电子商务,政府,制造业,线上游戏等。

通过异步消息分开商业处理步骤给各个应用,能够带来很多可能性。

考虑设计一个应用来完成一项特殊的任务。

这就是面向服务的架构(service-oriented architecture SOA)。

每一个服务完成一个功能并且只有一个功能。

应用就通过服务组合起来,服务间使用异步消息和最终一致性。

这样的设计便可以引入一个复杂事件处理概念(complex event processing CEP)。

使用CEP,部件间的交互可以被记录追踪。

在异步消息系统中,可以很容易在部件间增加一层处理。

5、使用步骤1.从apache官网下载activeMQ解压到任意目录之后进入bin文件夹,运行activemq.bat,默认占用8161端口,访问http://localhost:8161/admin/可以查看activeMQ首页2.activeMQ包括客户端和服务器,我们首先在客户端加入activeMQI.导入jar包II.mqclient.propertiesIII.创建jmsSender类public class JmsSender {/*** @Description: 消息发送者* @param zyflsbm 消息类型* @param message 消息内容* @return* @date: 2013-3-11*/public void send(String topic,String message){try { // 使用默认的配置文件(进程当前路径下的mqclient.properties文件) 创建MQClient对象String path = JmsSender.class.getClassLoader().getResource("mqclient.properties").g etPath();MQClient.setConfigFilePath(path);MQClient client = MQClient.getInstance();// 创建与Test主题关联的MQProducer对象, 此对象用于向Test主题发送消息MQProducer producer = client.createTopicProducer("CLIENT_RESOURCE");// 创建一个消息对象MQMessage msg = new MQMessage();// 设置消息内容(json串)msg.setContent(message);try {producer.send(msg);} catch (MQException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("send: " + msg.getContent());} catch (MQException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}IV.客户端调用jmsSender类的方法@RequestMapping("/send.do")public void send(HttpServletRequest request,HttpServletResponse response) throws IOException{String json=(String)request.getAttribute("json");new JmsSender().send("客户端请求", "aa", json);String contextPath = request.getContextPath();response.sendRedirect(contextPath+"/user/list.do");}3.服务端ActiveMQ配置I.首先就是导入相同的jar包以及相同的activemq.properties配置文件II.创建listener类,继承ServletContextListenerpublic void contextInitialized(ServletContextEvent arg0) {// TODO Auto-generated method stubSystem.out.println("-------开始监听消息");try {// SelectDataService selectDataService = (SelectDataService) ContextHolder.getBean("selectDataService");String path = ReceiveMessageListener.class.getClassLoader().getResource("mqclient.p roperties").getPath();MQClient.setConfigFilePath(path);MQClient client = MQClient.getInstance();//获取要同步数据的专业网管系统MQConsumer consumer =client.createDurableTopicConsumer("CLIENT_RESOURCE","CLIENT_RESOURCE ");consumer.setMessageListener(new JmsReceiver());} catch (MQException e) {// TODO Auto-generated catch blocke.printStackTrace();}}III.在web.xml中配置listener接收消息<!-- 监听消息服务器,接收消息 --><listener><listener-class>com.baidu.jms.ReceiveMessageListener</listener-class> </listener>IV.创建JMSReceiver类并且实现MQListener/*** 处理收到的资源数据* @author Administrator**/public void onMessage(MQMessage msg){try{ApplicationContext ac = new ClassPathXmlApplicationContext("/spring.xml");SelectDataService selectDataService = (SelectDataService)ac.getBean("selectDataService");//从消息中取出数据String jsonData= msg.getContent();System.out.println("接收方: " + jsonData);//解析数据...//将json格式字符串转换成mapJSONObject jsonObject=JSONObject.fromObject(jsonData);Map<String,String> map=new HashMap<String, String>();Iterator it = jsonObject.keys();while(it.hasNext()){String key=String.valueOf(it.next());String value=(String)jsonObject.get(key);map.put(key, value);}//拼接sql语句String operate = map.get("operate");String sql="";String date=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());//将更新信息保存到操作表中sql="insert into t_operate(id,operate,updatetime) values('"+WebUtils.getRandomId()+"','"+operate+"','"+date+"')";selectDataService.update(sql);if("insert".equals(operate)){sql="insert into t_user(id,loginName,password,phone,mail) values('"+map.get("id")+"','"+map.get("loginName")+"','"+map.get("pas sword")+"','"+map.get("phone")+"','"+map.get("mail")+"')";}else if("update".equals(operate)){sql="update t_user set loginName='"+map.get("loginName")+"',password='"+map.get("password")+ "',phone='"+map.get("phone")+"',mail='"+map.get("mail")+"' where id='"+map.get("id")+"'";}else if("delete".equals(operate)){sql="delete from t_user where id='"+map.get("id")+"'";}else{sql=null;}if(sql!=null){//根据接收的sql语句更新数据库selectDataService.update(sql);}System.out.println("数据更新成功");-------------------------------Spring集成Pom文件<dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version> </dependency><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-core</artifactId><version>${activemq_version}</version></dependency><dependency><groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>${activemq_version}</version> </dependency>。

相关文档
最新文档