1、什么是MQ?
消息队列,消息的中间件。
2、ActiveMQ
java消息服务:不同系统之间的消息交换,是开发中常见的场景,比如系统A要将数据发送给系统B,这时候我们就需要中间件,随后sun公司提出了一种面向消息的中间件服务--JMS规范;常用的几种信息交互技术(httpClient、hessian、dubbo、jms、webservice 五种)
JMS概述:JMS即java消息服务,是JavaEE的标准之一。这种标准指出:消息的发送应该是异步的、非阻塞的。也就是说消息的发送者发送完消息后就直接返回了,不需要等待接收者返回后才能返回,发送者和接收者可以说是互不影响。所以这种标准能够减轻货消除系统瓶颈,实现系统之间去除耦合,提高系统的整体可伸缩性和灵活性。JMS只是Java EE中定义的一组标准API,它自身并不是一个消息服务系统,它是消息传送服务的一个抽象,也就是说它定义了消息传送的接口而并没有具体实现。
ActiveMQ概述:JMS只是消息服务的一组规范和接口,并没有具体时间,而ActiveMQ就是对JMS规范的具体实现(是Apache下的一个项目,采用Java语言开发)
ActiveMQ的消息形式:消息的传递有两种类型 (1)点对点(队列queue),一个生产者和一个消费者一一对应;(2)发布/订阅模式(topic),一个生产者生产消息并进行发送后,可以由多个消费者进行接受也就是一对多;
3、同步索引库分析
方案一:在taotao-manager中,添加商品的业务逻辑中,添加一个同步索引库的业务逻辑。
缺点:业务逻辑耦合度高,业务拆分不明确
方案二:业务逻辑在taotao-search中实现,调用服务在taotao-manager实现。业务逻辑分开。
缺点:服务之间的耦合度变高。服务的启动有先后顺序。
方案三:使用消息队列。MQ是一个消息中间件
MQ是一个消息中间件,ActiveMQ、RabbitMQ、kafka
为了实现系统之间通信,把系统之间调用的耦合度降低的情况下都可以使用MQ。
4.安装环境
1.需要jdk 2.安装Linux系统,生产环境都是Linux系统
5.安装步骤
第一步:把ActiveMQ 的压缩包上传到Linux系统。
第二步:解压缩。
第三步:启动。
使用bin目录下的activemq命令启动:[root@localhost bin]# ./activemq start
关闭:[root@localhost bin]# ./activemq stop
查看状态:[root@localhost bin]# ./activemq status
注意:如果ActiveMQ整合spring使用activemq-all-5.12.0.jar包 建议使用5.11.2
进入管理后台:http://192.168.25.168:8161/admin
用户名:admin 密码:admin
6.单独使用案例
对列queue一对一(当有两个消费者时一个生产者只能有一个消费)
topic一对多(一个生产者对应多的消费者)