摘要:現在使用做方面的開發工作,使用了和作為基礎數據的支撐,因為系統需要長期地運行,所以不確定當中途某個數據庫連接斷掉之后會發生什么情況,暫時不從源代碼入手吧,先手動嘗試觀察一下,先觀察表象,再深入理解經過測試,發現通過的客戶端獲取的連接在中途發
現在使用nodejs做tcp方面的開發工作,使用了redis和mongodb作為基礎數據的支撐,因為系統需要長期地運行,所以不確定當中途某個數據庫連接斷掉之后會發生什么情況,暫時不從源代碼入手吧,先手動嘗試觀察一下,先觀察表象,再深入理解
經過測試,發現通過nodejs的redis客戶端獲取的連接在中途發生斷線之后(模擬場景有手動Kill掉TCP連接和手動關閉redis-server兩種情況)會進行自動重連,而且在中途進行操作,回調函數中會返回錯誤信息,這樣的話至少代碼不會爆掉,進程也不會掛,最神奇的是之前獲取到的操作句柄還能夠正常使用,重連發生在這個操作對象內部,對開發者是不可見,應該來說很友好吧,最神奇的是nodejs驅動開發者考慮到了很多細節的問題,比如開始的時候客戶端訂閱了某個頻道,在進行重連后還會初始化一次(內部機制之后看源代碼之后才能下結論),看來真是省心啊。
mongodb的官方nodejs驅動有個很厲害的地方,當操作過程中連接被斷掉后(直接手動關閉mongodb-server),如果后續還有操作,將會被暫時存儲起來,當連接被重新建立之后,所有“緩沖區”的數據將會被寫入數據庫,看來還是很不錯的哦,但是目前待思考的地方是如果有大量數據,“緩存區”會在什么情況下清空呢?(看來研究一下驅動很有必要了)
他們的共同點就是第一次必須先獲取操作對象,否則代碼直接會爆掉的(不過這點上redis就做得比較好了,無論是否連接上客戶端都返回一個操作對象,看來mongodb其實還可以改進一下),這個當然好理解,所以現在系統在最開的時候會有一個初始化階段,負責初始化數據緩存池連接(包括redis和mongodb),接下來就不怕啦,即使是中途tcp斷掉一段時間還是可以接受的
無論在使用mongo還是redis在進行寫操作的時候,都一定使用回調函數,這樣才能更加保險,否則很有可能都沒有寫進去,又或者是數據在重連成功前被清除掉了呢。
@todo mongodb nodejs drive buffer size before connected again...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/18708.html
摘要:關鍵概念理解觀察者設計模式中主要區分兩個概念觀察者指觀察者對象,也就是消息的訂閱者被觀察者指要觀察的目標對象,也就是消息的發布者。 原文首發于微信公眾號:jzman-blog,歡迎關注交流! 最近補一下設計模式相關的知識,關于觀察者設計模式主要從以下幾個方面來學習,具體如下: 什么是觀察者設計模式 關鍵概念理解 通知觀察者的方式 觀察者模式的實現 觀察者模式的優缺點 使用場景 下面...
摘要:觀察者模式是一種使用頻率非常高的設計模式,無論是移動應用應用或者桌面應用,觀察者模式幾乎無處不在,它為實現對象之間的聯動提供了一套完整的解決方案,凡是涉及到一對一或者一對多的對象交互場景都可以使用觀察者模式。 觀察者模式(Observer Pattern)屬于對象行為型模式的一種,定義對象之間的一種一對多依賴關系,使得每當一個對象狀態發生改變時,其相關依賴對象皆得到通知并被自動更新。 ...
摘要:為了幫助灰太狼擺脫被老婆平底鍋抽的悲劇,發起了解救灰太狼的行動,必須要知道觀察者模式。持有觀察者對象的集合。設計模式源碼下載 相信大家都有看過《喜洋洋與灰太狼》,說的是灰太狼和羊族的斗爭,而每次的結果都是灰太狼一飛沖天,伴隨著一句我還會回來的......。為灰太狼感到悲哀,抓不到羊,在家也被老婆平底鍋虐待。灰太狼為什么會這么背? 很簡單,灰太狼本身就有暴露行蹤的屬性,羊咩咩就能知曉灰太...
摘要:實際上,設計模式就是通過面向對象的特性,將這些角色解耦觀察者模式本質上就是一種訂閱發布的模型,從邏輯上來說就是一對多的依賴關系。在添加一個觀察者時,把被主題被觀察者對象以構造函數的形式給傳入了觀察者。 每個角色都對應這一個類,比如觀察者模式,觀察者對應著觀察者類,被觀察者對應著被觀察者類。實際上,設計模式就是通過面向對象的特性,將這些角色解耦 觀察者模式本質上就是一種訂閱 / 發布的模...
摘要:轉載請注明出處作者地址本文出自簡書人人都會設計模式教程簡介閱讀對象本篇教程適合新手閱讀,老手直接略過教程難度初級,本人水平有限,文章內容難免會出現問題,如果有問題歡迎指出,謝謝地址正文一什么是觀察者模式生活中的觀察者模式警察抓小偷在現實生活 showImg(https://segmentfault.com/img/remote/1460000012295892?w=1240&h=474...
閱讀 1826·2021-10-09 09:44
閱讀 2699·2021-09-22 15:38
閱讀 2496·2021-09-09 09:33
閱讀 696·2021-09-07 09:58
閱讀 1827·2021-09-02 15:41
閱讀 2510·2019-08-30 15:55
閱讀 1801·2019-08-30 15:55
閱讀 543·2019-08-30 15:44