1. 程式人生 > >BS架構下使用訊息佇列的工作流程

BS架構下使用訊息佇列的工作流程

非同步通訊
對於BS(Browser-Server 瀏覽器)架構,很多情景下server的處理時間較長。
如果瀏覽器傳送請求後,保持跟server的連線,等待server響應,那麼一方面會對使用者的體驗有負面影響;
另一方面,很有可能會由於超時,提示使用者服務請求失敗。

對於這種情景,訊息佇列提供了一個較好的解決方案,如圖2所示:
CQM_3.png

                              圖2 BS通訊模型的優化方案


工作流程如下:
(1)瀏覽器向伺服器傳送請求後,伺服器接到響應後立即返回;
(2)之後,伺服器向訊息佇列傳送已經完成的結果資訊;
(3)瀏覽器端用js等技術迴圈請求該訊息佇列,檢查是否有新的結果資訊,如果有則獲取訊息,並將結果渲染到瀏覽器介面上。

相關推薦

BS架構使用訊息佇列工作流程

非同步通訊 對於BS(Browser-Server 瀏覽器)架構,很多情景下server的處理時間較長。 如果瀏覽器傳送請求後,保持跟server的連線,等待server響應,那麼一方面會對使用者的

網際網路業務場景訊息佇列架構

訊息佇列作為一種基礎的抽象資料結構,被廣泛應用在各類程式設計與系統設計中。 同步VS非同步 通訊的一個基本問題是:發出去的訊息什麼時候需要被接收到?這個問題引出了兩個基礎概念:“同步通訊”和“非同步通訊”。根據理論抽象模型,同步通訊和非同步通訊最本質的差別來自於時鐘機制的有無。同步通訊的雙方需要一個校

以使用者註冊功能模組為例淺談MVC架構的JavaWeb開發流程

JavaWeb應用開發,撇開分散式不談,只討論一個功能服務應用的開發,無論是使用原生的Servlet/JSP方案,還是時下的SSM架構,都有一套經過工程實踐考驗的最佳實踐,這綜合考慮了團隊協作、專案管理、可用性等方方面面的問題。 一些約定 考慮到專案管理的方便,一般前端不能直接訪問到jsp頁面,而是必須通

Java架構訊息佇列 (一):訊息佇列的概述

訊息佇列系列分享大綱:  一、訊息佇列的概述 二、訊息佇列之RabbitMQ的使用 三、訊息佇列之Kafka的使用 四、訊息佇列之RabbitMQ的原理詳解 五、訊息佇列之Kafka的原理詳解 六、訊息佇列之面試集錦 1.訊息佇列的概述 訊息佇列(Me

MapReduce2架構設計(YARN工作流程(MR提交應用程式))

    前言:MapReduce是一種可用於資料處理的程式設計模型。該模型比較簡單,但是要寫出有用的程式缺不太容易。本篇文章主要介紹MapReduce2(YARN),會附帶介紹MapReduce1的架構。    狹義的hadoop包含:HDFS、MapReduce和YARN,

linux環境程式編譯工作流程

1.原始碼.c/.h檔案 2.預處理,將.c/.h檔案中的標頭檔案進行處理,巨集定義進行處理,除錯模式進行處理。使用gcc -E選項生成.i檔案 eg: # gcc -E hello.c -o hello.i 3.編譯器,將.i檔案生成彙編檔案,gcc首先檢查程式碼的規範性、是否有語法錯誤,

簡單聊django的工作流程

畫圖技術拙劣,哈哈,不忍直視啊!這張圖片是我對django工作流程一個大致的分析。在你寫好一個完整的django後,它的工作流程應該是這樣的:    1.使用者在客戶端瀏覽器輸入URL地址,通過get/post請求方式,向服務端發起請求。    2.django服務端接收到客

柯南君:看大資料時代的IT架構(8)訊息佇列之RabbitMQ--案例(topic起航)

public class ReceiveLogsTopic { private static final String EXCHANGE_NAME = "topic_logs"; public static void main(String[] argv)

柯南君:看大資料時代的IT架構(2)訊息佇列之RabbitMQ-基礎概念詳細介紹

在實際應用中,可能會發生消費者收到Quque中的訊息,但沒有處理完成就宕機的情況,這種情況下,就可能導致資訊丟失,為了避免這種情況發生,我們可以要求消費者在消費完訊息後傳送一個回執給RabbitMQ,RabbitMQ收到訊息回執(Message acknowledge)後,才將該訊息從Quque中移除。如果R

.NET 開源工作流: Slickflow流程引擎高階開發(七)--訊息佇列(RabbitMQ)的整合使用

前言:工作流流程過程中,除了正常的人工審批型別的節點外,事件型別的節點處理也尤為重要。比如比較常見的事件型別的節點有:Timer/Message/Signal等。本文重點闡述訊息型別的節點處理,以及實現訊息驅動流程過程中對訊息佇列(RabbitMQ)的整合使用方式。 1. 節點間訊息傳遞 1.1 Messag

大型網站架構系列:訊息佇列(二)(轉)

本文是大型網站架構系列:訊息佇列(二),主要分享JMS訊息服務,常用訊息中介軟體(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的內容大部分為網路資源的整理和彙總,供大家學習總結使用,最後有文章來源】 本次分享大綱 訊息佇列概述(見第一篇:大型網站架構系列:分散式訊息

大型網站架構系列:分散式訊息佇列(一)(轉)

以下是訊息佇列以下的大綱,本文主要介紹訊息佇列概述,訊息佇列應用場景和訊息中介軟體示例(電商,日誌系統)。 本次分享大綱 訊息佇列概述 訊息佇列應用場景 訊息中介軟體示例 JMS訊息服務(見第二篇:大型網站架構系列:分散式訊息佇列(二)) 常用訊息佇列(見第二篇:大型網站架構系列:分

淺談SDN架構的運維工作

導讀 目前國內的網路運維還處於初級階段,工作人員每天就像救火一樣,天天疲於奔命。運維人員只能埋頭查詢系統執行的日誌,耗時耗力,老眼昏花不說,有時候忙了半天還一無所獲,作為運維工程師的你,有木有遇到過類似苦逼的經歷? 目前國內的網路運維還處於初級階段,工作人員

RabbitMQ如何在命令列清除訊息佇列中的所有資料

最近在研究 RabbitMQ 訊息佇列, 安裝好進行測試的時候發覺在一個名為 MyRabbitMQ 的訊息佇列中已經插入了大量的資料。 最後不得不找方法清除。 首先定位到 rabbitMQ 安裝目錄的sbin 目錄下。 然後shift+右鍵 。 調出右鍵選單。 選擇在此處開啟

幾種常見的微服務架構方案簡述——ZeroC IceGrid、Spring Cloud、基於訊息佇列

2017-07-26 http://www.broadview.com.cn/article/348 微服務架構是當前很熱門的一個概念,它不是憑空產生的,是技術發展的必然結果。雖然微服務架構沒有公認的技術標準和規範草案,但業界已經有一些很有影響力的開源微服務架構平臺,架構師可以根據公司的技術實力並結合專案

YARN架構工作流程和排程機制總結

YARN 是一個資源管理、任務排程的框架,主要包含三大模組:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM). 1).ResourceManager 負責所有資源的監控、分配和管理; 2).ApplicationMa

Python 訊息佇列rabbitmq使用之工作佇列使用多個worker接收訊息

前面已經介紹過怎麼安裝rabbitmq以及要使用的三方庫 因此這裡直接進入例項 1、釋出端程式碼 # new_task.py import pika # 匯入pika import sys

Kafka工作流程-儲存訊息

1.儲存方式     物理上把topic分成一個或多個patition(對應 server.properties 中的num.partitions=3配置),每個patition物理上對應一個資料夾(該資料夾儲存該patition的所有訊息和索引檔案),如下: [[ema

CentOS6.9安裝rabbitmq訊息佇列

宣告:此文字非本人原創,而是一個名叫西安-晁州的作者在部落格園釋出的,本人也是比較尊重原創的,轉載只是為了方便檢視而已。 廢話不多說,需要安裝的朋友按照以下步驟就可以簡單按照了。。。。。。。 安裝如下步驟: 首先安裝erlang 1 yu

架構師日記——訊息佇列技術點梳理(思維導圖版)

訊息佇列作為服務/應用之間的通訊中介軟體,可以起到業務耦合、廣播訊息、保證最終一致性以及錯峰流控(克服短板瓶頸)等作用。本文不打算詳細深入講解訊息佇列,而是體系化的梳理訊息佇列可能涉及的技術點,起到提綱挈領的作用,構造一個巨集觀的概念,使用思維導圖梳理。 再介紹之前