我在Rails 4.0中編寫API。這個系統應該公開其商業邏輯(模型)是用Rails 2.3.8編寫的資源。 GET請求的設計很簡單,因爲我們可以連接到數據庫並輕鬆公開資源。但是,要執行Create,Update,Delete操作,API系統需要調用Rails 2.3.8中另一個應用程序中編寫的模型。模型的完整重寫超出了範圍。在rails 2.3.8 for rails 4.0 api中使用模型
如何在Rails 4.0中使用Rails 2.3.8編寫的模型?是否有可能在兩個不同的rails/ruby版本之間共享模型?另外,還有哪些模式/設計方案可以解決這個問題?
我想出了以下解決方案 -
使用Druby和創造的Rails 4.調用方法的Rails 2.3.8模型對象,保存等,幷包裹他們得到例外。我看到的問題是,這可能無法擴展,因爲可能存在多個rails實例2.3.8應用程序運行在不同的盒子上,那麼我們是否需要在每個盒子上啓動druby服務?如果這些實例坐在負載均衡器後面怎麼辦?
使用ZeroMQ連接Rails 4和Rails 2.3.8應用程序。我們可以使用request-reply模式來實現同步。 ZeroMQ將連接到負載均衡器,發送請求到Rails 2.3.8應用程序,並將響應發送回Rails 4.0應用程序。觀察者可能會坐在Rails 2.3.8應用程序中觀察ZeroMQ上的任何傳入請求,並創建對象或捕獲異常並返回響應。任何使用觀察員模式以外的建議?
有沒有解決方法?哪個解決方案更好?有沒有辦法分享用不同版本爲模型編寫的ruby代碼?
這並不能解決問題,原因有兩個 - 1.有一個客戶端在等待HTTP請求的一端。 – 2014-10-06 22:17:20