JMS 之 ActiveMQ 第二篇
来源:互联网 发布:网络传销的基本特点是 编辑:程序博客网 时间:2024/05/16 06:42
看完第一篇大概知道JMS-activemq是什么玩意儿了吧。、
本篇介绍一下这个东西在实际项目中的用途,还有他的知识点。保证可以让你实实在在的忽悠面试官。
第三篇我会补充一下 实际开发中遇到的问题,还有一些解决办法。当然了 面试的时候 一般有人试探你到底用过没有,也是很好的题。
JMS的消息格式共五种:
其中项目中常用的是text 和 object。发送邮件的 ————text的
你们学JMS 是工作需求还是自己想学呢?为啥要学?知道应用场景吗?
应用场景:
大概以下这几种---------异步处理,应用解耦,流量削峰,日志处理,消息通讯。
JMS消息传世模式【两种】
一、点对点(P2P)queue
是一个生产者和一个消费者之间的
二、发布/订阅(pub/sub) topic 类似于广播
大家都去订阅消息了,可以有多个消费者了。
TextMessage--一个字符串对象
在工作中基本都是用来发送JSON的 它就是字符串
· ObjectMessage--一个序列化的 Java对象
是用来在网络中传输序列化的对象的,也可直接发送对象的,但是必须序列化
工作中遇到的一些问题。
①如何解决消息失败重发
答:如果发送失败,则尝试将消息存储到db,由后台线程定时重试,保证消息一定到达Broker。
②如何解决消息发送的顺序性的
答:根据业务把消息,比如说订单号相同的消息发送到同一个队列中
③如何解决消息中间件重复发送消息的
答:一般来说只有网络异常,Consumer启停等异常情况下会出现消息重复,此问题的本质原因是网络调用存在不确定性,
既不成功也不失败的第三种状态,所以才产生了消息重复性问题,最直接的解决办法就是消费端去重,消费过程做到消息幂等性。
④如何解决消息丢失
答:通常来说,消息丢失发生在某个broker不可用或者宕机,造成消息不能发送,导致消息丢失。
解决此类问题最好方式就是多master多slave节点
单master节点,一旦Broker重启或者宕机时,会导致整个服务不可用。
多master节点,单台机器宕机期间,这台机器上未被消费的消息在机器恢复之前不可订阅,消息实时性会受到受到影响。
为什么说多master多slave节点能解决此类问题呢,比如单个master broker宕机,不影响通信,如果master和slave之间是异步复制
可能会遗漏消息(master宕机并且没有及时复制到salve上去),但是只要master恢复过来,消息还是不会丢失,如果master硬盘损坏
就无法恢复了,这也是它的弊端,然而它的效率稍高。
另一种就是采用同步双写方式,master和slave必须同时写入才会成功,这样哪怕maser宕机,还有slave。
- JMS 之 ActiveMQ 第二篇
- JMS之ActiveMQ
- JMS之ActiveMQ初试
- 浅析jms之ActiveMQ
- JMS 之 ActiveMQ 简介
- JMS 之 ActiveMQ
- 【笔记】JMS之ActiveMQ
- JMS之activeMQ安装
- 【JMS】JMS之ActiveMQ的使用
- JMS之activeMQ--点对点通信
- JMS之消息队列 ActiveMQ
- JMS消息队列之ActiveMQ
- jms之ActiveMQ简单入门
- JMS 之 ActiveMQ 第一篇
- JMS之ActiveMQ基本应用
- JMS之ActiveMQ简单实现
- JMS简介之ActiveMQ实例
- JMS ActiveMQ
- Mysql数据库主从心得整理
- 无源晶振时钟计算
- 基于storm的wordCount
- 点击图片,背景音乐播放/停止,播放图标/静音图标随之更换
- Android Studio 配置系列(一):自定义代码注释
- JMS 之 ActiveMQ 第二篇
- 使用java程序update oracle 中 blob 字段
- android使用微信与支付宝支付在小米miui系统上ui线程被异常kill的bug修复
- http://www.cnblogs.com/simeone/p/4026173.html
- 矩阵的乘法
- 程序员面试题一
- Matlab中gradient函数的使用方法
- Android ListView工作原理完全解析,带你从源码的角度彻底理解
- VS+VisualGDB编译调试Linux程序