请用白话讲解ActiveMQ的用途

请用白话讲解ActiveMQ的用途,第1张

用途就是用来处理消息,也就是处理JMS的。消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有着深入的应用,队列的主要作用是消除高并发访问高峰,加快网站的响应速度。

在不使用消息队列的情况下,用户的请求数据直接写入数据库,高发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧,但使用队列后,用户的请求发给队列后立即返回。

例如:不能直接给用户提示订单提交成功,京东上提示:“您提交了订单,请等待系统确认”再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。

由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。

扩展资料:

ActiveMQ主要有以下几种使用场景

1、异步调用。

2、一对多通信。

3、做多个系统的集成、同构、异构。

4、作为RPC的替代。

5、多个应用相互解耦。

6、作为事件驱动架构的幕后支撑。

7、为了提高系统的可伸缩性。

步骤如下:

1、把整个conf文件夹复制一份,比如叫conf2

2、修改里面的activemqxml文件

①brokerName不能和原来的重复

②数据存放的文件名称不能重复,比如<kahaDB directory = "${activemqdata}/kahadb2"/>

③所有涉及的transportConnector的端口,都要和原来的不一样。注意不要超出端口的范围(0-65535)

3、修改jettyxml,把里面的默认端口号8161改成别的,不如9161

4、到bin下面,复制一个activemq,比如叫activemq2

①修改程序的id,不能和原来的重复,ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq2pid"

②修改配置文件路径ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf2"

③修改端口,tcp://localhost:61616把61616改成和activemqxml里面的tcp端口一致。请注意,在activemq590版本中是这么修改。但我使用的是最新的5121版本,在activemq中找不到该tcp端口的配置,折腾了半天才发现该版本把这个配置挪到了env文件。所以就需要拷贝一份env,比如就叫env2吧,然后再env2里面把61616改成和activemqxml里面的tcp端口一致。最后别忘了把activemq2里面对env的引用改成env2。ACTIVEMQ_CONFIGS="/etc/default/activemq $HOME/activemqrc $ACTIVEMQ_HOME/bin/env2"

现在你可以到activemq的bin目录下分别执行/activemq start 和 /activemq2 start 了。这两个broker服务应该能正常启动了。

生成服务端私钥,并导入到服务端keyStore文件中,此 *** 作生成broker1ks文件,保存服务端私钥,供服务端使用。

根据服务端私钥导出服务端证书,此 *** 作生成broker_cert文件,该文件为服务端的证书。

导入服务端证书到客户端的Trust keyStore中。此 *** 作生成clientts文件,保存服务端证书,供客户端使用。

生成客户端私钥,并且导入到客户端keyStore文件中,此 *** 作生成client1ks文件,保存客户端私钥,供客户端使用。

根据客户端私钥导出客户端证书。

导入客户端证书到服务端的Trust keyStore中,此 *** 作生成broker1ts文件,保存客户端证书,供服务端使用。

证书到此生成完毕

将broker1ks,borker1ts,放在${activemqbase}/conf目录下

==${activemqbase}== activemq的根目录

在transportConnectors同级元素中(broker元素内)添加sslContext元素

transportConnectors中添加ssl连接

重启activemq

类似于jdbcTemplate,首先要配置一个ConnectionFactory,我们采用ActiveMQ52作为消息服务器。之后要开始配置JmsTemplate模板了。最后是配置消息目标了。消息分为队列和主题两大类,因此要配置两个消息目标了。
Java代码
1以下是引用片段:
2<!-- ActiveMQ -->
3
4 <!-- 配置JMS连接工厂 -->
5 <bean id="JmsConnectionFactory" class="orgapacheactivemqspringActiveMQConnectionFactory">
6 <property name="brokerURL" value="tcp://localhost:61616"/>
7 </bean>
8 <!-- 配置JMS模版 -->
9 <bean id="JmsTemplate" class="orgspringframeworkjmscoreJmsTemplate">
10 <property name="connectionFactory" ref="JmsConnectionFactory"/>
11 </bean>
12 <!-- 发送消息的目的地(队列) -->
13 <bean id="QueueDestination" class="orgapacheactivemqcommandActiveMQQueue">
14 <!-- 设置消息队列的名字 -->
15 <constructor-arg index="0" value="HelloWorldQueue"/>
16 </bean>
17 <!-- 发送消息的目的地(主题) -->
18 <bean id="TopicDestination" class="orgapacheactivemqcommandActiveMQTopic">
19 <!-- 设置消息主题的名字 -->
20 <constructor-arg index="0" value="FlexTopic"/>
21 </bean>
22<!-- ActiveMQ -->


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10654377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存