国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ActiveMQ用法

這篇具有很好參考價(jià)值的文章主要介紹了ActiveMQ用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

ActiveMQ 和 JMS的關(guān)系?

ActiveMQ是流行的開源消息中間件,JMS是Java平臺(tái)定義的一種消息傳遞的標(biāo)準(zhǔn)。ActiveMQ實(shí)現(xiàn)了JMS規(guī)范,因此可以使用JMS API來(lái)與ActiveMQ進(jìn)行交互。

JMS定義了一種標(biāo)準(zhǔn)的API。API包括了一些接口和類,用于創(chuàng)建、發(fā)送、接收和處理消息。ActiveMQ實(shí)現(xiàn)了這些接口和類,并提供了一些額外的功能,例如消息持久化、消息過(guò)濾、事務(wù)支持等。


JmsMessagingTemplate跟ActiveMQ的關(guān)系?

JmsMessagingTemplate是Spring框架提供的JMS消息發(fā)送工具類,封裝了JMS API的細(xì)節(jié),使得發(fā)送JMS消息變得更加簡(jiǎn)單和方便。

JmsMessagingTemplate可以與任何實(shí)現(xiàn)了JMS規(guī)范的消息中間件集成,包括ActiveMQ。使用JmsMessagingTemplate發(fā)送消息時(shí),需要指定目標(biāo)消息隊(duì)列或主題,以及消息內(nèi)容。JmsMessagingTemplate會(huì)將消息封裝成JMS消息對(duì)象,并通過(guò)JMS API將消息發(fā)送到指定的消息隊(duì)列或主題。ActiveMQ則負(fù)責(zé)接收J(rèn)MS消息,并將其存儲(chǔ)在消息隊(duì)列或主題中,等待消費(fèi)者進(jìn)行消費(fèi)。

@JmsListener的作用?

@JmsListener是Spring JMS提供的一個(gè)注解,用于監(jiān)聽JMS消息隊(duì)列或主題,并在收到消息時(shí)執(zhí)行相應(yīng)的方法。


ActiveMQ用法

引入依賴

<dependencies>
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-activemq</artifactId>
		</dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
        </dependency>
    </dependencies>

application.properties配置文件

spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
# 隊(duì)列名-支持自定義
spring.activemq.queue-name=queueTest
# 主題名-支持自定義
spring.activemq.topic-name=topicTest

配置類

// 加上@EnableJms是異步,不加默認(rèn)是同步
@Configuration
public class ActiveMqConfig {

    @Value("${spring.activemq.broker-url}")
    private String brokerUrl;

    @Value("${spring.activemq.user}")
    private String userName;

    @Value("${spring.activemq.password}")
    private String password;

    @Value("${spring.activemq.queue-name}")
    private String queueName;

    @Value("${spring.activemq.topic-name}")
    private String topicName;

    @Bean(name = "queue")
    public Queue queue() {
        return new ActiveMQQueue(queueName);
    }

    @Bean(name = "topic")
    public Topic topic(){
        return new ActiveMQTopic(topicName);
    }

    @Bean
    public ConnectionFactory connectionFactory(){
        return new ActiveMQConnectionFactory(userName, password, brokerUrl);
    }

    /**
     * 在Queue模式中,對(duì)消息的監(jiān)聽需要對(duì)containerFactory進(jìn)行配置
     * @param connectionFactory
     * @return
     */
    @Bean("queueListener")
    public JmsListenerContainerFactory<?> queueJmsListenerContainerFactory(ConnectionFactory connectionFactory){
        SimpleJmsListenerContainerFactory factory = new SimpleJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        // false的隊(duì)列,true是主題
        factory.setPubSubDomain(false);
        return factory;
    }

    /**
     * 在topic模式中,對(duì)消息的監(jiān)聽需要對(duì)containerFactory進(jìn)行配置
     * @param connectionFactory
     * @return
     */
    @Bean("topicListener")
    public JmsListenerContainerFactory<?> topicJmsListenerContainerFactory(ConnectionFactory connectionFactory){
        SimpleJmsListenerContainerFactory factory = new SimpleJmsListenerContainerFactory();
        factory.setConnectionFactory(connectionFactory);
        // false的隊(duì)列,true是主題
        factory.setPubSubDomain(true);
        return factory;
    }
}

生產(chǎn)者

@RestController
@RequestMapping("/activemq")
public class ProducerController {

    @Resource
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Queue queue;

    @Autowired
    private Topic topic;

    /**
     * queue模式mq消息發(fā)送
     * @param msg
     * @return
     */
    @GetMapping("/queue")
    public String sendQueue(String msg) {
        jmsMessagingTemplate.convertAndSend(queue, msg);
        return "success, 發(fā)送消息:" + msg;
    }

    /**
     * topic模式一對(duì)多的消息隊(duì)列的生產(chǎn)者
     * @param msg
     */
    @GetMapping("/topic")
    public String sendMsgTopic(@RequestParam String msg){
        jmsMessagingTemplate.convertAndSend(topic,msg);
        return "success, 發(fā)送消息:" + msg;
    }
}

消費(fèi)者

@Component
public class Consumer {
	/**
     * queue模式的消費(fèi)者
     * @param msg
     */
    @JmsListener(destination="${spring.activemq.queue-name}", containerFactory="queueListener")
    public void queueConsumer(String msg) {
        System.out.println("queue收到消息:" + msg);
    }

    /**
     * topic模式的消費(fèi)者
     * @param msg
     */
    @JmsListener(destination = "${spring.activemq.topic-name}", containerFactory = "topicListener")
    public void topicConsumer(String msg){
        System.out.println("topic收到消息:" + msg);
    }
}

原文博客:https://blog.csdn.net/imVainiycos/article/details/126021665?spm=1001.2014.3001.5506文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-712499.html

到了這里,關(guān)于ActiveMQ用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • docker-compose安裝和使用(自啟、redis、mysql、rabbitmq、activemq、es、nginx、java應(yīng)用)

    1.在線安裝docker-compose: 參考官網(wǎng):https://docs.docker.com/compose/install/other/ docker-compose安裝及簡(jiǎn)單入門 [Docker] docker-compose使用教程 Docker系列教程22-docker-compose.yml常用命令 2、離線安裝docker-compose: 參考:Docker - 離線安裝 docker-compose(以CentOS系統(tǒng)為例) (1)首先訪問(wèn) docker-compose 的

    2024年02月05日
    瀏覽(30)
  • ActiveMq學(xué)習(xí)⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

    ActiveMq學(xué)習(xí)⑨__基于zookeeper和LevelDB搭建ActiveMQ集群

    引入消息中間件后如何保證其高可用? 基于zookeeper和LevelDB搭建ActiveMQ集群。集群僅 提供主備方式的高可用集群功能,避免單點(diǎn)故障 。 http://activemq.apache.org/masterslave LevelDB,5.6版本之后推出了LecelDB的持久化引擎,它使用了自定義的索引代替常用的BTree索引,其持久化性能高于

    2024年02月05日
    瀏覽(19)
  • 記錄一次老服務(wù)器啟動(dòng)ActiveMq時(shí)報(bào)的Could not create the Java Virtual Machine.錯(cuò)誤

    記錄一次老服務(wù)器啟動(dòng)ActiveMq時(shí)報(bào)的Could not create the Java Virtual Machine.錯(cuò)誤

    服務(wù)器系統(tǒng)CentOS7? 1、出現(xiàn)ActiveMq服務(wù)無(wú)法連接 2、查看activemq狀態(tài) service activemq status 顯示activemq not running 3、找到ActiveMq的bin目錄,# 后臺(tái)啟動(dòng) ./activemq console 提示Could not create the Java Virtual Machine.錯(cuò)誤 可以判斷是java運(yùn)行環(huán)境的問(wèn)題 4、再看看java版本 java -version 5、再看看activemq版

    2024年04月22日
    瀏覽(38)
  • 【ActiveMQ】Failed to start Apache ActiveMQ (localhost, ID_XXX)

    在嘗試使用\\\"binwin64activemq.bat\\\"啟動(dòng)apache-activemq-5.18.2時(shí),出現(xiàn)了以下錯(cuò)誤: 錯(cuò)誤原因是由于ActiveMQ無(wú)法將mqtt://0.0.0.0:1883端口綁定,因?yàn)樵摱丝谝呀?jīng)被其他進(jìn)程占用。但是在命令行中輸入以下命令并沒(méi)有返回結(jié)果: 解決方法是修改 confactivemq.xml 文件,找到以下部分: 將端口號(hào)

    2024年02月10日
    瀏覽(18)
  • python接收activemq服務(wù)器的消息,轉(zhuǎn)發(fā)到另外兩個(gè)activemq服務(wù)器消息中

    要使用Python接收ActiveMQ服務(wù)器的消息并將其轉(zhuǎn)發(fā)到另外兩個(gè)ActiveMQ服務(wù)器,您可以使用Python的pika庫(kù)。pika是一個(gè)流行的AMQP(高級(jí)消息隊(duì)列協(xié)議)客戶端庫(kù),可以與ActiveMQ等消息代理進(jìn)行交互。 以下是一個(gè)簡(jiǎn)單的示例,演示如何使用pika從ActiveMQ服務(wù)器接收消息,并將其轉(zhuǎn)發(fā)到另外

    2024年01月19日
    瀏覽(21)
  • 七、ActiveMQ的傳輸協(xié)議

    七、ActiveMQ的傳輸協(xié)議

    官網(wǎng)地址:http://activemq.apache.org/configuring-version-5-transports.html ActiveMQ支持的client-broker通訊協(xié)議有:TVP、NIO、UDP、SSL、Http(s)、VM。 其中配置Transport Connector的文件在ActiveMQ安裝目錄的conf/activemq.xml中的transportConnectors標(biāo)簽之內(nèi)。 URI描述信息的頭部都是采用協(xié)議名稱,唯獨(dú)在進(jìn)行op

    2024年02月19日
    瀏覽(19)
  • Activemq存儲(chǔ)KahaDb詳解

    Activemq存儲(chǔ)KahaDb詳解

    ActiveMQ在不提供持久化的情況下,數(shù)據(jù)保存在內(nèi)存中,一旦應(yīng)用崩潰或者重啟之后,數(shù)據(jù)都將會(huì)丟失,這顯然在大部分情況下是我們所不希望的。對(duì)此ActiveMQ提供了兩種持久化方式以供選擇。 kahaDB是一個(gè)基于文件,支持事務(wù)的、可靠,高性能,可擴(kuò)展的消息存儲(chǔ)器,目前是a

    2024年02月04日
    瀏覽(18)
  • ActiveMQ面試題(二)

    死信隊(duì)列 ActiveMQ 中的消息重發(fā)時(shí)間間隔和重發(fā)次數(shù)嗎? 如果你想在消息處理失敗后,不被服務(wù)器刪除,還能被其他消費(fèi)者處理或重試,可以關(guān)閉AUTO_ACKNOWLEDGE,將 ack 交由程序自己處理。那如果使用了 AUTO_ACKNOWLEDGE,消息是什么時(shí)候被確認(rèn)的,還有沒(méi)有阻止消息確認(rèn)的方法?有

    2024年02月07日
    瀏覽(25)
  • 什么是 Apache ActiveMQ?

    ActiveMQ 是一種流行的消息傳遞服務(wù),可促進(jìn)企業(yè)系統(tǒng)中大規(guī)模的不同數(shù)據(jù)。在本 ActiveMQ 教程中,我們概述了 ActiveMQ、它的優(yōu)點(diǎn)、它的工作原理以及何時(shí)應(yīng)該使用它。 什么是 ActiveMQ? ActiveMQ 是一種流行的開源消息傳遞服務(wù),它構(gòu)建在 Java 之上。它用作面向消息的中間件 ( MoM

    2024年02月07日
    瀏覽(26)
  • ActiveMQ 02 常用API

    事務(wù) 用來(lái)提交/回滾事務(wù) Purge 清理消息 簽收模式 簽收代表接收端的session已收到消息的一次確認(rèn),反饋給broker ActiveMQ支持自動(dòng)簽收與手動(dòng)簽收 Session.AUTO_ACKNOWLEDGE 當(dāng)客戶端從receiver或onMessage成功返回時(shí),Session自動(dòng)簽收客戶端的這條消息的收條。 Session.CLIENT_ACKNOWLEDGE 客戶端通過(guò)

    2024年04月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包