ActiveMQ的topic消息突然丢失,必须重启服务才能再收到 10C

有没有哪位大神遇到过这种情况,监听ActiveMQ的topic消息时,服务刚启动时是好的,可以收到消息,但几个小时以后就突然收不到了,也不报错,必须重启服务才能再收到消息。我使用的是spring boot集成activemq,但我觉得跟这个关系不大,因为我单独跑mq也遇到同样的问题,求大神解答

2
u011187858
素56 你好,我现在也出现了这个问题,请问你是怎么解决的呢
2 个月之前 回复

1个回答

ActiveMQ做大并发的缓冲,消息的生产和消费都是用的spring封装的消息监听容器。

在系统测试过程中偶然发现,消费无法发送,发送端直接报异常。显示连接拒绝。直接重启ActiveMQ,问题依然存在。

只能重启消费发送的服务,消息可以发送了。查看ActiveMQ控制台,有消息发送成功了,但是没有消费者。重启消费者服务,可以了。

可以以为是spring的消息监听容器的问题,找了半天,没有找到断开重连的参数。

继续网上找,终于发现只要修改ActiveMQ的连接串就可以了。将tcp://127.0.0.1:61616 改成 failover:tcp://127.0.0.1:61616" OK了!

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ActiveMQ服务重启 收不到消息
ActiveMQ做大并发的缓冲,消息的生产和消费都是用的spring封装的消息监听容器。 在系统测试过程中偶然发现,消费无法发送,发送端直接报异常。显示连接拒绝。直接重启ActiveMQ,问题依然存在。 只能重启消费发送的服务,消息可以发送了。查看ActiveMQ控制台,有消息发送成功了,但是没有消费者。重启消费者服务,可以了。 可以以为是spring的消息监听容器的问题,找了半天,没有找到
activeMQ 服务器重启 client接受不到消息
采用activeMQ5.0当服务端重启的之后,客户端一定要重启才能收到消息,如果要是有多个客户端,那每次重启activeMQ5.0服务端都要重启客户端,是不行的,不知道大家有什么好办法。 在网上看了下有人说是spring的org.springframework.jms.connection.SingleConnectionFactory的连接池的问题,可是我换成了activeMQ的连接池也...
ActiveMQ Topic消息失败重发
       消息失败重发指的是当消息的接收方没有成功的消费消息,我们需要重发消息,让消息的接收方成功消费这个消息,保证事务的完整性和消息的一致性。 一、JMS消息确认机制     在session接口中定义的几个常量:    AUTO_ACKNOWLEDGE =  1    自动确认   CLIENT_ACKNOWEDGE =  2    客户端手动确认   DUPS_OK_ACKNO...
用ActiveMQ遇到的消息确认问题
问题:我的ActiveMQ接收消息用的是topic模式,持久化订阅,问题是我用了JMS接收消息的代码每次重新启动总是会收到最后一次的消息,但这些消息是已经接收过了的,而且启动一次就收到一次,难道ActiveMQ不会清除缓存的吗? [code="java"] //创建JMS连接和会话 ActiveMQConnectionFactory factory = new ActiveMQConnect...
activemq中多个consumer引起接收不到信息
使用activemq时,若一个mq有两个comsumer时,会有接收不到信息的情况
activemq发送消息接收不到问题排查
昨天,在公司开发环境上尝试数据同步,涉及到两个服务,服务A发布主题,服务B监听消息,然后同步A表中的数据到B表; 由服务A通过activemq发布消息到一个topic:VirtualTopic.topic,发现服务A日志上显示发送消息成功,VirtualTopic.topic对应的Messages Enqueued数目增加了2,表明topic上也产生了相应数目消息队列;但是服务B日志上迟迟没有打...
spring与RabbitMQ整合 消费者消费不到消息 重启才能消费到的问题解决
RabbitMQ是当前一个挺火的消息队列中间件 相比ActiveMQ 消息更不容易丢失我之前用的是ActiveMQ 后边有的时候会莫名其妙的收不到消息 项目紧后边也没时间排查 经朋友的推荐下 换了RabbitMQ 后边用着也没啥问题今天 的RabbitMQ 突然就出了问题 生产者发送消息 消费者监听不到 消费者重启才能接收到 这样的情况肯定不行 项目上线的话要是出现这种问题影响很大的 进入Ra
ActiveMQ的queue以及topic两种消息处理机制
JMS:Java Message Server JMS消息服务器有很多:ActiveMQ、Jboss MQ、Open MQ、RabbitMQ、ZeroMQ等等    queue与topic的技术特点对比     Topic 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对...
淘淘商城系列——ActiveMQ发送topic消息和接收topic消息
我相信大家通过前面的学习,已然知道了如何发送队列消息及消费队列消息。本文我们将一起学习如何发送topic消息和接收topic消息。 我们依然在TestActiceMQ单元测试类中添加一个测试方法,用来测试发送topic消息,如下图所示,其实这个方法与发送队列消息几乎一样,只是创建Destination对象的时候不一样而已。 为了方便大家复制,现将testTopicProducer测试方法的代
spring JMS、activemq中消费者收不到生产者发送的消息的原因解析
我们使用jms一般是使用spring-jms和activemq相结合,通过spring的JmsTemplate发送消息到指定的Destination。       首先定义一个activemq的连接池:   Xml代码   <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConn...
ActiveMQ(二)———使用Topic来发送消息
摘要:每个消息可以有多个消费者,发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息,而且为了消费消息,订阅者必须保持运行的状态。为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。引入三个jar包,这些jar包在activeMQ的安装包中都有: ge
ActiveMQ的queue以及topic两种消息处理机制分析
Q来作为jms总线,并且给大家介绍了activeMQ的集群和高可用部署方案,本期给大家再介绍下,如何根据自己的项目需求,更好地使用activeMQ的两种消息处理模式。         1    queue与topic的技术特点对比   Topic Queue 概要 Publish Subscribe messaging 发布订阅消息
kafka单机重启topic丢失问题排查
这个问题,在线上集群环境一般不容易出现,因为相关的日志文件参数都已经配置好了,而且经受住时间的的验证了。 作为新手,我在本地配置了一个单机kafka,用得是kafka自带的zookeeper服务。 kafka安装很简单如下: 1).下载kafka: wget http://apache.fayea.com/kafka/0.10.1.0/kafka_2.10-0.10.1.0.tgz
ActiveMQ支持多个topic订阅消息接收设置
描述:最近做一个预警的功能,使用到ActiveMQ消息订阅功能,但是问题来了,页面上有四个Topic订阅消息就接收不到消息,接收一个topic消息就没问题。排查问题后,程序是没问题的,问题应该出现在ActiveMQ配置文件设置那块。直接找到activemq.xml,如图: 源代码: <broker xmlns="http://activemq.apache.org/schema/co...
spring JMS、activemq中消费者收不到生产者发送的消息的原因解析
我们使用jms一般是使用spring-jms和activemq相结合,通过spring的JmsTemplate发送消息到指定的Destination。       首先定义一个activemq的连接池:   Xml代码   bean id="connectionFactory" class="org.apache.activemq.pool.PooledC
关于ActiveMQ中Topic持久化配置问题
说明:记录一下在ActiveMQ中踩过的坑。 关键字:jms:listener-container,topic订阅持久化。 Demo的目录结构(说明中有各个文件的作用) 不懂ActiveMQ的可以,在网上搜搜,有很多很好的博客,在这里我只简单的介绍怎么用,标注一些坑。哪里不足,欢迎提出。前提:activeMQ(解压之后的文件夹)–conf –activemq.xml applicat
Activemq 宕机解决方案
关于消息服务的集群,大概分为Consumer集群(消费者集群)和Broker集群(消息服务器集群)两种。ActiveMQ提供了一种叫做失效转移(也叫故障转移,FailOver)的策略。失效转移提供了在传输层上重新连接到其他任何传输器的功能。使用它很简单,只需要在uri中配置就行了Failover:(uri1.....n)如果某个ActiveMQ客户端发现uri1地址失效了,它会立即转向uri地址列...
ActiveMQ消息“丢失” Tomcat shutdown.sh脚本不能关闭所有进程
ActiveMQ消息“丢失” 最近公司项目要用到消息队列,然后在本地跑通过了,部署到tomcat后,部分消息无法进入本地项目断点,疑似部分消息丢失,经过各种测试确定消息发送到队列以后,在activeMQ管理平台后发现,存在两个customer,由于配置文件一样,本地项目和服务器项目操作的是同一台服务器上的同一个队列,也就造成了这个问题 Tomcat shutdown.sh脚本不能关闭所有进
activemq 持久化topic处理过程及其消息游标轮转问题的解决方案
    如果消息是持久化的,activemq收到消息后会存储在持久性cursor中。对于非持久化消息,会存储在File Cursor中。从名称上File Cursor是持久性cursor,实际上activemq把FilePendingMessageCursor作为非持久性cursor。File Cursor首先在内存中保存消息的引用,如果内存使用量达到上限,那么会把消息引用保存到临时文件中,这...
ActiveMQ的消息接收确认
JMS消息只有在被确认之后,才认为已经被成功地消费了。消息的成功消费通常包含三个阶段:客户接收消息、客户处理消息和消息被确认。 在事务性会话中,当一个事务被提交的时候,确认自动发生。在非事务性会话中,消息合适被确认取决于创建会话时的应答模式(acknowledgement mode)。该参数有以下三个可选值: Session.AUTO_ACKNOWLEDGE:当客户成功地从receive方法返
activeMQ消息阻塞 丢失 假死--架构
jms有三部分组成。生产者,中间件(broker),消费者 , 生产者,中间件(broker),消费者  JMSDeliveryMode  NON_PERSISTENT 非持久化 表示消息发往JMS消息服务器之后,保存在内存中,不做持久化;  PERSISTENT 持久化 消息发往JMS消息服务器之后,持久化数据。以保证消息服务器拓机造成的消息丢失。 ======
ActiveMQ 使用Queue或者Topic发送/接受消息
本篇主要讲解在未使用其他框架(Spring)整合情况下,独立基于ActiveMQ,使用JMS规范进行消息通信。            一.JMS回顾        因为ActiveMQ是一个JMS Provider的实现,因此在开始实作前,有必要复习下JMS的基础知识     Java Message Service (JMS)是sun提出来的为J2EE提供企业消息处理的一套规范,JMS目
activeMQ数据消费了,但是在中间站却没有删除数据的原因
connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE); 第一个参数当改
消息队列activeMQ之(Topic类型)的小demo(学习笔记之四)
1、建立pom项目添加pom依赖<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.11.2</version> </dependency&
ActiveMQ(四):Topic方式使用MessageListener监听的方式接收消息
发布/订阅模式
利用Spring与ActiveMQ整合发送、接收消息实例(Queue与Topic模式)
利用Spring与ActiveMQ整合发送、接收消息实例,同时使用Queue与Topic两种模式。 1.运行环境:Win10+Eclipse Java EE IDEOxygen Release (4.7.0)+jdk1.8 2.web-inf/lib 中依赖jar包:activemq-all-5.15.0.jar spring-aop-4.2.2.RELEASE.jar spring...
ROS中节点在每次接收到消息之后都发布一条消息的反馈topic
#include "ros/ros.h" #include "std_msgs/String.h" #include ros::Publisher chatter_pub; ros::Subscriber sub; void callback() { std_msgs::String msg; std::stringstream ss; msg.data = "test
activemq broker topic消息收发处理过程
首先看一下activemq的网络模型(获取自网络)。 可以看到,TcpTransportServer是一个监听网络的类,如果有socket连接,便会放入阻塞队列,然后创建一个TransportConnection类,该类接收socket的消息,进行逻辑处理; 先看看TransportConnector在干啥 第一步:设置server处理类 第二步:接收到连接socket加入线程池 ...
消息队列 折腾ActiveMQ时遇到的问题和解决方法 消息丢失怎么办
折腾ActiveMQ时遇到的问题和解决方法:   1.先讲严重的:服务挂掉。 这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage>节点中配置。但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保...
Activemq消息确认机制
ActiveMQ消息传送机制以及ACK机制详解     AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。   一. ActiveMQ消息传送机制     Producer客户端使用来发送消息的, Consumer客户端用来消费消息;它们的协同
JMS学习十一(Spring+ActiveMQ消息持久化,Topic持久化订阅)
消息持久化就是将消息保存到磁盘,这样的好处就是如果服务挂了,则消息还保存在磁盘不会丢失,服务起来后还能找到消息并在此发送,消息的持久化和消息的发送模型是没有关系的。 消息持久化的配置很方便的,所以其他的那些就不写出来了,可以看看上一篇文章中的同步异步实现方式。这里只把持久化配置的列出来。 <bean class="org.springframework.j
Rocketmq 应用重启后重复消费消息问题(集群模式与广播模式)
Rocketmq 应用重启后出现重复消费的情况,查询相关资料后发现当客户端版本和服务端版本不同时,会出现重复消费的情况,但实际测试后发现,在版本有差异的情况下(客户端3.5.8版本,服务端4.2.0版本),采用集群模式消费,未出现重复消费的情况,采用广播模式时,会出现重复消费的情况。 Rocketmq 消费者分 集群模式 和 广播模式 两种方式,在消费者实例初试化时进行设置 // 集群模式 ...
ActiveMQ 处理失败时的消息重发机制
1. 处理失败 指的是MessageListener的onMessage方法里抛出RuntimeException。 2. Message头里有两个相关字段:Redelivered默认为false,redeliveryCounter默认为0。 3. 消息先由broker发送给consumer,consumer调用listener,如果处理失败,本地redeliveryCounter++,给
AMQ的持久化问题
前言 ​ 前面一篇AMQ专题中,我们发现对于Topic这种类型的消息,即使将deliveryMode设置为持久化,只要生产者在消费者之前启动。消息生产者发布的消息还是会丢失。这是符合JMS规范的。 当然,作为一个如此活跃的开源消息中间件,在实现JMS基本规范之后,必然会通过扩展的方式来实现Topic的持久化订阅。 而所谓的deliveryMode持久化和订阅持久化还是两个不同的概念。本篇博客...
spring boot整合activeMQ,实现queue和topic两者消息模式
如何下载安装MQ我就不说了,百度一大把,老规矩先上一下项目目录结构: 先看一下配置文件,主要是中间件的配置: ps:1.主要注意的是activeMQ默认提供ptp模式,若要使用topic模式需要假如最后一个配置为truespring.activemq.broker-url=tcp://localhost:61616 spring.activemq.in-memory=true spring.
ActiveMQ之Topic的持久订阅
非持久化订阅持续到它们订阅对象的生命周期。这意味着,客户端只能在订阅者活动时看到相关主题发布的消息。如果订阅者不活动,它会错过相关主题的消息。如果花费较大的开销,订阅者可以被定义为durable(持久化的)。持久化的订阅者注册一个带有JMS保持的唯一标识的持久化订阅(subscription)。带有相同标识的后续订阅者会再续前一个订阅者的订阅状态。如果持久化订阅没有活动的订阅者,JMS会保持订阅消息,直到消息被订阅接收或者过期。
ActiveMQ(九)--持久的Topic消息示例
生产者 import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class PersistenceSender { public static void main(String[] args) throws JMSException, InterruptedException ...
ActiveMq点对点模式发送、接收消息
消息发送流程: 1) 客户机发送消息到JMS消息中间件 2) 服务端负责监听JMS消息目的地。 3) 发现JMS里面有消息产生,服务就可以接受消息。 点对点消息发送服务: 1) 消息只能被一个服务接受 2) 多个服务同时监听消息服务器,遵循先来后到原则。 3) 消息一旦被接受,消息自动消失。 4) 如果消息一直没有被接受,消息会等待被接受,直到被接受为止。
ActiveMQ笔记(7):如何清理无效的延时消息?
ActiveMQ的延时消息是一个让人又爱又恨的功能,具体使用可参考上篇ActiveMQ笔记(6):消息延时投递,在很多需要消息延时投递的业务场景十分有用,但是也有一个缺陷,在一些大访问量的场景,如果瞬间向MQ发送海量的延时消息,超过MQ的调度能力,就会造成很多消息到了该投递的时刻,却没有投递出去,形成积压,一直停留在ActiveMQ web控制台的Scheduled面板中。 下面的代码演示了,如何
activemq中的订阅模式以及消息时长和确认机制
直接上代码 发布主题 package com.activemq; import org.apache.activemq.ActiveMQConnectionFactory; import javax.jms.*; public class TopicPub { public static void main(String[] args) throws JMSException {
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 怎么才能学好python python如何才能学好