2015-11-10 20 views
1

我們有一個基於restify的Node.js項目,我們使用RethinkDB作爲數據庫。問題是應該從代碼的不同部分(來自路由處理程序,中間件)訪問RethinkDB,但不是針對所有請求。我想知道在這種情況下連接到RethinkDB的最佳方式是什麼?RethinkDB的短期或長期連接?

我看下選項:

  • 有被存儲的地方(的方法,我們現在使用的)一個長連接,

  • 連接到RethinkDB每個HTTP請求,其中可能一些連接從未使用過,

  • 單獨連接每個部分,每個HTTP請求可能有多個連接,但沒有無用的連接。

我問這個問題,因爲我不確定重新思考如何處理好短/長連接以及它們的價格。例如,MongoDB更喜歡長連接,但RethinkDB文檔中的所有示例對每個HTTP請求使用一個連接。

回答

2

我推薦一個連接池或每個查詢一個連接。尤其是如果您使用像換卡那樣的功能,推薦使用它自己的連接。

當您對所有內容使用單個連接時,還必須在連接超時/斷開時處理重新連接。我認爲僅僅使用每個查詢的連接或共享請求/響應的連接會更容易。

只要確保在使用後關閉連接,否則您將泄漏連接並且無法創建新的連接。

一些司機更進一步,不需要你再考慮連接,如:https://github.com/neumino/rethinkdbdash

或酏劑RethinkDB:​​https://github.com/hamiltop/rethinkdb-elixir/issues/32有一些問題,以創建連接池。

RethinkDB有一個問題相關的連接池:https://github.com/rethinkdb/rethinkdb/issues/281

這可能是什麼社會標題了。