[英]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.