成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

觀察者

gxyz / 1973人閱讀

摘要:現(xiàn)在使用做方面的開(kāi)發(fā)工作,使用了和作為基礎(chǔ)數(shù)據(jù)的支撐,因?yàn)橄到y(tǒng)需要長(zhǎng)期地運(yùn)行,所以不確定當(dāng)中途某個(gè)數(shù)據(jù)庫(kù)連接斷掉之后會(huì)發(fā)生什么情況,暫時(shí)不從源代碼入手吧,先手動(dòng)嘗試觀察一下,先觀察表象,再深入理解經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)通過(guò)的客戶端獲取的連接在中途發(fā)


現(xiàn)在使用nodejs做tcp方面的開(kāi)發(fā)工作,使用了redis和mongodb作為基礎(chǔ)數(shù)據(jù)的支撐,因?yàn)橄到y(tǒng)需要長(zhǎng)期地運(yùn)行,所以不確定當(dāng)中途某個(gè)數(shù)據(jù)庫(kù)連接斷掉之后會(huì)發(fā)生什么情況,暫時(shí)不從源代碼入手吧,先手動(dòng)嘗試觀察一下,先觀察表象,再深入理解


經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)通過(guò)nodejs的redis客戶端獲取的連接在中途發(fā)生斷線之后(模擬場(chǎng)景有手動(dòng)Kill掉TCP連接和手動(dòng)關(guān)閉redis-server兩種情況)會(huì)進(jìn)行自動(dòng)重連,而且在中途進(jìn)行操作,回調(diào)函數(shù)中會(huì)返回錯(cuò)誤信息,這樣的話至少代碼不會(huì)爆掉,進(jìn)程也不會(huì)掛,最神奇的是之前獲取到的操作句柄還能夠正常使用,重連發(fā)生在這個(gè)操作對(duì)象內(nèi)部,對(duì)開(kāi)發(fā)者是不可見(jiàn),應(yīng)該來(lái)說(shuō)很友好吧,最神奇的是nodejs驅(qū)動(dòng)開(kāi)發(fā)者考慮到了很多細(xì)節(jié)的問(wèn)題,比如開(kāi)始的時(shí)候客戶端訂閱了某個(gè)頻道,在進(jìn)行重連后還會(huì)初始化一次(內(nèi)部機(jī)制之后看源代碼之后才能下結(jié)論),看來(lái)真是省心啊。


mongodb的官方nodejs驅(qū)動(dòng)有個(gè)很厲害的地方,當(dāng)操作過(guò)程中連接被斷掉后(直接手動(dòng)關(guān)閉mongodb-server),如果后續(xù)還有操作,將會(huì)被暫時(shí)存儲(chǔ)起來(lái),當(dāng)連接被重新建立之后,所有“緩沖區(qū)”的數(shù)據(jù)將會(huì)被寫入數(shù)據(jù)庫(kù),看來(lái)還是很不錯(cuò)的哦,但是目前待思考的地方是如果有大量數(shù)據(jù),“緩存區(qū)”會(huì)在什么情況下清空呢?(看來(lái)研究一下驅(qū)動(dòng)很有必要了)


他們的共同點(diǎn)就是第一次必須先獲取操作對(duì)象,否則代碼直接會(huì)爆掉的(不過(guò)這點(diǎn)上redis就做得比較好了,無(wú)論是否連接上客戶端都返回一個(gè)操作對(duì)象,看來(lái)mongodb其實(shí)還可以改進(jìn)一下),這個(gè)當(dāng)然好理解,所以現(xiàn)在系統(tǒng)在最開(kāi)的時(shí)候會(huì)有一個(gè)初始化階段,負(fù)責(zé)初始化數(shù)據(jù)緩存池連接(包括redis和mongodb),接下來(lái)就不怕啦,即使是中途tcp斷掉一段時(shí)間還是可以接受的


無(wú)論在使用mongo還是redis在進(jìn)行寫操作的時(shí)候,都一定使用回調(diào)函數(shù),這樣才能更加保險(xiǎn),否則很有可能都沒(méi)有寫進(jìn)去,又或者是數(shù)據(jù)在重連成功前被清除掉了呢。


@todo mongodb nodejs drive buffer size before connected again...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/18708.html

相關(guān)文章

  • 設(shè)計(jì)模式之察者設(shè)計(jì)模式

    摘要:關(guān)鍵概念理解觀察者設(shè)計(jì)模式中主要區(qū)分兩個(gè)概念觀察者指觀察者對(duì)象,也就是消息的訂閱者被觀察者指要觀察的目標(biāo)對(duì)象,也就是消息的發(fā)布者。 原文首發(fā)于微信公眾號(hào):jzman-blog,歡迎關(guān)注交流! 最近補(bǔ)一下設(shè)計(jì)模式相關(guān)的知識(shí),關(guān)于觀察者設(shè)計(jì)模式主要從以下幾個(gè)方面來(lái)學(xué)習(xí),具體如下: 什么是觀察者設(shè)計(jì)模式 關(guān)鍵概念理解 通知觀察者的方式 觀察者模式的實(shí)現(xiàn) 觀察者模式的優(yōu)缺點(diǎn) 使用場(chǎng)景 下面...

    NotFound 評(píng)論0 收藏0
  • 一起學(xué)設(shè)計(jì)模式 - 察者模式

    摘要:觀察者模式是一種使用頻率非常高的設(shè)計(jì)模式,無(wú)論是移動(dòng)應(yīng)用應(yīng)用或者桌面應(yīng)用,觀察者模式幾乎無(wú)處不在,它為實(shí)現(xiàn)對(duì)象之間的聯(lián)動(dòng)提供了一套完整的解決方案,凡是涉及到一對(duì)一或者一對(duì)多的對(duì)象交互場(chǎng)景都可以使用觀察者模式。 觀察者模式(Observer Pattern)屬于對(duì)象行為型模式的一種,定義對(duì)象之間的一種一對(duì)多依賴關(guān)系,使得每當(dāng)一個(gè)對(duì)象狀態(tài)發(fā)生改變時(shí),其相關(guān)依賴對(duì)象皆得到通知并被自動(dòng)更新。 ...

    cpupro 評(píng)論0 收藏0
  • 我的Java設(shè)計(jì)模式-察者模式

    摘要:為了幫助灰太狼擺脫被老婆平底鍋抽的悲劇,發(fā)起了解救灰太狼的行動(dòng),必須要知道觀察者模式。持有觀察者對(duì)象的集合。設(shè)計(jì)模式源碼下載 相信大家都有看過(guò)《喜洋洋與灰太狼》,說(shuō)的是灰太狼和羊族的斗爭(zhēng),而每次的結(jié)果都是灰太狼一飛沖天,伴隨著一句我還會(huì)回來(lái)的......。為灰太狼感到悲哀,抓不到羊,在家也被老婆平底鍋虐待?;姨菫槭裁磿?huì)這么背? 很簡(jiǎn)單,灰太狼本身就有暴露行蹤的屬性,羊咩咩就能知曉灰太...

    smartlion 評(píng)論0 收藏0
  • Java 設(shè)計(jì)模式 察者模式

    摘要:實(shí)際上,設(shè)計(jì)模式就是通過(guò)面向?qū)ο蟮奶匦裕瑢⑦@些角色解耦觀察者模式本質(zhì)上就是一種訂閱發(fā)布的模型,從邏輯上來(lái)說(shuō)就是一對(duì)多的依賴關(guān)系。在添加一個(gè)觀察者時(shí),把被主題被觀察者對(duì)象以構(gòu)造函數(shù)的形式給傳入了觀察者。 每個(gè)角色都對(duì)應(yīng)這一個(gè)類,比如觀察者模式,觀察者對(duì)應(yīng)著觀察者類,被觀察者對(duì)應(yīng)著被觀察者類。實(shí)際上,設(shè)計(jì)模式就是通過(guò)面向?qū)ο蟮奶匦?,將這些角色解耦 觀察者模式本質(zhì)上就是一種訂閱 / 發(fā)布的模...

    馬忠志 評(píng)論0 收藏0
  • 人人都會(huì)設(shè)計(jì)模式:察者模式--Observer

    摘要:轉(zhuǎn)載請(qǐng)注明出處作者地址本文出自簡(jiǎn)書人人都會(huì)設(shè)計(jì)模式教程簡(jiǎn)介閱讀對(duì)象本篇教程適合新手閱讀,老手直接略過(guò)教程難度初級(jí),本人水平有限,文章內(nèi)容難免會(huì)出現(xiàn)問(wèn)題,如果有問(wèn)題歡迎指出,謝謝地址正文一什么是觀察者模式生活中的觀察者模式警察抓小偷在現(xiàn)實(shí)生活 showImg(https://segmentfault.com/img/remote/1460000012295892?w=1240&h=474...

    tianren124 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<