消息中间件-ActiveMQ专题
作者:互联网
常见问题及解决方案:
1 什么是ActiveMQ ?
activeMQ 是一种开源的,实现了 JMS1.1 规范的,面向消息(MOM)的中间件,为应用程序提供高效的、可扩展的、稳定的和安全的企业级消息通信。
2 ActiveMQ 服务器宕机怎么办?
尽量不要用非持久化消息,非要用的话,将临时文件限制尽可能的调大
3 丢消息怎么办?
用持久化消息,或者非持久化消息及时处理不要堆积,或者启动事务,启动事务后,
commit()方法会负责任的等待服务器的返回,也就不会关闭连接导致消息丢失了。
4 消息的不均匀消费
将 prefetch 设为 1,每次处理 1 条消息,处理完再去取,这样也慢不了多少
5 死信队列
如果你想在消息处理失败后,不被服务器删除,还能被其他消费者处理或重试,可以关闭AUTO_ACKNOWLEDGE,将 ack 交由程序自己处理
如果使用了 AUTO_ACKNOWLEDGE,消费消息有 2 种方法,一种是调用 consumer.receive()方法,该方法将阻塞直到获得并返回一条消息。
这种情况下,消息返回给方法调用者之后就自动被确认了。另一种方法是采用 listener 回调函数,在有消息到达时,会调用 listener 接口的 onMessage 方法。在这种情况下,在 onMessage 方法执行完毕后,消息才会被确认,此时只要在方法中抛出异常,该消息就不会被确认。
标签:专题,处理,ActiveMQ,listener,消息,消息中间件,服务器,方法 来源: https://www.cnblogs.com/yang66/p/16482007.html