/*****************************************************************
* Copyright (c) 2017 www.noryar.com Inc. All rights reserved.
*****************************************************************/
package subscriber;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.jms.listener.DefaultMessageListenerContainer;
import org.springframework.stereotype.Component;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.TextMessage;
import java.util.concurrent.atomic.AtomicInteger;
/**
* 类描述:订阅者.
*
* @author leon.
*/
@Component
public class Subscriber {
private static final Logger LOGGER = LoggerFactory.getLogger(Subscriber.class);
private AtomicInteger cnt = new AtomicInteger();
// #############################注解启动方式#############################
// @JmsListener(destination = "test", containerFactory = "myFactory")
public String receive(Message message) throws JMSException {
String msg = ((TextMessage) message).getText();
LOGGER.info("get message: {}", msg);
cnt.addAndGet(1);
return msg;
}
public int getDealCnt() {
return cnt.get();
}
// #############################Container#############################
@Autowired
private Environment env;
@Autowired
private CtpListener ctpListener;
@Autowired
private VirtualTopicAListener virtualTopicAListener;
@Autowired
private VirtualTopicBListener virtualTopicBListener;
@Bean
public ActiveMQConnectionFactory myFactory() {
LOGGER.info(env.getProperty("spring.activemq.broker-url"));
ActiveMQConnectionFactory myFactory = new ActiveMQConnectionFactory();
myFactory.setBrokerURL(env.getProperty("spring.activemq.broker-url"));
myFactory.setAlwaysSyncSend(false);
myFactory.setUserName(env.getProperty("username"));
myFactory.setPassword(env.getProperty("password"));
return myFactory;
}
@Bean
public DefaultMessageListenerContainer myContainer() {
DefaultMessageListenerContainer myContainer = new DefaultMessageListenerContainer();
myContainer.setConnectionFactory(myFactory());
myContainer.setDestination(new ActiveMQQueue(env.getProperty("queue")));
myContainer.setMessageListener(ctpListener);
myContainer.setClientId("ctp_id_2");
myContainer.setSessionAcknowledgeModeName("CLIENT_ACKNOWLEDGE");
return myContainer;
}
@Bean
public DefaultMessageListenerContainer myVirtualATopicContainer() {
DefaultMessageListenerContainer myVirtualATopicContainer = new DefaultMessageListenerContainer();
myVirtualATopicContainer.setConnectionFactory(myFactory());
myVirtualATopicContainer.setDestination(new ActiveMQTopic(env.getProperty("topic.queue")));
myVirtualATopicContainer.setMessageListener(virtualTopicAListener);
myVirtualATopicContainer.setSubscriptionDurable(true);
myVirtualATopicContainer.setDurableSubscriptionName("client_A");
myVirtualATopicContainer.setClientId("client_A_name");
myVirtualATopicContainer.setSessionAcknowledgeModeName("CLIENT_ACKNOWLEDGE");
return myVirtualATopicContainer;
}
@Bean
public DefaultMessageListenerContainer myVirtualBTopicContainer() {
DefaultMessageListenerContainer myVirtualBTopicContainer = new DefaultMessageListenerContainer();
myVirtualBTopicContainer.setConnectionFactory(myFactory());
myVirtualBTopicContainer.setDestination(new ActiveMQTopic(env.getProperty("topic.queue")));
myVirtualBTopicContainer.setMessageListener(virtualTopicAListener);
myVirtualBTopicContainer.setSubscriptionDurable(true);
myVirtualBTopicContainer.setDurableSubscriptionName("client_B");
myVirtualBTopicContainer.setClientId("client_B_name");
myVirtualBTopicContainer.setSessionAcknowledgeModeName("CLIENT_ACKNOWLEDGE");
return myVirtualBTopicContainer;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于SpringBoot开发的ActiveMQ虚拟主题客户端(包含发布者和订阅者)
共84个文件
xml:46个
java:10个
class:8个
需积分: 14 27 下载量 133 浏览量
2017-11-18
00:05:37
上传
评论 1
收藏 28.37MB ZIP 举报
温馨提示
基于SpringBoot开发的ActiveMQ虚拟主题客户端,达到消费者多点消费、负载均衡和故障转移的目的。 详情可以参考这里: https://my.oschina.net/noryar/blog/1573047 https://my.oschina.net/noryar/blog/1575003
资源推荐
资源详情
资源评论
收起资源包目录
activemq-client.zip (84个子文件)
activemq-client
publisher
src
test
java
main
resources
application.yml 259B
java
publisher
Publisher.java 2KB
Web.java 1KB
boot
Application.java 579B
target
maven-status
maven-compiler-plugin
testCompile
default-testCompile
inputFiles.lst 0B
compile
default-compile
createdFiles.lst 69B
inputFiles.lst 276B
generated-sources
annotations
publisher-1.0-SNAPSHOT.jar 15.89MB
classes
publisher
Publisher.class 2KB
Web.class 829B
boot
Application.class 669B
application.yml 201B
publisher-1.0-SNAPSHOT.jar.original 4KB
maven-archiver
pom.properties 118B
pom.xml 507B
publisher.iml 5KB
src
test
java
main
resources
java
.idea
libraries
Maven__org_springframework_spring_aop_4_3_9_RELEASE.xml 597B
Maven__org_slf4j_slf4j_api_1_7_25.xml 501B
Maven__org_springframework_spring_webmvc_4_3_9_RELEASE.xml 618B
Maven__org_springframework_spring_context_4_3_9_RELEASE.xml 625B
Maven__org_springframework_spring_core_4_3_9_RELEASE.xml 604B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_15.xml 648B
Maven__org_springframework_boot_spring_boot_starter_logging_1_4_7_RELEASE.xml 736B
Maven__org_springframework_boot_spring_boot_1_4_7_RELEASE.xml 624B
Maven__com_fasterxml_classmate_1_3_3.xml 510B
Maven__org_apache_geronimo_specs_geronimo_jms_1_1_spec_1_1_1.xml 642B
Maven__ch_qos_logback_logback_classic_1_1_11.xml 563B
Maven__javax_validation_validation_api_1_1_0_Final.xml 599B
Maven__com_fasterxml_jackson_core_jackson_databind_2_8_8.xml 611B
Maven__org_springframework_spring_jms_4_3_9_RELEASE.xml 597B
Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml 536B
Maven__org_yaml_snakeyaml_1_17.xml 483B
Maven__org_apache_geronimo_specs_geronimo_j2ee_management_1_1_spec_1_0_1.xml 726B
Maven__org_fusesource_hawtbuf_hawtbuf_1_11.xml 525B
Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_15.xml 599B
Maven__org_springframework_boot_spring_boot_starter_web_1_4_7_RELEASE.xml 708B
Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml 550B
Maven__org_springframework_spring_web_4_3_9_RELEASE.xml 597B
Maven__org_hibernate_hibernate_validator_5_2_5_Final.xml 622B
Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml 596B
Maven__org_slf4j_jul_to_slf4j_1_7_25.xml 522B
Maven__org_springframework_boot_spring_boot_autoconfigure_1_4_7_RELEASE.xml 722B
Maven__org_apache_activemq_activemq_client_5_13_5.xml 583B
Maven__org_springframework_spring_expression_4_3_9_RELEASE.xml 646B
Maven__com_fasterxml_jackson_core_jackson_core_2_8_8.xml 583B
Maven__org_springframework_spring_beans_4_3_9_RELEASE.xml 611B
Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_15.xml 613B
Maven__ch_qos_logback_logback_core_1_1_11.xml 542B
Maven__org_springframework_boot_spring_boot_starter_1_4_7_RELEASE.xml 680B
Maven__org_springframework_spring_messaging_4_3_9_RELEASE.xml 639B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_8.xml 632B
Maven__org_springframework_boot_spring_boot_starter_tomcat_1_4_7_RELEASE.xml 729B
Maven__org_springframework_spring_tx_4_3_9_RELEASE.xml 590B
misc.xml 2KB
compiler.xml 1KB
workspace.xml 74KB
.name 15B
encodings.xml 348B
modules.xml 516B
copyright
profiles_settings.xml 74B
subscriber
src
test
java
main
resources
application.yml 361B
java
boot
Application.java 725B
subscriber
Subscriber.java 4KB
VirtualTopicAListener.java 2KB
CtpListener.java 2KB
Web.java 642B
NormalListener.java 2KB
VirtualTopicBListener.java 2KB
target
maven-status
maven-compiler-plugin
testCompile
default-testCompile
inputFiles.lst 0B
compile
default-compile
createdFiles.lst 36B
inputFiles.lst 381B
generated-sources
annotations
classes
boot
Application.class 998B
subscriber
CtpListener$MyTask.class 1KB
Subscriber.class 3KB
Web.class 696B
CtpListener.class 2KB
application.yml 502B
subscriber-1.0-SNAPSHOT.jar.original 7KB
subscriber-1.0-SNAPSHOT.jar 15.89MB
maven-archiver
pom.properties 119B
pom.xml 508B
subscriber.iml 5KB
pom.xml 1KB
activemq-client.iml 5KB
共 84 条
- 1
资源评论
「已注销」
- 粉丝: 29
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功