ActiveMQ之Topic】的更多相关文章

开发环境我们使用的是ActiveMQ 5.11.1 Release的Windows版,官网最新版是ActiveMQ 5.12.0 Release,大家可以自行下载,下载地址.需要注意的是,开发时候,要将apache-activemq-5.11.1-bin.zip解压缩后里面的activemq-all-5.11.1.jar包加入到classpath下面,这个包包含了所有jms接口api的实现. 搭建开发环境建立项目,我们只需要建立一个java项目就可以了,导入jar包,项目截图: 1.编写生产者…
前面一章中介绍了activemq的初步实现:基于ActiveMQ的Topic的数据同步——初步实现 下面来解决持久化订阅的问题: (1)使用queue,即队列时,每个消息只有一个消费者,所以,持久化很简单,只要保存到数据库即可 .然后,随便一个消费者取走处理即可.某个消费者关掉一阵子,也无所谓. (2)使用topic,即订阅时,每个消息可以有多个消费者,就麻烦一些. 首先,假设消费者都是普通的消费者,------------------------<1>activemq启动后,发布消息1,可惜…
非持久化订阅持续到它们订阅对象的生命周期.这意味着,客户端只能在订阅者活动时看到相关主题发布的消息.如果订阅者不活动,它会错过相关主题的消息.如果花费较大的开销,订阅者可以被定义为durable(持久化的).持久化的订阅者注册一个带有JMS保持的唯一标识的持久化订阅(subscription).带有相同标识的后续订阅者会再续前一个订阅者的订阅状态.如果持久化订阅没有活动的订阅者,JMS会保持订阅消息,直到消息被订阅接收或者过期. 生产者: package cn.slimsmart.activem…
spring +ActiveMQ 实战 topic selecter指定接收 queue:点对点模式,一个消息只能由一个消费者接受 topic:一对多,发布/订阅模式,需要消费者都在线(可能会导致信息的丢失) 看了网上很多的文件,但大都是不完整的,或不是自己想要的特异性接受功能,特意研究了一下,总结总结 一,下载并安装ActiveMQ 首先我们到apache官网上下载activeMQ(http://activemq.apache.org/download.html),进行解压后运行其bin目录下…
http://activemq.apache.org/virtual-destinations.html 普通的 topic 是发布/订阅模式:消息会被广播发送给所有的订阅者,订阅者拿到的是全部消息,如下图: 而 virtual topic,在消息的传递过程中,多加了一个队列节点,如下图: 全量的消息先发送到队列,然后再分发给消费者.这么做有什么好处呢? 假定consumer1和consumer2分别是2个进程,2个进程共同处理消息,这算不算负载均衡呢? 其次,如果consumer1挂掉了,队列…
概要 activemq 支持两种模式: 1.队列模式 2. 发布订阅者模式,topic有一个主题可以有多个订阅者.这种情况可以将一个消息,分发到多个消费者. 比如我有这样一个案例,用户需要同步,而且需要同步到多个系统,那么我们只需要队列添加一个主题,其他的子系统订阅该主题.分别处理自己的同步逻辑. 这样就实现了代码的解耦. 实现代码 1.生产者 import java.util.Map; import javax.annotation.Resource; import javax.jms.Des…
与Queue不同,Topic实现的是发布/订阅模型,在下面的例子中,启动两个消费者共同监听一个Topic,然后循环给这个Topic发送多个消息. 例子: public class TopicTest { public static void main(String[] args) { ActiveMQConnectionFactory connectionfactory=new ActiveMQConnectionFactory("vm://localhost"); Connectio…
一.背景介绍 公司自成立以来,一直以做项目为主,算是经累经验吧,自去年以来,我们部门准备将以前的项目做成产品,大概细分了几个小的产品,部们下面又分了几个团队,分别负责产品的研发,而我们属于平台团队,负责公用组件.开发平台的研发. 前期各个项目组使用的技术.框架等都不一样,想把技术.框架统一起来比较困难,并且在早期项目研发的时,各自为战,没有形成合力,有些共性的东西,都是各自做自己的,现在转将项目做成产品时,首先就是要将共性的东西,抽取出来,做成组件,通过SOA架构,将组件的服务和能力暴露出来,提…
之前写过一篇文章讨论VirtualTopic,但觉得不够透彻,这里再根据实验结果进行一次横向对比破除模糊和选择困难症. 文章中核心对比要素是:消息副本和负载均衡 Queue的特点和优势 ActiveMQ中Queue适用于"一对一"场景,单条消息无副本,只会被一个消费者消费.如果单个队列同时有多个消费者连接,则消息会按照一定的顺序依次发送给不同消费者消费,例如10条消息发送给5个消费者,那么消费者(1,2,3,4,5)分别获得(2,1,3,2,2)条消息,这就实现了负载均衡. 所以Que…
========== ActiveMQ ============== JMS : topic : 一对多: 发布订阅: 不保证数据是否被接受: 不存储topic信息: Queue : 一对一: 点对点: 保证数据被接收: 会存储信息: 1. download activeMQ : apache-activemq-5.14.1-bin.tar.gz 2. unzip it on Unix server 3. start : export JAVA_HOME=/export/opt/jdk/1.8.…
前言 MQ--Message Queue,中文翻译为"消息队列",维基百科上的这样描述: 消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自使用者.消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的资料,包含发生的时间,输入装置的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列互交.消息会保存在队列中,直到接收者取回它. 实际应用中有多种MQ,包括MSMQ,Ac…
ActiveMQ.xml文件默认位置位于 activemq/conf/目录下,主要的配置及解析如下:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.org/config/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati…
今天无聊写段代码..学习一下activemq,简单封装了一下activemq 的topic api.跟jdbc很类似 主要代码: import java.io.Serializable; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.Message; impo…
我们知道ActiveMQ broker的管理接口是通过JMX方式提供的. 一个简单的访问方式就是通过jconsole,输入 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi 需要注意的是: 1.默认JMX功能是没有打开的,需要在activemq.xml的broker配置上添加useJmx="true" 2.需要在managementContext里,修改为createConnector="true",(同时这里也…
关键字: activemq 1 JMS    在介绍ActiveMQ之前,首先简要介绍一下JMS规范.1.1 JMS的基本构件1.1.1 连接工厂    连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory. 1.1.2 连接    JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接. 1.1.3 会话    JMS Session是生产和消费消息的一个单线程上下文.会话用于创建消息生产者(producer).消息消…
http://activemq.apache.org/advisory-message.html ActiveMQ broker 内部维持了一些 topic,保存了一些系统信息,客户端可以订阅这些 topic 来获取信息,即 advisory message. 列举3个 topic 的例子: 1. topic名:ActiveMQ.Advisory.Connection 消息类型:客户端连接建立和断开的消息 获取方式: AdvisorySupport.getConnectionAdvisoryTo…
消息的发布有2种形式, 队列式(点对点) 和主题式(pub/sub) 模式, 队列式发布后, 接收者从队列中获取消息后, 消息就会消失, 但任意消费者都可以从队列中接受消息, 消息只能被接受一次 主题式则为接受后消息不消失 JMS 是(java message service) 是 基于JVM代理的规范, ActiveMQ是他的一种实现 .JMS消息基本组件 2.1.ConnectionFactory 创建Connection对象的工厂,针对两种不同的jms消息模型,分别有QueueConnec…
1 JMS 在介绍ActiveMQ之前,首先简要介绍一下JMS规范. 1.1 JMS的基本构件 1.1.1 连接工厂 连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory. 1.1.2 连接 JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接. 1.1.3 会话 JMS Session是生产和消费消息的一个单线程上下文.会话用于创建消息生产者(producer).消息消费者(consumer)和消息(message)…
MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息.MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品. 一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现.提供客户端支持跨语言和协议,带有易于在充分…
1 JMS 在介绍ActiveMQ之前,首先简要介绍一下JMS规范. 1.1 JMS的基本构件 1.1.1 连接工厂 连接工厂是客户用来创建连接的对象,例如ActiveMQ提供的ActiveMQConnectionFactory. 1.1.2 连接 JMS Connection封装了客户与JMS提供者之间的一个虚拟的连接. 1.1.3 会话 JMS Session是生产和消费消息的一个单线程上下文.会话用于创建消息生产者(producer).消息消费者(consumer)和消息(message)…
配置文件如下<!--    Licensed to the Apache Software Foundation (ASF) under one or more    contributor license agreements. See the NOTICE file distributed with    this work for additional information regarding copyright ownership.    The ASF licenses this f…
概述 ActiveMQ是Apache所提供的一个开源的消息系统,全然採用Java来实现.因此.它能非常好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范. JMS是一组Java应用程序接口.它提供消息的创建.发送.读取等一系列服务.JMS提供了一组公共应用程序接口和响应的语法.相似于Java数据库的统一訪问接口JDBC,它是一种与厂商无关的API,使得Java程序能够与不同厂商的消息组件非常好地进行通信. JMS支持两种消息发送和接收模型.一种称为P…
文章目录 1.同步索引库问题分析 2.ActiveM的介绍 2.1.什么是ActiveMQ 2.2.ActiveMQ的消息形式 3.ActiveMQ的安装 3.1.安装环境 3.2.安装步骤 4.ActiveMQ的使用方法 4.1.Queue(队列) 4.2.Topic(话题) 5.ActiveMQ整合spring 5.1.使用方法 5.2.代码测试(Queue方式) 6.ActiveMQ整合到项目中 6.1.Producer 6.2.Consumer 课程计划 1.同步索引库问题分析 2.什么…
重点参考:NMS Documentation 一.ActiveMQ Queue 在ActiveMQ中Queue是一种点对点的消息分发方式,生产者在队列中添加一条消息,然后消费者消费一条消息,这条消息保证送达并且只会被一个消费者接收. 生产者 class ActiveMQSend { // Example connection strings: // activemq:tcp://activemqhost:61616 //localhost // stomp:tcp://activemqhost:…
消息队列是目前的主流中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况.本文以Activemq的Topic为例,说明如何基于Jmeter实现消息队列数据的发送和接受. ActiveMQ Apache ActiveMQ是Apache软件基金会研发的开源消息中间件,它是基于JMS规范实现的.JMS( Java Message Service ) Java 消息服务,是Java EE的规范,JMS允许应用程序基于Java平台创建.发送.接收和读取消息.它使分布式…
因为本文会用到集群介绍,因此准备了三台虚拟机(当然读者也可以使用一个虚拟机,然后使用不同的端口来模拟实现伪集群): 192.168.209.133 test1 192.168.209.134 test2 192.168.209.135 test3 因为ActiveMQ是java编写,因此需要java的运行环境,这个不做介绍,网上有一堆的教程. 其次,下载ActiveMQ包,官网下载地址:https://archive.apache.org/dist/activemq/ ,读者可以选择一个版本下载…
p2p模式 生产者 package com.activemq.activemqdemo.p2p; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class JMSProducer { public static final String ACTIVE_URL = "tcp://127.0.0.1:61616"; // 队列名称 public static final St…
<一>m2mGW项目 1.ActiveMQ概述     企业消息软件从80年代起就存在,它不只是一种应用间消息传递风格,也是一种集成风格.因此,消息传递可以满足应用间的通知和互相操作.但是开源的解决方案是到最近10年才出现的.Apache ActiveMQ就是其中一种.它使应用间能以异步,松耦合方式交流.ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线. ‍   ActiveMQ是Apache软件基金下的一个开源软件,它遵循JMS规范(JavaMessage Servic…
1.ActiveMQ支持消息过滤设置规则和用法selector支持下列几种方式:(1) String literals: "color ='blue'"(2) Byte strings: “myBytes <> "0X0AFC23"”(3) Numeric values: "NoltemsInStock > 20"(4) Boolean literals TRUE or FALSE: "AcctDetails=TRUE…
在ActiveMQ的API中,内置了Jolokia . 可以使用jmx4perl来安装: $ perl -MCPAN -e shell Terminal does not support AddHistory. cpan shell -- CPAN exploration and modules installation (v1.) ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?) cpan[]…