ActiveMQ入门(一)

ActiveMQ详细入门教程系列 两个系统或两个客户端之间进行消息传送,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。异步化提升性能、降低耦合度、流量削峰。系统A发送消息给中间件后,自己的工作已经完成了,不用再去管系统B什么时候完成操作。而系统B拉去消息后,执行自己的操作也不用告诉系统A执行结果,所以整个的通信过程是异步调用的。 阅读详情

一、概述:

        消息中间件属于分布式系统中的一个子系统,关注数据发送和接收,利用高效可靠异步消息传递机制对分布式系统中的其余各个子系统进行集成。

二、与RPC的区别:

        RPC(Remote Procedure Call—远程过程调用),他是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术

三、应用场景:

        异步处理,应用解耦,流量削峰,日志处理,消息通讯

四、常见中间件比较:

 

ActiveMQ

RabbitMQ

RocketMQ

Kafka

性能(单台)

6000+

万级(12000+)

十万级

百万级

消息持久化

支持

支持

支持

支持

多语言支持

支持

支持

很少

支持

社区活跃度

高

高

中

高

支持协议

多(JMS,AMQP….. )

多(AMQP,STOMP,MQTT….. )

少

少

综合评价

优点:  成熟,已经在很多公司得到应用。较多的文档。各种协议支持较好,有多个语言的成熟客户端。

缺点:

性能较弱。缺乏大规模吞吐的场景的应用,有江河日下之感。

优点:性能较好,管理界面较丰富,在互联网公司也有较大规模的应用,有多个语言的成熟客户端。

缺点:

内部机制很难了解,也意味很难定制和掌控。集群不支持动态扩展。

优点:模型简单,接口易用。在阿里有大规模应用。分布式系统,性能很好,版本更新很快。

 缺点:文档少,支持的语言较少,尚未主流。

优点:天生分布式,性能最好,所以常见用于大数据领域。

 缺点:运维难度大,偶尔有数据混乱的情况,对ZooKeeeper强依赖。多副本机制下对带宽有一定的要求。

五、JSM规范:

包含要素:连接工厂 , JMS目的  , JMS连接 , JMS会话, JMS生产者 , JMS消费者

消息模型:

    Point-to-Point(p2p)/ 点对点,消息生产者发送的消息,只有一个消费者将消息消费,消息发送没有消费者消费将持久化

    Topic / 主题(发布订阅),生产者发送消息,所有消费者都获得消息,消息不会持久化到磁盘

消息类型:TextMessage,ByteMessage,ObjectMessage,MapMessage,StreamMessage

        TextMessage  主体包含字符串

        BytesMessage  主体包含连续字节流

        ObjectMessage  主体包含对象

        MapMessage  主体包含键值对

        StreamMessage主体包含流

 

六、安装,部署,运行:

     下载地址:http://activemq.apache.org/download.html

    Windows安装:解压后进入bin 目录,直接运行activemq.bat

   浏览器输入:http://127.0.0.1:8161/admin/  ,用户名密码admin/admin

   Linux安装一样,解压后进入bin目录,运行  ./activemq start 启动  ./activemq stop 停止

   注意开放61616端口,这是ActiveMQ的服务端口

七、ActiveMQ原生API

添加依赖:
<dependency>
  	<groupId>org.apache.activemq</groupId>
  	<artifactId>activemq-all</artifactId>
  	<version>5.8.0</version>
</dependency>

消息生产者:

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Producter {
	
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	private static final String BROKERURL = "failover://tcp://192.168.244.2:61616";
	private static final String MESSAGE_TOPIC = "hello-ActiveMQ";
	public static void main(String[] args) {
		//连接工厂
		ConnectionFactory factory;
		//连接
		Connection connection = null;
		//会话
		Session session;
		//目的地
		Destination destination;
		//生产者
		MessageProducer producer ;
		//获取连接工厂
		factory = new ActiveMQConnectionFactory(USERNAME,PASSWORD,BROKERURL);
		try {
			//获取连接,并启动
			connection = factory.createConnection();
			connection.start();
			//创建会话,参数1:是否启用事务,参数2:是否自动确认
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			//消息目的地
			//destination = session.createTopic(MESSAGE_TOPIC);
			destination = session.createQueue(MESSAGE_TOPIC);
			//生产者
			producer = session.createProducer(destination);
			//循环发送
			for(int i = 0;i<3;i++) {
				String msg = "消息:  "+(i+1)+"  "+System.currentTimeMillis();
				TextMessage message = session.createTextMessage(msg);
				producer.send(message);
			}
		} catch (JMSException e) {
			e.printStackTrace();
		}finally {
			if(connection != null) {
				try {
					connection.close();
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

消息消费者—同步模式

consumer.receive()是阻塞方法,如果没有接收到消息,就是一直阻塞,直到接收到消息

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class SyncConsumer {
	
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	private static final String BROKERURL = "failover://tcp://192.168.244.2:61616";
	private static final String MESSAGE_TOPIC = "hello-ActiveMQ";
	public static void main(String[] args) {
		//连接工厂
		ConnectionFactory factory;
		//连接
		Connection connection = null;
		//会话
		Session session;
		//目的地
		Destination destination;
		//消费者
		MessageConsumer consumer;
		//获取连接工厂
		factory = new ActiveMQConnectionFactory(USERNAME,PASSWORD,BROKERURL);
		try {
			//获取连接,并启动
			connection = factory.createConnection();
			connection.start();
			//创建会话,参数1:是否启用事务,参数2:是否自动确认
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			//消息目的地
			//destination = session.createTopic(MESSAGE_TOPIC);
			destination = session.createQueue(MESSAGE_TOPIC);
			//创建消费者
			consumer = session.createConsumer(destination);
			TextMessage text ;
			while((text = (TextMessage)consumer.receive())!=null) {
				System.out.println("同步接收消息:"+text.getText());
			}
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}
}

消息消费者—异步模式

消息监听的方式

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

public class AyncConsumer {
	
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	private static final String BROKERURL = "failover://tcp://192.168.244.2:61616";
	private static final String MESSAGE_TOPIC = "hello-ActiveMQ";
	public static void main(String[] args) {
		//连接工厂
		ConnectionFactory factory;
		//连接
		Connection connection = null;
		//会话
		Session session;
		//目的地
		Destination destination;
		//消费者
		MessageConsumer consumer;
		//获取连接工厂
		factory = new ActiveMQConnectionFactory(USERNAME,PASSWORD,BROKERURL);
		try {
			//获取连接,并启动
			connection = factory.createConnection();
			connection.start();
			//创建会话,参数1:是否启用事务,参数2:是否自动确认
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			//消息目的地
			//destination = session.createTopic(MESSAGE_TOPIC);
			destination = session.createQueue(MESSAGE_TOPIC);
			//创建消费者
			consumer = session.createConsumer(destination);
			consumer.setMessageListener(new MessageListener() {
				@Override
				public void onMessage(Message message) {
					try {
						String msg = ((TextMessage)message).getText();
						System.out.println("异步接收消息:"+msg);
					} catch (JMSException e) {
						e.printStackTrace();
					}
				}
			});
		} catch (JMSException e) {
			e.printStackTrace();
		}
	}
}

八、与springboot集成,利用JmsTemplate来发送消息:

目录结构:采用父子工程,依赖全部在父工程定义

 

父工程pom文件:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>

    <dependencies>
    	   <!-- web依赖 -->
    		<dependency>
		        <groupId>org.springframework.boot</groupId>
		        <artifactId>spring-boot-starter-web</artifactId>
	    	</dependency>
	    	
		    <dependency>
		    	<groupId>org.springframework.boot</groupId>
		    	<artifactId>spring-boot-starter-activemq</artifactId>
		    </dependency>
		    
		    <dependency>
		    	<groupId>org.apache.activemq</groupId>
		    	<artifactId>activemq-pool</artifactId>
		    </dependency>
  		
    </dependencies>
  
    <modules>
    	<module>ActiveMQ-noSpring</module>
    	<module>ActiveMQ-P</module>
    	<module>ActivqMQ-C</module>
    </modules>

生产者模块:ActiveMQ-P

application.yml文件配置:

server:
  port: 8080

spring:
  activemq:
    user: admin
    password: admin
    broker-url: tcp://192.168.244.2:61616
    pool:
      enabled: true

配置类:将工厂类注入即可,由于配置连接池,spring会从工厂里自动获取 jmsTemplate

@Configuration
@EnableJms
public class ActiveMQConfig {
	
	private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	private static final String BROKERURL = "failover://tcp://192.168.244.2:61616";
	private static final String TOPIC_NAME = "activemq-topic";
	private static final String QUEUE_NAME = "activemq-queue";
	
	@Bean
	public ActiveMQConnectionFactory activeMQConnectionFactory() {
		ActiveMQConnectionFactory factory = new 
            ActiveMQConnectionFactory(USERNAME,PASSWORD,BROKERURL);
		return factory;
	}

       @Bean("activeMQTopic")
	public Destination ActiveMQTopic() {
		Destination queue = new ActiveMQTopic(TOPIC_NAME);
		return queue;
	}
	@Bean("activeMQQueue")
	public Destination ActiveMQQueue() {
		Destination queue = new ActiveMQQueue(QUEUE_NAME);
		return queue;
	}

发送消息:两种模式,按名称注入

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/activemq")
public class ProducterController {
	
	@Autowired
	private JmsTemplate jmsTemplate;
	
	@Autowired
	@Qualifier("activeMQTopic")
	private Destination destinationTopic;
	
	@Autowired
	@Qualifier("activeMQQueue")
	private Destination destinationQueue;
	
	@Autowired
	private JmsMessagingTemplate template;
	
	
    // template  和 jmsTemplate 本质没区别,jmsTemplate 可做更细化操作
	@RequestMapping("sendTopic")
	public void sendTopicMessage() {
		String message = "TOPIC消息内容:"+System.currentTimeMillis();
		System.out.println("发送消息:"+message);
		template.convertAndSend(destinationTopic,message);
	}
	
	@RequestMapping("sendQueue")
	public void sendQueueMessage(Message msg) {
		String message = "QUEUE消息内容:"+System.currentTimeMillis();
		System.out.println("发送消息:"+message);
		jmsTemplate.convertAndSend(destinationTopic, message);
		jmsTemplate.convertAndSend(destinationTopic, msg);
	}

消费者模块:ActiveMQ-C

application.yml配置:启动端口要改,其余不用改

server:
  port: 8090

spring:
  activemq:
    user: admin
    password: admin
    broker-url: tcp://192.168.244.2:61616
    pool:
      enabled: true

配置类:

import javax.jms.Destination;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;

@Configuration
@EnableJms
public class ConsumerConfig {
	
    private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
	private static final String PASSWORD = ActiveMQConnection.DEFAULT_PASSWORD;
	private static final String BROKERURL = "failover://tcp://192.168.244.2:61616";
	private static final String TOPIC_NAME = "activemq-topic";
	private static final String QUEUE_NAME = "activemq-queue";
	
	@Autowired
	private ActiveMQConnectionFactory factory;
	
	@Bean
	public ActiveMQConnectionFactory activeMQConnectionFactory() {
		ActiveMQConnectionFactory factory = 
            new ActiveMQConnectionFactory(USERNAME,PASSWORD, BROKERURL);
		return factory;
	}
	
	@Bean
	public JmsListenerContainerFactory<?> JmsListenerContainerFactoryTopic(){
		DefaultJmsListenerContainerFactory listener = 
            new DefaultJmsListenerContainerFactory();
		listener.setConnectionFactory(factory);
		//监听发布订阅模式TOPIC
		listener.setPubSubDomain(true);
		return listener;
	}
	
	@Bean
	public JmsListenerContainerFactory<?> JmsListenerContainerFactoryQueue(){
		DefaultJmsListenerContainerFactory listener = 
            new DefaultJmsListenerContainerFactory();
		listener.setConnectionFactory(factory);
		//监听点对点模式QUEUE
		listener.setPubSubDomain(false);
		return listener;
	}
	
	@Bean("activeMQTopic")
	public Destination ActiveMQTopic() {
		Destination queue = new ActiveMQTopic(TOPIC_NAME);
		return queue;
	}
	@Bean("activeMQQueue")
	public Destination ActiveMQQueue() {
		Destination queue = new ActiveMQQueue(QUEUE_NAME);
		return queue;
	}

接收消息:

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class ConsumerService {
	
	private static final String TOPIC_NAME = "activemq-topic";
	private static final String QUEUE_NAME = "activemq-queue";
	
	@JmsListener(destination=ConsumerService.TOPIC_NAME,
        containerFactory="JmsListenerContai nerFactoryTopic")
	public void reviceTopic(String text) {
		System.out.println("接收消息:"+text);
	}
	
	@JmsListener(destination=ConsumerService.QUEUE_NAME,
        containerFactory="JmsListenerContai nerFactoryQueue")
	public void reviceQueue(String text) {
		System.out.println("接收消息:"+text);
	}

}

启动项目,访问 localhost:8080/activemq/sendTopic,则以topic模式发送消息

                          localhost:8080/activemq/sendQueue,以queue模式发送消息

控制台输出接收到的消息。

一起学习ActiveMQ (一) ActiveMQ入门 一起学习ActiveMQ (一) ActiveMQ入门 Apache ActiveMQ™是最流行的开源,多协议,基于Java的消息服务器。它支持行业标准协议,因此用户可以通过广泛的语言和平台获得客户选择的好处。可以使用C,C ++,Python,.Net等连接。使用无处不在的AMQP协议集成您的多平台应用程序。 1. 安装ActiveMQ 在官网下载最新的ActiveMQ http://act... 阅读详情

相关推荐

TP4056锂电池充电电路设计原理与工程实践

锂离子电池充电管理是嵌入式电源系统的核心基础技术,其本质是通过恒流恒压(CC/CV)控制策略,匹配电池电化学特性以实现安全、高效、长寿命充放电。TP4056作为典型线性充电IC,以精简外围实现预充、恒流、恒压及自动截止全周期管理,但受限于线性拓扑的热耗散特性,必须协同散热设计、电阻精度选型与PCB布局进行系统级优化。该方案广泛应用于STM32智能小车、便携传感器节点等3.7V单节锂电供电场景,兼顾成本、可靠性与工程可实施性,是入门嵌入式硬件电源设计的关键实践范例。

weixin_36064575的博客 219

ActiveMQ详解

消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。具有一个独特的非中间件的模式,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序将扮演了这个服务角色。如果事务回滚,则消息会被再次传送。JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。

一个老鸟的学习之路 9581

告别迷茫!手把手教你用Altova XMLSpy编写EtherCAT从站ESI文件(附避坑指南)

本文详细介绍了如何使用Altova XMLSpy高效编写EtherCAT从站ESI文件,涵盖核心架构、通信通道配置、过程数据映射等关键步骤,并提供了常见问题排查与性能优化建议。通过实战案例和避坑指南,帮助工程师快速掌握EtherCAT从站开发技巧,提升工作效率。

weixin_42570484的博客 395

SpringBoot + ActiveMq (官方原生版和使用JmsMessagingTemplate版、消息可靠保证)

一、 SpringBoot 集成ActiveMq的两种方式 方式一:使用官方示例代码(official项目) 方式二:使用Spring的JmsMessagingTemplate 二、消息可靠保证机制 三、消息持久化 四、重试机制

u013998466的博客 6569

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 936

保姆级教程:用torch.profiler给你的vLLM推理做个“全身体检”(附Perfetto可视化分析)

本文提供了一份详细的vLLM推理性能分析教程,通过torch.profiler和Perfetto工具链实现从数据采集到可视化分析的全流程。文章涵盖了环境配置、性能数据采集、trace文件解析以及Perfetto可视化分析,帮助开发者优化大模型推理服务的性能,显著降低计算资源消耗。

weixin_29041767的博客 357

ActiveMQ 详解 (精)

ActiveMQ JMS(Java Message Service) 它是一种与厂商无关的API,用来访问消息和收发系统消息。它类似于JDBC,JDBC是可以用来访问不同的关系型数 据库的API,而JMS则提供同样与厂商无关的访问消息收发服务的方法,这样就可以通过消息收发服务实现从一个JMS 客户端向另一个JMS客户端发送消息,所需要的是厂商支持JMS。换句话说,JMS是Java平台上有关面向消息中间件 的技术规范。 JMS提供的对象 连接工厂,是客户用来创建连接的对象,ActiveMQ提供的是Active

nanZhaiXiaoLang的博客 3830

金蝶Apusic应用服务器 未授权目录遍历漏洞复现

由于金蝶Apusic应用服务器/admin/protected/selector/server_file/files、/admin/protected/selector/server_file/folders 等接口没有进行校验和过滤,直接将参数拼接到文件操作中,导致出现目录遍历漏洞,未经身份验证的远程攻击者可通过此漏洞读取系统内部系统文件路径及信息,导致信息泄露,系统处于极不安全状态。

0xSec 2169

ActiveMQ用法

ActiveMQ用法

weixin_42594143的博客 639

【QT开发教程】Qt中的跨平台文件系统操作

文件系统操作是应用程序开发中经常需要处理的任务。Qt提供了一套跨平台的文件系统操作API,使开发者能够在不同操作系统上无缝地进行文件和目录操作。本文将介绍Qt中的跨平台文件系统操作,包括基本概念、常用类和方法以及实际示例。

科技改变人类,技术成就未来 980

WordPress插件depicter存在SQL注入漏洞(CVE-2025-2011)

Depicter 是一款功能强大的 WordPress 幻灯片插件,允许用户通过直观的拖放编辑器轻松创建响应式滑块、轮播和动态内容展示。该插件提供丰富的模板库、动画效果和图层控制,支持多媒体内容嵌入(如图片、视频、HTML),并优化了移动端显示和SEO性能。其无代码操作界面适合非技术用户,同时提供高级自定义选项,适用于产品展示、营销推广和视觉叙事等多种场景,是提升网站视觉吸引力的高效工具。

m0_50125527的博客 551

一、 JMS-activeMQ 入门

备注:主要参考黑马老师祯帅课程所写 一、消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也就有Producer(生产者)、Consumer(消费者) 常见的消息中间件产品: (1)ActiveMQ ActiveMQ ...

贵在坚持 518

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ActiveMQ入门(一)

ActiveMQ是一个完全支持JMS1.2和JMS1.4规范的JMS provider实现,历史悠久。 什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供...

t_liuyong的专栏 310

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

ActiveMQ入门(一)ActiveMQ的安装与使用

前言 本章讲解ActiveMQ的安装和使用 方法 1.概念 JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。 Apache Active...

jwang的博客 692

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ActiveMQ 一、入门概述

学术地址:https://www.gulixueyuan.com/my/course/322 学习大纲: 一、入门概述 第一课时:前言说明 activeMQ:是什么?能干嘛?怎么用? MQ(messageQ) = 消息中间件 消息:微信、短信、QQ 中间件:中间?是不是有左中右?是的。 微信为例:Send(消息的发送)--->服务器--->receive(消息的接收者) 第二课时:两种老师、两种学生 培训老师(会用不会说不懂原理)。 教育老师(不仅会...

「小叽笔记」 256

ActiveMQ 《入门》一

ActiveMQ

公众号:AI前沿侦探 332

ActiveMQ从入门到精通(一)

这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧! JMS 首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷: 1.通信的同步性 client端发起调用后,必须等待server处理完成并返回结果后才能继续执行 2.client 和 server 的生命周期耦合太高 cli

qq_33834493的博客 344

ActiveMq的使用(一)快速入门

ActiveMQ 的作用分析2.ActiveMQ工作原理(JSM java message server) 解决服务之间的耦合 使用消息队列,增加系统并发处理量3.ActiveMQ 应用场景分析    1、 用户注册,重点用户信息数据库保存,发短信、发邮件,增加业务处理复杂度,这时候使用 MQ, 将发短信、发邮箱,通知 MQ,由另外服务平台完成2、 搜索平台、缓存平台查询数据,建立缓存、索引 ,不...

weixin_38399962的博客 6685

ActiveMQ一 入门

启动:\apache-activemq-5.6.0\bin\win32\activemq.bat 工程中引入 \apache-activemq-5.6.0\lib下的jar Listener 消息消费者: public class TopicListener implements MessageListener { ..............        main()方法{  ...

刨根问底,挖到祖坟 138

Marco's Java【ActiveMQ入门(一) 之 初识ActiveMQ】

前言 ActiveMQ的简介 ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务。JMS提供了一组公共应用程序接口和响应的语法,类似于Java数据库的统一访问接口JDBC,它是一种与厂...

馬克兒的私人博客 343

activemq broker集群_ActiveMQ从入门到精通(一)

点击上方“Java知音”,选择“置顶公众号”技术文章第一时间送达!作者:张丰哲www.jianshu.com/p/ecdc6eab554c这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧...

weixin_32058991的博客 203

从入门到精通的ActiveMQ(一)

这是关于消息中间件ActiveMQ的一个系列专题文章,将涵盖JMS、ActiveMQ的初步入门及API详细使用、两种经典的消息模式(PTP and Pub/Sub)、与Spring整合、ActiveMQ集群、监控与配置优化等。话不多说,我们来一起瞧一瞧! JMS 首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷: 1.通信的同步性 client端发起调用后,必须等待...

文章中资料均可获取,有需要请添加yunduoa2019即可 174

ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)

ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下) 一、什么是ActiveMQ 度娘给出的定义: Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。 ActiveMQ的官网打出的标语(如上图): Flexible...

JAVA开发老菜鸟的专栏 629
上一篇: Docker-基础(一)
下一篇: ActiveMQ入门(二)——Request-Response 请求应答模式
csdnbeyoung
博客等级 码龄9年 390粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值