由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、官網翻譯