真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

spring中RabbitMQ如何使用-創(chuàng)新互聯(lián)

spring中RabbitMQ如何使用,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司于2013年成立,先為昌吉等服務(wù)建站,昌吉等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為昌吉企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

常見(jiàn)的消息中間件產(chǎn)品:

(1)ActiveMQ

ActiveMQ 是Apache出品,最流行的,能力強(qiáng)勁的開(kāi)源消息總線。ActiveMQ 是一個(gè)完全支持JMS1.1和J2EE 1.4規(guī)范的 JMS Provider實(shí)現(xiàn)。

(2)RabbitMQ

AMQP協(xié)議的領(lǐng)導(dǎo)實(shí)現(xiàn),支持多種場(chǎng)景。淘寶的MySQL集群內(nèi)部有使用它進(jìn)行通訊,OpenStack開(kāi)源云平臺(tái)的通信組件,最先在金融行業(yè)得到運(yùn)用。我們?cè)诒敬握n程中介紹 RabbitMQ的使用。

(3)ZeroMQ

史上最快的消息隊(duì)列系統(tǒng)

(4)Kafka

Apache下的一個(gè)子項(xiàng)目 。特點(diǎn):高吞吐,在一臺(tái)普通的服務(wù)器上既可以達(dá)到10W/s的吞吐速率;完全的分布式系統(tǒng)。適合處理海量數(shù)據(jù)。

(5)RocketMQ 阿里巴巴

消息中間件利用高效可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成。通過(guò)提供消息傳遞和消息排隊(duì)模型,它可以在分布式環(huán)境下擴(kuò)展進(jìn)程間的通信。對(duì)于消息中間件,常見(jiàn)的角色大致也就有Producer(生產(chǎn)者)、Consumer(消費(fèi)者)。

消息隊(duì)列中間件是分布式系統(tǒng)中重要的組件,主要解決應(yīng)用解耦,異步消息,流量削鋒等問(wèn)題,實(shí)現(xiàn)高性能,高可用,可伸縮和最終一致性架構(gòu)。

Spring-amqp是對(duì)AMQP協(xié)議的抽象實(shí)現(xiàn),而spring-rabbit 是對(duì)協(xié)議的具體實(shí)現(xiàn),也是目前的實(shí)現(xiàn)。底層使用的就是RabbitMQ。

已經(jīng)配置好了ssm的開(kāi)發(fā)環(huán)境

1.導(dǎo)入依賴

     com.rabbitmq    amqp-client    5.5.3        org.springframework.amqp    spring-rabbit    2.1.3.RELEASE        com.fasterxml.jackson.core    jackson-databind    2.9.5  

2.編寫(xiě)生產(chǎn)者

2.1配置文件

         

2.2 發(fā)送方代碼

這里是往RabbitMQ隊(duì)列中放入任務(wù),讓消費(fèi)者去取

package cn.test.rabbitmq.spring;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MqSender {  @Autowired  private AmqpTemplate amqpTemplate;  public void sendMessage(){    //根據(jù)key發(fā)送到對(duì)應(yīng)的隊(duì)列    amqpTemplate.convertAndSend("user.insert","spring整合RabbitMQ消息");    System.out.println("發(fā)送成功........");  }}

2.3 測(cè)試代碼

package cn.test.rabbitmq.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.junit4.SpringRunner;import java.util.HashMap;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext-mq-send.xml")public class MqSendDemo {  @Autowired  private MqSender mqSender;  @Test  public void test(){    //根據(jù)key發(fā)送到對(duì)應(yīng)的隊(duì)列    mqSender.sendMessage();  }}

3.編寫(xiě)消費(fèi)者

3.1 配置文件

                         

3.2 監(jiān)聽(tīng)代碼

package cn.test.rabbitmq.spring;import org.springframework.amqp.core.Message;import org.springframework.amqp.core.MessageListener;import org.springframework.stereotype.Component;import java.io.UnsupportedEncodingException;public class MqListener implements MessageListener {  public void onMessage(Message message) {    try {      System.out.println(message.getBody());      String ms = new String(message.getBody(), "UTF-8");      System.out.println(ms);    } catch (Exception e) {      e.printStackTrace();    }  }}

3.3 測(cè)試代碼

package cn.itcast.rabbitmq.spring;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext-mq-receive.xml")public class MqReceiveDemo {  @Test  public void test(){   //等待隊(duì)列中放入任務(wù),如果有任務(wù),立即消費(fèi)任務(wù)    while (true){    }  }}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。


文章名稱:spring中RabbitMQ如何使用-創(chuàng)新互聯(lián)
本文URL:http://weahome.cn/article/hjicj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部