我現在正在開發一個用於實時和歷史跟蹤Web服務的大型後端系統。
我在Python方面經驗豐富,打算將它與sqlalchemy(MySQL)一起用於開發後端。
我沒有任何開發健壯和可持續的後端系統的經驗,我想知道你們是否能指出我關於後端設計模式的一些文檔/書籍?我基本上需要通過實時查詢不同的服務(通過HTML/SOAP/JSON)將數據提供給數據庫,並保留這些數據的歷史記錄。Python後端設計模式
謝謝!
我現在正在開發一個用於實時和歷史跟蹤Web服務的大型後端系統。
我在Python方面經驗豐富,打算將它與sqlalchemy(MySQL)一起用於開發後端。
我沒有任何開發健壯和可持續的後端系統的經驗,我想知道你們是否能指出我關於後端設計模式的一些文檔/書籍?我基本上需要通過實時查詢不同的服務(通過HTML/SOAP/JSON)將數據提供給數據庫,並保留這些數據的歷史記錄。Python後端設計模式
謝謝!
你能更精確地定義「後端」嗎?通常,在web開發中,我遵循MVC'ish結構,其中我的「前端」,html/css/js和處理顯示的代碼與我的「後端」模型(業務對象和數據持久性;數據庫)。
我喜歡Django的模型/視圖/模板的方法:
但是,你還沒有真正確定你所說的「後端」的意思所以它很難對設計模式提出建議。你說你對Python有經驗,你有沒有開發過數據庫驅動的Web應用程序?
更新基於您的評論
,我不能幫助我一樣沒有太多的經驗做「後臺」這樣的。但是,看到您如何從網絡獲取資源,您的延遲/吞吐量將會非常高。因此,爲了提高整體效率,您將希望擁有可以運行多個線程或具有相當高併發性的進程的內容。我建議你檢查出這個線程的答案(和搜索類似的):
具體來說,我發現下面的遞歸web服務器和實例的例子中它可能會是一個很好的開始您的解決方案:
http://eventlet.net/doc/examples.html#recursive-web-crawler
至於採取這一想法,然後把它變成一個強大的/連續的過程,這將取決於你的很多平臺以及你如何做錯誤處理上。基本上是:
保持事物「健壯」的最好方法之一是儘可能簡單(而不是簡單化)。如果您所做的只是從網絡中獲取信息,以某種方式解析信息,然後將該信息存儲在數據庫中,然後嘗試保持簡單的過程。不要增加不必要的複雜性以使其更加健壯。如果你最終得到一個200行的腳本,它可以做你想做的,太棒了!
使用Apache,Django和Piston。
使用REST作爲協議。
儘量少寫代碼。
Django模型,表單和管理界面。
您的資源的活塞包裝。
非常感謝你!你能澄清django怎麼會在這裏發揮作用嗎?我過去使用它來編寫實際的網站,但它有它自己的數據模型,我需要使用MySQL。這可能嗎?關於活塞,這將是我的系統的一個獨立的部分,運行一個API的權利? – Raiders 2011-04-15 12:47:27
@Raiders:「它有自己的數據模型,我需要使用MySQL」?我不明白這個問題。 Django使用MySQL作爲後端。活塞是Django的一部分 - 它支持RESTful訪問Django模型對象。 – 2011-04-15 13:08:54
閱讀更多,我現在明白了。但是我真的不知道如何將django作爲一個常量運行後端框架 - 我需要我的系統實時運行24/7。閱讀django,我沒有看到表單在我的系統中起作用,也不知道如何編寫非請求服務的django系統。再次感謝! – Raiders 2011-04-15 13:11:52
感謝您的迴應!我的系統包含3個前端,數據庫和後端。數據由後端不斷獲取並插入到數據庫中,數據由前端同時顯示。所以後端是一個無限的腳本,將數據從互聯網上提取出來並寫入數據庫。我開發了寫入數據庫的Python腳本,但沒有任何東西可以無限運行,也沒有什麼東西必須設計得非常好,並且功能強大。謝謝! – Raiders 2011-04-14 23:13:35
@Raiders:請勿在評論中發佈此類事實。請**更新**有關信息的問題。 – 2011-04-15 03:07:54