activemq使用demo

来源:互联网 发布:python np.split axis 编辑:程序博客网 时间:2024/06/05 11:18

一、AMQ安装服务器

1.    下载AMQ安装文件

apache-activemq-5.6.0-bin.tar.gz

http://download.csdn.net/detail/tianwei7518/6789701

 

2.    安装AMQ安装

上传到linux的指定目录,使用

tar –zxvf  apache-activemq-5.6.0-bin.tar.gz

出现apache-activemq-5.6.0文件夹即可

3.    配置AMQ

进入apache-activemq-5.6.0/conf目录下,替换配置文件activemq.xml,替换文件见:http://download.csdn.net/detail/tianwei7518/6789659

4.    启动AMQ服务器

apache-activemq-5.6.0/bin/activemqstatus    启动状态查看

apache-activemq-5.6.0/bin/activemqstop      关闭

apache-activemq-5.6.0/bin/activemqstart     启动

apache-activemq-5.6.0/bin/activemqrestart   重启

apache-activemq-5.6.0/bin/activemqconsole   控制台

5启动检查

amq服务器启动默认端口为61616

查看:netstat -an | grep 61616

也可以通过web查看,amq默认开启的web管理,默认端口为:8161

http://192.168.10.104:8161/admin/

二、程序

下载程序(http://download.csdn.net/detail/tianwei7518/6789675)导入eclipse中,如图:

将配置文件

中的tcp链接改为你的AMQ服务器所在的机器的IP

 

先启动Consumer,在启动Producer。可以多起几个消费者,由于配合的原因只有一个消费者消费,这种情况可以用于消费者的主备配置。

可以有多个生产者向AMQ服务器队列queue和主题topic中发消息。

三、AMQ服务器主备配置

为防止AMQ服务器单点故障可以使用多台做主备。只需多部署几台AMQ服务器,并在配置

中多加几个链接字符串,用逗号分隔,如:

tcp://192.168.10.104:61616?wireFormat.maxInactivityDuration=300000&wireFormat.maxInactivityDurationInitalDelay=120000,tcp://192.168.10.105:61616?wireFormat.maxInactivityDuration=300000&wireFormat.maxInactivityDurationInitalDelay=120000

当配置多个时,只有一个主服务器,其余为备份服务器,当主服务器宕机时,备服务器中一个切换为主服务器。且主备服务器中只有主服务器开启了tcp端口,备服务器只有切换后才开启。

四、消费者的主备配置

为了防止消费者宕机的情况,可以部署多个消费者,使这几个消费者只有一个消费,其余作为备份的,当活动的消费者宕机,由其余备份的消费者不上,这时可以指定这几个消费者订阅的主题一样,启用镜像队列VirtualTopic并指定consumer.exclusive=false,开启AMQ独占消费。

配置如下:

生产者:

消费者:

 

其中:${consumer.nodename}配置参数

注:(1)若使所有的消费者只用一个消费者消费,指定${consumer.nodename}为固定的值或使用队列传输数据。

   2)若所有消费者都能消费配置生产者和消费者的主题相同,并将consumer.exclusive=false去除。

 

 

ActiveMQQueueTopic的比较

1JMS Queue执行load balancer语义:

一条消息仅能被一个 consumer收到。如果在message发送的时候没有可用的consumer,那么它将被保存一直到能处理该messageconsumer可用。如果一个consumer收到一条message后却不响应它,那么这条消息将被转到另一个consumer那儿。一个Queue可以有很多 consumer,并且在多个可用的consumer中负载均衡。

2Topic实现publishsubscribe语义:

一条消息被publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的subscriber能够获得消息的一个拷贝。

3、分别对应两种消息模式:

Point-to-Point(点对点),Publisher/Subscriber Model (发布/订阅者)

其中在Publicher/Subscriber模式下又有Nondurable subscription(非持久订阅)和durable subscription (持久化订阅)2种消息处理方式。

0 0
原创粉丝点击