ajax activemq(activemq和jms是种什么关系)

:暂无数据 2026-07-05 08:10:06 2

ajax activemq(activemq和jms是种什么关系)

大家好,如果您还对ajax activemq不太了解,没有关系,今天就由本站为大家分享ajax activemq的知识,包括activemq和jms是种什么关系的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

activemq和jms是种什么关系

  JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。而activemq则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者。
  jms 的一个标准或者说是一个协议. 通常用于企业级应用的消息传递. 主要有topic 消息(1 对多), queue 消息(1对1)。activemq 是一个jms 的实现, apache 出的.
  另外还其它的实现 jboss 。
  MQ简介:
  MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBMWEBSPHERE MQ。
  MQ特点:
  MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。
  使用场景:
  在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。
  JMS简介:
  JMS即Java消息服务(Java Message Service)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
  定义:
  JMS(Java Messaging Service)是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发,翻译为Java消息服务。
  简介:
  JMS是一种与厂商无关的 API,用来访问消息收发系统消息。它类似于JDBC(Java DatabaseConnectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商目前都支持JMS,包括 IBM 的 MQSeries、BEA的 Weblogic JMS service和 Progress 的 SonicMQ,这只是几个例子。 JMS 使您能够通过消息收发服务(有时称为消息中介程序或路由器)从一个 JMS 客户机向另一个JMS客户机发送消息。消息是 JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象 (ObjectMessage)、属性集合 (MapMessage)、字节流 (BytesMessage)、原始值流 (StreamMessage),还有无有效负载的消息 (Message)。
  JMS和MQ的关系:
  JMS是一个用于提供消息服务的技术规范,它制定了在整个消息服务提供过程中的所有数据结构和交互流程。而MQ则是消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者;MQ的实现可以基于JMS,也可以基于其他规范或标准。
  支持JMS的开源MQ:
  目前选择的最多的是ActiveMQ。
  ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
  主要特点:
  1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: OpenWire,Stomp REST,WSNotification,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,进行测试
  11. ActiveMQ速度非常快;一般要比jbossMQ快10倍。
  优点:是一个快速的开源消息组件(框架),支持集群,同等网络,自动检测,TCP,SSL,广播,持久化,XA,和J2EE1.4容器无缝结合,并且支持轻量级容器和大多数跨语言客户端上的Java虚拟机。消息异步接受,减少软件多系统集成的耦合度。消息可靠接收,确保消息在中间件可靠保存,多个消息也可以组成原子事务。
  缺点:ActiveMQ默认的配置性能偏低,需要优化配置,但是配置文件复杂,ActiveMQ本身不提供管理工具;示例代码少;主页上的文档看上去比较全面,但是缺乏一种有效的组织方式,文档只有片段,用户很难由浅入深进行了解,二、文档整体的专业性太强。在研究阶段可以通过查maillist、看Javadoc、分析源代码来了解。

activemq 持久化消息删除调用是什么方法

ActiveMQ的另一个问题就是只要是软件就有可能挂掉,挂掉不可怕,怕的是挂掉之后把信息给丢了,所以本节分析一下几种持久化方式:
一、持久化为文件
ActiveMQ默认就支持这种方式,只要在发消息时设置消息为持久化就可以了。
打开安装目录下的配置文件:
D:\ActiveMQ\apache-activemq\conf\activemq.xml在越80行会发现默认的配置项:
《persistenceAdapter》
《kahaDB directory="${activemq.data}/kahadb"/》
《/persistenceAdapter》
注意这里使用的是kahaDB,是一个基于文件支持事务的消息存储器,是一个可靠,高性能,可扩展的消息存储器。
他的设计初衷就是使用简单并尽可能的快。KahaDB的索引使用一个transaction log,并且所有的destination只使用一个index,有人测试表明:如果用于生产环境,支持1万个active connection,每个connection有一个独立的queue。该表现已经足矣应付大部分的需求。
然后再发送消息的时候改变第二个参数为:
MsgDeliveryMode.Persistent
Message保存方式有2种
PERSISTENT:保存到磁盘,consumer消费之后,message被删除。
NON_PERSISTENT:保存到内存,消费之后message被清除。
注意:堆积的消息太多可能导致内存溢出。
然后打开生产者端发送一个消息:
wps30F4.tmp
不启动消费者端,同时在管理界面查看:
wps3105.tmp
发现有一个消息正在等待,这时如果没有持久化,ActiveMQ宕机后重启这个消息就是丢失,而我们现在修改为文件持久化,重启ActiveMQ后消费者仍然能够收到这个消息。
wps3106.tmp
二、持久化为数据库
***隐藏网址***
D:\ActiveMQ\apache-activemq\lib目录下。
打开并修改配置文件:
复制代码
《beans
***隐藏网址***
***隐藏网址***
***隐藏网址***
***隐藏网址***
《!-- Allows us to use system properties as variables in this configuration file --》
《bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"》
《property name="locations"》
《value》file:${activemq.conf}/credentials.properties《/value》
《/property》
《/bean》
《!-- Allows accessing the server log --》
《bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery"
lazy-init="false" scope="singleton"
init-method="start" destroy-method="stop"》
《/bean》
《!--
The 《broker》 element is used to configure the ActiveMQ broker.
--》
***隐藏网址***
《destinationPolicy》
《policyMap》
《policyEntries》
《policyEntry topic="》" 》
《!-- The constantPendingMessageLimitStrategy is used to prevent
slow topic consumers to block producers and affect other consumers
by limiting the number of messages that are retained
For more information, see:
***隐藏网址***
--》
《pendingMessageLimitStrategy》
《constantPendingMessageLimitStrategy limit="1000"/》
《/pendingMessageLimitStrategy》
《/policyEntry》
《/policyEntries》
《/policyMap》
《/destinationPolicy》
《!--
The managementContext is used to configure how ActiveMQ is exposed in
JMX. By default, ActiveMQ uses the MBean server that is started by
the JVM. For more information, see:
***隐藏网址***
--》
《managementContext》
《managementContext createConnector="false"/》
《/managementContext》
《!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, see:
***隐藏网址***
《kahaDB directory="${activemq.data}/kahadb"/》
--》
《persistenceAdapter》
《jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#derby-ds"/》
《/persistenceAdapter》
《!--
The systemUsage controls the maximum amount of space the broker will
use before disabling caching and/or slowing down producers. For more information, see:
***隐藏网址***
--》
《systemUsage》
《systemUsage》
《memoryUsage》
《memoryUsage percentOfJvmHeap="70" /》
《/memoryUsage》
《storeUsage》
《storeUsage limit="100 gb"/》
《/storeUsage》
《tempUsage》
《tempUsage limit="50 gb"/》
《/tempUsage》
《/systemUsage》
《/systemUsage》
《!--
The transport connectors expose ActiveMQ over a given protocol to
clients and other brokers. For more information, see:
***隐藏网址***
--》
《transportConnectors》
《!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --》
《transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/》
《transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/》
《transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/》
《transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/》
《transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/》
《/transportConnectors》
《!-- destroy the spring context on shutdown to stop jetty --》
《shutdownHooks》
***隐藏网址***
《/shutdownHooks》
《/broker》
《bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"》
《property name="driverClassName" value="com.mysql.jdbc.Driver"/》
《property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/》
《property name="username" value="root"/》
《property name="password" value=""/》
《property name="maxActive" value="200"/》
《property name="poolPreparedStatements" value="true"/》
《/bean》
《!--
Enable web consoles, REST and Ajax APIs and demos
The web consoles requires by default login, you can disable this in the jetty.xml file
Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
--》
《import resource="jetty.xml"/》
《/beans》
《!-- END SNIPPET: example --》

文章分享结束,ajax activemq和activemq和jms是种什么关系的答案你都知道了吗?欢迎再次光临本站哦!

ajax activemq(activemq和jms是种什么关系)

本文编辑:admin

更多文章:


网页制作代码特效大全(谁知道网页打字机特效的代码)

网页制作代码特效大全(谁知道网页打字机特效的代码)

大家好,如果您还对网页制作代码特效大全不太了解,没有关系,今天就由本站为大家分享网页制作代码特效大全的知识,包括谁知道网页打字机特效的代码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月7日 04:20

下载mysql的步骤(win10安装mysql的步骤和方法)

下载mysql的步骤(win10安装mysql的步骤和方法)

各位老铁们,大家好,今天由我来为大家分享下载mysql的步骤,以及win10安装mysql的步骤和方法的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 04:10

webstorm怎么读(webstorm文件结构怎么打开)

webstorm怎么读(webstorm文件结构怎么打开)

本篇文章给大家谈谈webstorm怎么读,以及webstorm文件结构怎么打开对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 03:50

nio新特性(Java NIO与IO的区别和比较)

nio新特性(Java NIO与IO的区别和比较)

各位老铁们好,相信很多人对nio新特性都不是特别的了解,因此呢,今天就来为大家分享下关于nio新特性以及Java NIO与IO的区别和比较的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月7日 03:40

checked in(check in和check out的区别)

checked in(check in和check out的区别)

本篇文章给大家谈谈checked in,以及check in和check out的区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 01:20

java经典上机编程题(java上机题 请问这道题应该怎么写)

java经典上机编程题(java上机题 请问这道题应该怎么写)

大家好,java经典上机编程题相信很多的网友都不是很明白,包括java上机题 请问这道题应该怎么写也是一样,不过没有关系,接下来就来为大家分享关于java经典上机编程题和java上机题 请问这道题应该怎么写的一些知识点,大家可以关注收藏,免

2026年9月7日 01:10

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧

各位老铁们,大家好,今天由我来为大家分享白马影视,以及影视剧中有哪些剧情颠覆了你的三观的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 00:30

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)

各位老铁们,大家好,今天由我来为大家分享mysql varchar和char的区别,以及mysql中char、varchar、nvarchar区别的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大

2026年9月7日 00:10

linux命令的选项和参数(linux为什么要有参数和选项)

linux命令的选项和参数(linux为什么要有参数和选项)

各位老铁们好,相信很多人对linux命令的选项和参数都不是特别的了解,因此呢,今天就来为大家分享下关于linux命令的选项和参数以及linux为什么要有参数和选项的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年9月6日 20:20

arm汇编指令流程图(arm 汇编指令)

arm汇编指令流程图(arm 汇编指令)

大家好,如果您还对arm汇编指令流程图不太了解,没有关系,今天就由本站为大家分享arm汇编指令流程图的知识,包括arm 汇编指令的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月6日 18:40

最近更新

热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
domino directory(帮我翻译一下Recipient’s Domino Directory entry does not specify a valid Notes mail file)
2026-08-03 19:20:01 浏览:4
标签列表