ActiveMQ
拾光老头、
永远在路上才是一生不改的风景
展开
-
ActiveMQ_12 ActiveMQ的消息存储和持久化
1.介绍 (1)此处持久化和之前的持久化的区别 MQ高可用:事务、可持久、签收,是属于MQ自身特性,自带的。这里的持久化是外力,是外部插件。之前讲的持久化是MQ的外在表现,现在讲的的持久是是底层实现。 (2)是什么: 官网文档:http://activemq.apache.org/persistence 持久化是什么?一句话就是:ActiveMQ宕机了,消息不会丢失的机制。 说明:为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一半都会采用持久化机制。ActiveMQ的消息持原创 2020-07-06 10:10:05 · 205 阅读 · 1 评论 -
ActiveMQ_11 ActiveMQ的传输协议
1.简介 ActiveMQ支持的client-broker通讯协议有:TVP、NIO、UDP、SSL、Http(s)、VM。其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<transportConnectors>标签之内。 activemq传输协议的官方文档:http://activemq.apache.org/configuring-version-5-transports.html 这些协议参见文件:%activeM转载 2020-07-05 15:24:39 · 360 阅读 · 0 评论 -
ActiveMQ_10 SpringBoot整合ActiveMQ
我个人不太赞成使用这种方式SpringBoot整合ActiveMQ,因为这样做会失去原生代码的部分功能和灵活性。但是工作中,这种做能够满足我们常见的需求,也方便和简化我们的代码,也为了适应工作中大家的习惯。 课程的源码:https://github.com/elstic/ActiveMQ 1.queue生产者 项目源码地址:https://github.com/elstic/ActiveMQ/tree/master/boot_mq_produce (1)新建项目 略 (2)pom.xml &l原创 2020-07-05 14:49:06 · 124 阅读 · 0 评论 -
ActiveMQ_09 Spring整合ActiveMQ
我个人的理解:我们之前介绍的内容也很重要,他更灵活,他支持各种自定义功能,可以满足我们工作中复杂的需求。很多activemq的功能,我们要看官方文档或者博客,这些功能大多是在上面代码的基础上修改完善的。如果非要把这些功能强行整合到spring,就有些缘木求鱼了。我认为另一种方式整合spring更好,就是将上面的类注入到Spring中,其他不变。这样既能保持原生的代码,又能集成到spring。 下面我们将的Spring和SpringBoot整合ActiveMQ也重要,他给我们提供了一个模板,简化了代码,减少原创 2020-07-05 14:37:21 · 117 阅读 · 0 评论 -
ActiveMQ_08 ActiveMQ的broker
(1) broker是什么 相当于一个ActiveMQ服务器实例。说白了,Broker其实就是实现了用代码的形式启动ActiveMQ将MQ嵌入到Java代码中,以便随时用随时启动,在用的时候再去启动这样能节省了资源,也保证了可用性。这种方式,我们实际开发中很少采用,因为他缺少太多了东西,如:日志,数据存储等等。 (2) 启动broker时指定配置文件 启动broker时指定配置文件,可以帮助我们在一台服务器上启动多个broker。实际工作中一般一台服务器只启动一个broker。 (3) 嵌入式的原创 2020-07-05 14:28:05 · 257 阅读 · 0 评论 -
ActiveMQ_07 JMS总结
1.JMS的点对点总结 点对点模型是基于队列的,生产者发消息到队列,消费者从队列接收消息,队列的存在使得消息的异步传输成为可能。和我们平时给朋友发送短信类似。 如果在Session关闭时有部分消息己被收到但还没有被签收(acknowledged),那当消费者下次连接到相同的队列时,这些消息还会被再次接收 队列可以长久地保存消息直到消费者收到消息。消费者不需要因为担心消息会丢失而时刻和队列保持激活的连接状态,充分体现了异步传输模式的优势 2.JMS的发布订阅总结 (1)JMS的发布订阅总结 JMS原创 2020-07-05 13:55:27 · 141 阅读 · 0 评论 -
ActiveMQ_06 消息的签收机制
一、签收的几种方式 ① 自动签收(Session.AUTO_ACKNOWLEDGE):该方式是默认的。该种方式,无需我们程序做任何操作,框架会帮我们自动签收收到的消息。 ② 手动签收(Session.CLIENT_ACKNOWLEDGE):手动签收。该种方式,需要我们手动调用Message.acknowledge(),来签收消息。如果不签收消息,该消息会被我们反复消费,只到被签收。 ③ 允许重复消息(Session.DUPS_OK_ACKNOWLEDGE):多线程或多个消费者同时消费到一个消息,因为线程不原创 2020-07-05 13:52:36 · 325 阅读 · 0 评论 -
ActiveMQ_05 消息的事务性
(1)生产者开启事务后,执行commit方法,这批消息才真正的被提交。不执行commit方法,这批消息不会提交。执行rollback方法,之前的消息会回滚掉。生产者的事务机制,要高于签收机制,当生产者开启事务,签收机制不再重要。 (2)消费者开启事务后,执行commit方法,这批消息才算真正的被消费。不执行commit方法,这些消息不会标记已消费,下次还会被消费。执行rollback方法,是不能回滚之前执行过的业务逻辑,但是能够回滚之前的消息,回滚后的消息,下次还会被消费。消费者利用commit和ro..原创 2020-07-05 13:36:06 · 183 阅读 · 0 评论 -
ActiveMQ_04 消息的持久化
1.什么是持久化消息? 保证消息只被传送一次和成功使用一次。在持久性消息传送至目标时,消息服务将其放入持久性数据存储。如果消息服务由于某种原因导致失败,它可以恢复此消息并将此消息传送至相应的消费者。虽然这样增加了消息传送的开销,但却增加了可靠性。 我的理解:在消息生产者将消息成功发送给MQ消息中间件之后。无论是出现任何问题,如:MQ服务器宕机、消费者掉线等。都保证(topic要之前注册过,queue不用)消息消费者,能够成功消费消息。如果消息生产者发送消息就失败了,那么消费者也不会消费到该消息。 2.原创 2020-07-05 13:21:13 · 128 阅读 · 0 评论 -
ActiveMQ_03 JMS规范
1.JMS是什么? 什么是Java消息服务? Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持Java应用程序开发。在JavaEE中,当两个应用程序使用JMS进行通信时,它们之间不是直接相连的,而是通过一个共同的消息收发服务组件关联起来以达到解耦/异步削峰的效果。 2.消息头 JMS的消息头有哪些属性: JMSDestination:消息目的地 JMSDeliveryMode:消息持久化模式 JM原创 2020-07-05 12:50:26 · 99 阅读 · 0 评论 -
ActiveMQ_02 入门案例、MQ标准、API详解
1.pom.xml导入依赖 <dependencies> <!-- activemq 所需要的jar 包--> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.9</version> </dep原创 2020-07-05 12:27:29 · 213 阅读 · 0 评论