SpringBoot整合ActiveMQ过程解析

网友投稿 380 2022-12-26


SpringBoot整合ActiveMQ过程解析

目录结构

引入 maven依赖

org.springframework.boot

spring-boot-starter-parent

1.5.4.RELEASE

UTF-8

UTF-8

1.8

org.springframework.boot

spring-boot-starter

org.springframework.boot&lawTUmDt;/groupId>

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-activemq

org.springframework.boot

spring-boot-maven-plugin

引入 application.yml配置

spring:

activemq:

broker-url: tcp://127.0.0.1:61616

user: admin

password: admin

queue: springboot-queue

server:

port: 8080

创建QueueConfig

@Configuration

public class QueueConfig {

@Value("${queue}")

private String queue;

@Bean

public Queue logQueue() {

return new ActiveMQQueue(queue);

}

@Bean

public JmsTemplate jmsTemplate(ActiveMQConnectionFactory activeMQConnectionFactory, Queue queue) {

JmsTemplate jmsTemplate = new JmsTemplate();

jmsTemplate.setDeliveryMode(2);// 进行持久化配置 1表示非持久化,2表示持久化

jmsTemplate.setConnectionFactory(activeMQConnectionFactory);

jmsTemplate.setDefaultDestination(queue); // 此处可不设置默认,在发送消息时也可设置队列

jmsTemplate.setSessionAcknowledgeMode(4);// 客户端签收模式

return jmsTemplate;

}

// 定义一个消息监听器连接工厂,这里定义的是点对点模式的监听器连接工厂

@Bean(name = "jmsQueueListenawTUmDer")

public DefaultJmsListenerContainerFactory jmsQueueListenerContainerFactory(

ActiveMQConnectionFactory activeMQConnectionFactory) {

DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();

factory.setConnectionFactory(activeMQConnectionFactory);

// 设置连接数

factory.setConcurrency("1-10");

// 重连间隔时间

factory.setRecoveryInterval(1000L);

factory.setSessionAcknowledgeMode(4);

return factory;

}

}

创建生产者:

@SpringBootApplication

http://@Component

@EnableScheduling

public class Producer {

@Autowired

private JmsMessagingTemplate jmsMessagingTemplate;

@Autowired

private Queue queue;

@Scheduled(fixedDelay=3000)

public void send() {

String result = System.currentTimeMillis()+"---测试";

System.out.println("result"+result);

jmsMessagingTemplate.convertAndSend(queue,result);

}

public static void main(String[] args) {

SpringApplication.run(Producer.class, args);

}

}

创建消费者的application.yml

spring:

activemq:

broker-url: tcp://127.0.0.1:61616

user: admin

password: admin

queue: springboot-queue

server:

port: 8081

创建消费者:

@Component

@SpringBootApplication

public class consumer {

private int count =0;

@JmsListener(destination = "${queue}")

public void receive(TextMessage textMessage,Session session) throws JMSException {

String text = textMessage.getText();

System.out.println("消费:"+text+"第几次获取消息count:"+(++count));

System.out.println();

String jmsMessageID = textMessage.getJMSMessageID();

}

public static void main(String[] args) {

SpringApplication.run(consumer.class,args);

}

}

结果显示:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:美团平台api测试工具(美团推单检测工具)
下一篇:关于在线http接口测试工具的信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~