首先学习Active需要知道什么是ActiveMq?
ActiveMQ是apache下的一个消息中间件
然后要知道ActiveMq是干什么用的
在不同的系统中进行异步调用(tomcat1中的程序调用tomcat2中的程序) 在这里做个区分【与ajax异步没关系 ajax异步是不刷新页面的基础上进行局部刷新】}
同步:同步就是调用就执行(实时性好)
异步:异步调用后不知道什么时候才能执行(实时性不好)
举个简单使用场景的例子:
比如一所大学两万多人,1000名教师,所有同学同时给所有老师打分(如果在同一秒内提交数据库就写不进去服务器就炸了),数据库写的效率200-300MB/s 对于这样的打分结果不一定当时就看 过些时间看也可以。 把打分的结果给ActiveMq 然后一条一条保存(写到硬盘)。
ActiveMq 与RabbitMQ比较:
ActiveMq比较成熟 稳定不容易丢数据
RabbitMq 比较成熟 但是不是很稳定会丢数据,速度比较快 看使用场景选型。比如京东淘宝的订单。
了解:在支付的行业里面也会用RabbitMq虽然存在丢单的情况 。但是因为在同一个事物中所以丢失会回滚从新支付。但速度上会更快。电商上追求的还是速度。
RocketMq 阿里开发的新的 16年给了apach
消息中间件实现的jdk底层的一个接口 jdk底层 JMS即(java消息服务 java Messge Service)应用程序接口. 用于在两个应用程序之间,或者分布式系统中发送消息,进行异步通信。
Dobbo是实时性的。
具体怎么用呢!!!
要想会用先了解消息中间件的两种模式:
1、点对点(相当于qq中的私聊模式一对一)。
2、发布订阅模式(相当于群聊一个人发送多个人接收)
发布订阅模式:一个消息发送方(MessageProduce),多个消息接收方(MessageConsumer)。
系统:
1、调用订单模块,生成订单
2、调用财务模块,通知财务结算
3、调用商家通知模块,通知商家发货。
4、调用物流模块,进行准备发货。【 都在同一个事务中如果一个模块出现问题bug 则系统回滚,把购买的钱还给客户】。
具体 怎么用
1. 配置消息发送方的xml文件
2. 配置消息消费方的xml文件
3. 搭建消息服务器
4. 在消息消费方编写监听器, 监听所需要接收的数据, 进行处理