1. 程式人生 > >由activemq訊息儲存滿導致的伺服器崩潰

由activemq訊息儲存滿導致的伺服器崩潰

    1.通過jstack 出來的執行緒有巨量的鎖死現象

"http://*:3050-8188" daemon prio=10 tid=0x00007fc597d60800 nid=0x9f03 waiting on condition [0x00007fc2d3df9000]

   java.lang.Thread.State: WAITING (parking)

at sun.misc.Unsafe.park(Native Method)

- parking to wait for  <0x0000000704953160> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

at java.util
.concurrent.locks.LockSupport.park(LockSupport.java:156) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:842) at java.util.concurrent
.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1178) at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186) at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262) at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java
:66) at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60) at org.apache.activemq.ActiveMQConnection.doAsyncSendPacket(ActiveMQConnection.java:1330) at org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1324) at org.apache.activemq.ActiveMQSession.<init>(ActiveMQSession.java:253) at org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:337) at org.springframework.jms.connection.SingleConnectionFactory.createSession(SingleConnectionFactory.java:406) at org.springframework.jms.connection.CachingConnectionFactory.getSession(CachingConnectionFactory.java:225) at org.springframework.jms.connection.SingleConnectionFactory$SharedConnectionInvocationHandler.invoke(SingleConnectionFactory.java:534) at $Proxy206.createSession(Unknown Source) at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.CGLIB$createSession$76(<generated>) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410$$FastClassByCGLIB$$c7ff63a4.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.qfang.base.logger.monitor.MqProductionMonitor.intercept(MqProductionMonitor.java:86) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.createSession(<generated>) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:457) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.CGLIB$execute$6(<generated>) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410$$FastClassByCGLIB$$c7ff63a4.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.qfang.base.logger.monitor.MqProductionMonitor.intercept(MqProductionMonitor.java:86) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.execute(<generated>) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:543) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.CGLIB$send$4(<generated>) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410$$FastClassByCGLIB$$c7ff63a4.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.qfang.base.logger.monitor.MqProductionMonitor.intercept(MqProductionMonitor.java:86) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.send(<generated>) at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:620) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.CGLIB$convertAndSend$20(<generated>) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410$$FastClassByCGLIB$$c7ff63a4.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at com.qfang.base.logger.monitor.MqProductionMonitor.intercept(MqProductionMonitor.java:86) at org.springframework.jms.core.JmsTemplate$$EnhancerByCGLIB$$48e1e410.convertAndSend(<generated>) at com.qfang.service.mq.queue.RoomHandlerSender.send(RoomHandlerSender.java:36) at com.qfang.service.room.impl.RoomHandlerServiceImpl.refurbish(RoomHandlerServiceImpl.java:383) at sun.reflect.GeneratedMethodAccessor343.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:91) at com.qfang.service.aop.room.RoomHandlerAspect.aopExecute(RoomHandlerAspect.java:89) at com.qfang.service.aop.room.RoomHandlerAspect.aopExecute(RoomHandlerAspect.java:52) at com.qfang.service.aop.room.RoomHandlerAspect.refurbish(RoomHandlerAspect.java:48) at sun.reflect.GeneratedMethodAccessor342.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) at com.qfang.base.logger.access.DiagnosisMonitor.monitor(DiagnosisMonitor.java:42) at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy106.refurbish(Unknown Source) at com.qfang.web.controller.room.RoomHandlerController.refurbishRoom(RoomHandlerController.java:328) at com.qfang.web.controller.room.RoomHandlerController$$FastClassByCGLIB$$f020cafa.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) at com.qfang.base.logger.access.DiagnosisMonitor.monitor(DiagnosisMonitor.java:42) at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) at com.qfang.web.controller.room.RoomHandlerController$$EnhancerByCGLIB$$878bd92d.refurbishRoom(<generated>) at sun.reflect.GeneratedMethodAccessor339.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) at com.qfang.web.session.redis.RedisSessionFilter.doFilter(RedisSessionFilter.java:65) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.qfang.web.filter.EncodeFilter.doFilter(EncodeFilter.java:23) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:89) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:156) at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:95) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:289) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:811) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1221) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1177) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1161) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1084) at com.caucho.network.listen.TcpSocketLink.handleAcceptTask(TcpSocketLink.java:907) at com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:74) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:97) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:80) at com.caucho.network.listen.AcceptTask.run(AcceptTask.java:59) at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164) at com.caucho.env.thread.ResinThread.run(ResinThread.java:130)

原因是activemq連線不能建立,問題聚焦到activemq伺服器上。

發現Store percent used 達到100%,導致訊息不能處理。

首先在activemq的配置檔案中增加檔案容量限制,由100g->160g。

接著看/data/kahadb 下面的日誌檔案,db-*沒有清除。

有兩個說法:

1.有未消費的訊息還存在,導致日誌檔案不會被自動清理執行緒cleanup

相關推薦

activemq訊息儲存滿導致伺服器崩潰

1.通過jstack 出來的執行緒有巨量的鎖死現象 "http://*:3050-8188" daemon prio=10 tid=0x00007fc597d60800 nid=0x9f03 waiting on condition [0x00007f

ActiveMQ訊息儲存機制

ctiveMQ是當下最流行和強大的開源企業訊息整合元件。 ActiveMQ效能優良,支援多種跨語言的客戶端和協議,支援JMS1.1和J2EE1.4,易於使用並且特性多多。 ActiveMQ基於Apache 2.0 License軟體協議。 當前最新版本為5.2.0(目前最新的是5.13.X) 最新特性: 多

Base64編碼導致伺服器崩潰

  對比,同樣是UNIX之父Ken設計的兩個作業系統:UNIX和Plan9,UNIX取得了巨大的成功,UNIX系統為Ken贏得了計算機中的諾貝爾獎——圖靈獎。但是Plan9系統確就顯得默默無聞了。但從設計來說,Plan9比UNIX更加UNIX,設計更為KISS和優雅。Plan9的特性和能力紛紛被UNIX和UN

ActiveMQ學習筆記(8)----ActiveMQ訊息儲存持久化

1. 概述   ActiveMQ不僅支援persistent和non-persistent兩種方式,還支援訊息的恢復(recovery)方式。 2. PTP   Queue的儲存是很簡單的,其實就是FIFO的Queue      2. PUB/SUB   對於持久化訂閱主題,每一個消費者都將獲得一

ActiveMQ訊息伺服器叢集理論概述

ActiveMQ叢集理論概述 為什麼要對訊息中介軟體叢集? 實現高可用,以排除單點故障引起的服務中斷 實現負載均衡,以提升效率為更多客戶端提供服務 ActiveMQ叢集基礎知識 叢集方式: 客戶端叢集:讓多個消費者消費同一佇列(在佇列模式

伺服器部署遇到儲存不足導致部署失敗

昨天部署伺服器,本地執行正常,打成war包放在伺服器下就報錯 ,出現的錯誤有Protocol handler instantiation failed java.lang.ClassNotFoundException: AJP/1.1. The name [/META-INF/resourc

zookeeper+activemq配置訊息中介軟體叢集 伺服器配置

摘要 自從activemq5.9.0開始,activemq的叢集實現方式取消了傳統的Master-Slave方式,增加了基於zookeeper+leveldb的實現方式,其他兩種方式:目錄共享和資料庫共享依然存在。本文主要闡述基於zookeeper和leveldb搭

ActiveMQ訊息持久化儲存策略

   ActiveMQ的核心是Java編寫的,也就是說如果服務端沒有Java執行環境ActiveMQ是無法執行的。ActiveMQ啟動時,啟動指令碼使用wrapper包裝器來啟動JVM。JVM相關的配置資訊在啟動目錄的“wrapper.conf”配置檔案中。各位讀者可以通過改變其中的配置項

即時通訊中伺服器離線訊息儲存優化

  隨著即時通訊技術的快速發展,即時通訊已經成為網路使用者生活中的一 部分;同時,在企業級的即時通訊中,即時訊息已不再是簡單的閒聊,上級 對下級的訊息可能意味著一項任務的安排。所以即時訊息不容輕易丟失,有 沒有真正送達需要有反饋。   目前的即時通訊系統一般都

ActiveMQ訊息傳送機制以及ACK機制詳解 AcitveMQ是作為一種訊息儲存和分發元件,涉及到client與broker端資料互動的方方面面,它不僅要擔保訊息儲存安全性,還要提供額外的

    AcitveMQ是作為一種訊息儲存和分發元件,涉及到client與broker端資料互動的方方面面,它不僅要擔保訊息的儲存安全性,還要提供額外的手段來確保訊息的分發是可靠的。 一. ActiveMQ訊息傳送機制     Producer客戶端使用來發送訊息的, Consumer客戶端用來消費

MQTT+ActiveMQ實現訊息推送(伺服器端java實現)

上一篇文章已經介紹了mqtt+activemq實現訊息推送移動端的實現,也介紹了利用自帶的web console進行訊息釋出的方法。但是在具體的專案應用中,當我們將需要將該訊息推送模組嵌入到一個後臺管理系統當中,我們就需要在web端來訪問activeMQ來進行訊

ActiveMQ訊息儲存持久化(一)

                                 ActiveMQ的訊息儲存持久化(一) 概述 ActiveMQ不僅支援persistent和non-persistent兩種方式,還支援訊息的恢復(recovery)方式。 PTP Queue的儲存是很

Linux索引節點(Inode:no space for device)用滿導致的一次故障

comm test yarn device operator 足夠 storm before java 問題描寫敘述 在storm測試環境集群上上nimbus和supervisor自己主動掛調。重新啟動時顯示no space for device,也不

Inode占滿導致No space left on device解決

inode占滿① 發現問題 線上有一臺web服務器磁盤檢測告警了,提示空間不足,登到服務器查看touch:cannot touch `furm.html‘: No space left on device② 分析問題使用df -h命令查看發現/data/web分區只使用了2%,創建文件卻提示磁盤空間

安裝glibc錯誤鏈接導致系統崩潰,u盤啟動緊急救援模式下修復系統。

-bash 回車 符號 根目錄 image ali 崩潰 mbo config Sln 命令 創建動態符號鏈接 用法 sln source dest 故障案例:一個誤操作 導致了一個不小的故障,輸入所有命令都無效,直接系統無法啟動。 故障描述 sln /

org.springframework.web.HttpMediaTypeNotAcceptableException,點斷解決方案導致的異常

del png RR amp work ram 地址 sage accept 錯誤發生的地方 @DeleteMapping("{fileName:.+}") public SerializeObject delete(@RequestHeader String a

SpringBoot整合ActiveMQ訊息佇列和雙向佇列、點對點與釋出訂閱

ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。 &nbs

磁盤空間不夠導致mysql崩潰重啟

sep pos crt ges 一次 ima val disk out 起因: 群裏有人提了句pt-ioprofile,我不知道,就查了查,想測一測,想以後可能會有幫助。 為了能看到效果,我選擇了我虛擬機上最大的壓測表Sbtest1,該表有100w數據,執行update s

springBoot+ActiveMQ訊息佇列安裝測試

1.ActiveMQ下載安裝(我使用的是5.14.0版本): 下載連結地址: http://activemq.apache.org/activemq-5140-release.html 2.1 Windows平臺MQ啟動(根據自己不同的計算機配置選擇32位或64位): &

五、通過Protobuf整合Netty實現對協議訊息客戶端與伺服器通訊實戰

目錄 一、Protocol Buffers 是什麼? 二、Protocol Buffers 檔案和訊息詳解 三、專案實戰,直接掌握的protobuf應用。 一、Protocol Buffers 是什麼?         1、官網翻譯