1. 程式人生 > >訊息佇列MQ的使用流程

訊息佇列MQ的使用流程

一、簡介

在大型平臺的分散式專案中,訊息佇列MQ具有重要的作用,經常用在邊緣業務功能的處理中,比如日誌管理【下面將以Bug日誌儲存為例】,因為像日誌儲存、新使用者註冊傳送郵件等操作都不是主幹業務,可以放在訊息佇列非同步處理,這樣可以減小專案的阻塞和壓力。下面介紹的是比較常用的一個訊息佇列ActiveMQ

二、專案的一般業務邏輯

就以Bug日誌儲存為例,介紹一般的業務邏輯:【如下圖程式碼示例】

【1】寫一個介面,

【2】然後呼叫注入的Service的業務邏輯方法,

【3】介面返回結果,流程結束。

三、要用訊息佇列情況的業務邏輯

【1】首先要有另外一個新的MQ專案伺服器,用於接收訊息,和處理訊息,暴露接口出來即可,

【2】在原先的專案業務上修改:請求MQ專案暴露出來的介面,把資料傳過去,如果是傳輸的資料是物件得注意這個物件進行序列話【就是實現Serializable介面】

【3】需要注意的是,原先的專案中的service的業務邏輯程式碼要copy到MQ專案中,到這裡你可能就明白了MQ的實現原理:原先的專案就負責傳送訊息給MQ專案,然後MQ專案上有一套完全一樣的業務處理程式碼,MQ專案在拿到訊息後再慢慢處理訊息【非同步進行】,說通俗一點,就相當於將業務轉移到另外一個專案。

四、MQ專案訊息端配置 

【1】原先專案中的service方法要copy過來,還有對應的實體類也要copy一致,

【2】寫一個接收訊息的介面:

【3】生產訊息的生產端【生產者】

【4】消費訊息的消費端 【消費者】

【5】配置queue的名字

 這是簡單的運用,用起來還是蠻簡單的,但是要了解裡面的原理還要多多學習原始碼。

相關推薦

訊息佇列MQ的使用流程

一、簡介 在大型平臺的分散式專案中,訊息佇列MQ具有重要的作用,經常用在邊緣業務功能的處理中,比如日誌管理【下面將以Bug日誌儲存為例】,因為像日誌儲存、新使用者註冊傳送郵件等操作都不是主幹業務,可以放在訊息佇列非同步處理,這樣可以減小專案的阻塞和壓力。下面介紹的是比較常用

訊息佇列MQ分析

做java開發的面試基本會遇到java基礎知識,設計模式,多執行緒,io,集合等,spring/springMvc/mybatis/springBoot,mysql/oracle/sql優化這些。現在僅僅會這些是不夠的,還會要求快取、訊息佇列、訊息中介軟體。springCloud/Dubbo

訊息佇列MQ選型 - Kafka、RabbitMQ對比

image.png 適應場景 非同步處理,應用解耦,流量削鋒和訊息通訊 對比 feature scenario Kafka RabbitMQ 備註 PUB-SUB 釋出訂閱模型

訊息佇列MQ技術的介紹和原理

訊息佇列技術是分散式應用間交換資訊的一種技術。訊息佇列可駐留在記憶體或磁碟上,佇列儲存訊息直到它們被應用程式讀走。通過訊息佇列,應用程式可獨立地執行--它們不需要知道彼此的位置、或在繼續執行前不需要等待接收程式接收此訊息。   訊息中介軟體概述    訊息佇列技術是分散式

轉載:訊息佇列MQ

本文大概圍繞如下幾點進行闡述: 為什麼使用訊息佇列? 使用訊息佇列有什麼缺點? 訊息佇列如何選型? 如何保證訊息佇列是高可用的? 如何保證訊息不被重複消費? 如何保證消費的可靠性傳輸? 如何保證訊息的順序性? 1、為什麼要使用訊息佇列? 分析:一個用訊息佇列的人,不知道

訊息佇列MQ, rabbitMQ和rocketMQ的實現方式

MQ全稱為Message Queue, 訊息佇列(MQ)是一種應用程式對應用程式的通訊方法。應用程式通過讀寫出入佇列的訊息(針對應用程式的資料)來通訊,而無需專用連線來連結它們。訊息傳遞指的是程式之間通過在訊息中傳送資料進行通訊,而不是通過直接呼叫彼此來通訊,直接呼叫通常是用

SpringBoot對訊息佇列(MQ)的支援

1.非同步訊息的定義   非同步訊息的主要目的是為了系統與系統之間的通訊,所謂非同步訊息即訊息傳送者無需等待訊息接收者的處理以及返回,甚至無需關心訊息是否傳送成功   在非同步訊息中有兩個很重要的概念,即訊息代理和目的地,當訊息傳送者傳送訊息之後,訊息將由訊

訊息佇列MQ】各類MQ比較 【轉載】

原文地址:http://blog.csdn.net/sunxinhere/article/details/7968886目前業界有很多MQ產品,我們作如下對比: RabbitMQ 是使用Erlang編寫的一個開源的訊息佇列,本身支援很多的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它

訊息佇列MQ】各類MQ比較

目前業界有很多MQ產品,我們作如下對比: RabbitMQ 是使用Erlang編寫的一個開源的訊息佇列,本身支援很多的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的非常重量級,更適合於企業級的開發。同時實現了一個經紀人(Broker)構架,這意味

詳解RPC遠端呼叫和訊息佇列MQ的區別

PC(Remote Procedure Call)遠端過程呼叫,主要解決遠端通訊間的問題,不需要了解底層網路的通訊機制。   RPC框架   知名度較高的有Thrift(FB的)、dubbo(阿里的)。   RPC的一般需要經歷4個步驟: 1、建立通訊 首先要

訊息佇列MQ】【Kafka&Jafka】design-2

源:http://incubator.apache.org/kafka/design.html Message Persistence and Caching Don't fear the filesystem!          Kafka在很大程度上依賴檔案系統來實現儲

Amazon SQS 訊息佇列服務_訊息佇列mq解決方案

Amazon Simple Queue Service (SQS) 是一種完全託管的訊息佇列服務,可讓您分離和擴充套件微服務、分散式系統和無伺服器應用程式。SQS 消除了與管理和運營訊息型中介軟體相關的複雜性和開銷,並使開發人員能夠專注於重要工作。藉助 SQS,您可以在軟體元件之間傳送、儲

訊息佇列 MQ

訊息佇列(Message Queue,簡稱 MQ)是阿里巴巴集團中介軟體技術部自主研發的專業訊息中介軟體,產品基於高可用分散式叢集技術,提供訊息釋出訂閱、訊息軌跡查詢、定時(延時)訊息、資源統計、監

使用jedis實現Redis訊息佇列(MQ)的釋出(publish)和訊息監聽(subscribe)

前言: 本文基於jedis 2.9.0.jar、commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis連線池需要依賴commons-pool2包,json

訊息佇列mq總結(重點看,比較了主流訊息佇列框架)

RabbitMQ/Kafka/ZeroMQ 都能提供訊息佇列服務,但有很大的區別。在面向服務架構中通過訊息代理(比如 RabbitMQ / Kafka等),使用生產者-消費者模式在服務間進行非同步通訊是一種比較好的思想。因為服務間依賴由強耦合變成了鬆耦合。訊息代理都會提供持久化機制,在消費者負載高或者掉線的情

訊息佇列mq的原理及實現方法

訊息佇列技術是分散式應用間交換資訊的一種技術。訊息佇列可駐留在記憶體或磁碟上,佇列儲存訊息直到它們被應用程式讀走。通過訊息佇列,應用程式可獨立地執行--它們不需要知道彼此的位置、或在繼續執行前不需要等待接收程式接收此訊息。 訊息中介軟體概述 訊息佇列技術是分散式應用間交

訊息佇列MQ的使用場景

mq解決的問題 1 系統間解耦合 2 異構環境跨語言呼叫 3 rpc遠端呼叫阻塞時間 mq缺點: 1 系統更復雜,引入一個mq元件; 2 呼叫路徑變長,增加延遲時間; 3 不能獲得執行結果

訊息佇列mq總結

RabbitMQ/Kafka/ZeroMQ 都能提供訊息佇列服務,但有很大的區別。 在面向服務架構中通過訊息代理(比如 RabbitMQ / Kafka等),使用生產者-消費者模式在服務間進行非同步通訊是一種比較好的思想。 因為服務間依賴由強耦合變成了鬆耦合。訊息代理都會提供持久化機制,在消費者負載高或者掉線

阿里雲訊息佇列mq(消費者)如何整合springboot,並能使用services

建立一個訊息佇列的資料庫維護表: CREATE TABLE `consumer_local` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `version` bigint(20) NOT NULL, `

linux程序通訊:使用posix訊息佇列mq進行執行緒或程序間的通訊

POSIX訊息佇列允許程序以訊息的形式交換資料。此API與System V訊息佇列(msgget(2),msgsnd(2),msgrcv(2)等)有明顯不同,但做的事情差不多。 在linux多執行緒程式設計中,如果兩個執行緒沒用共同的資料區,則需要使用訊息佇列從一個執行