簡體   English   中英

發布/訂閱REST-HTTP簡單協議Web服務體系結構?

[英]Publish/subscribe REST-HTTP Simple Protocol web services architecture?

我問你對“架構”場景的看法:

我正在尋找一個最簡單的發布/訂閱架構,讓我們在互聯網上討論兩個分離的服務器,共享“稀疏”但“實時”的消息/事件。

讓我解釋:

  • PUBLISHER:是一個生成某種事件的服務器( http://www.server.com )(通過電子商務網站上的例如events == ORDERS數據)。

  • 訂閱者(一個或多個):“客戶”是否可以訂閱以接收ORDERS事件( http://www.client.com )。

在現實生活中,發布者是由第三方開發的服務器(在Rails中)。 目前,我可以通過簡單的“輪詢”策略將“訂單”與其接口:每隔N秒我調用一次GET / new_orders。

壞!

所以我正在考慮使用REST方法更好的發布/訂閱架構,其中Publisher共享EVENTS資源:

  • 客戶端訂閱接收事件,向發布者提供將來要調用的“URL HOOK”(例如: http//www.client.com/orders )。

  • 發布者,當有新事件(==訂單)時,只需將HTTP POST數據發送到客戶端之前提供的客戶端URL Hook。

說得通 ? 或者我正在重新發明輪子?

順便說一下,我用Ruby語言開發,我知道pub / sub消息系統就像Faye。 但你怎么看待這個簡單的協議(我想簡單地使用Ruby / Sinatra實現客戶端)? (見圖1

歡迎任何建議。 非常感謝

喬治

建議簡單的架構

任何時候你都可以讓第三方發布你的網絡服務,這是一件好事! 很多時候,這不是一個選項,你必須采用某種低效的輪詢架構。 我認為您的架構圖沒有任何問題。

您可以隨時使用第三方消息傳遞系統(Amazon SQS,RabbitMQ等),但除非您需要持久消息傳遞 ,否則沒有太多理由這樣做。

編輯:

如果您擔心HTTP流量 - 特別是對您的Web服務進行的呼叫數量 - 您還可以鼓勵第三方支持批量POST。 也許他們只能每5分鍾向訂戶發送新訂單作為批次的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM