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

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

簡單了解如何在spring中使用RabbitMQ

這篇文章主要介紹了簡單了解如何在spring中使用RabbitMQ,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

10年積累的做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有無錫免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

(1)ActiveMQ

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

(2)RabbitMQ

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

(3)ZeroMQ

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

(4)Kafka

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

(5)RocketMQ 阿里巴巴

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

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

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

已經(jīng)配置好了ssm的開發(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.編寫生產(chǎn)者

2.1配置文件



  











  
    
  








2.2 發(fā)送方代碼

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

package cn.test.rabbitmq.spring;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MqSender {
  @Autowired
  private AmqpTemplate amqpTemplate;
  public void sendMessage(){
    //根據(jù)key發(fā)送到對應(yīng)的隊列
    amqpTemplate.convertAndSend("user.insert","spring整合RabbitMQ消息");
    System.out.println("發(fā)送成功........");
  }
}

2.3 測試代碼

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ā)送到對應(yīng)的隊列
    mqSender.sendMessage();
  }
}

3.編寫消費者

3.1 配置文件




  
  
  
  

  
  

  
  

  
  
    
  

3.2 監(jiān)聽代碼

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 測試代碼

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(){
   //等待隊列中放入任務(wù),如果有任務(wù),立即消費任務(wù)
    while (true){
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


文章名稱:簡單了解如何在spring中使用RabbitMQ
文章起源:http://weahome.cn/article/iepssp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部