ActiveMQ的作用、原理是啥?
ActiveMQ的作用就是实现跨网络的习性与系统剑通信,可以将业务解耦,提供异步消息支持,增加系统并发量.比如原本执行一个操作需要1s,那么用户请求后必须等待1s之后才会得到响应,引入MQ之后,我们可以仅仅只做简单的校验流程,确认该操作可以执行时,将消耗的操作使用异步消息通知,并直接返回用户操作成功,而专门处理该业务的服务者监听该消息,一旦有消息之后就开始处理,用户只需要等待10ms
原理就是生产者将消息发送给ActiveMQ服务端,服务端会根据该消息对应的目标模型(p2p/topic)将消息发送给可以接受的消费者,期间默认会将数据进行持久化,并等待消费者签收消息后才会将消息删除,避免消息丢失
ActiveMQ的数据会不会丢失?
ActiveMQ发送消息的方式有两种,一种是持久化消息,一种是非持久化消息,如果发送的消息是持久化消息的话,消息是不会丢失的,ActiveMQ默认的是使用kahaDB来做数据的持久化,但是我们也可以用效率更高的levelDB,并且leverDB可以和zookeeper结合,实现ActiveMQ集群,持久化同步的问题
什么是消息
“消息”是在两台计算机间传送的数据单位。消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。
什么是消息队列
“消息队列”是在消息的传输过程中保存消息的容器。
windows版本安装步骤
1.官网下载安装包:
启动成功
2、 进入的页面
启动完成之后,在浏览器中输入下面的网址:http://localhost:8161
用户名和密码如下: admin/admin
到apache-activemq-5.16.4\conf这个目录,
找到jetty-realm.properties文件(该文件保存着用户名和密码信息),如下图所示:
端口号信息的配置在apache-activemq-5.16.4\conf下的jetty.xml文件中
登录进来:
3、创建队列
访问Queues菜单,输入队列名,点击创建按钮,创建队列;
4、设置
在操作列点击Send
To操作项,发送消息到One_QUEUE队列。如下图所示,发送了一条消息到one_queue队列,消息过期时间为300000毫秒,为5分钟
5、发送完成
消息发送完成后,自动跳转到队列列表页面,显示存在队列one_queue,待处理消息1条,入列消息1条,出列消息0条。
6、查看消息
点击列表中的Browse操作项,查看one_queue队列中的消息列表。可以看到于2022-05-07 11:18:31:070
CST发送了一条持久化的消息。
7、停止运行activemq
只需要在黑窗口里下按下ctrl+c就可以