• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            我要啦免费统计

                                                           一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法

                                                                                                                   Lastupdate201246 蔡?hào)|赟

            http://www.LomoX.hk社區(qū)發(fā)布。

            ps:blog貼不了圖啊,可以再附件下載:一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法

             

            傳統(tǒng)的界面uiuilogic隔離方式采用的是接口的方式,為了解耦合,為了使隔離層之間業(yè)務(wù)統(tǒng)一。如圖,ui層你就負(fù)責(zé)界面的,你想用什么語言都可以; uilogic層你就只做ui傳下來的io,鍵盤鼠標(biāo)等的操作行為解析; applogic你就負(fù)責(zé)業(yè)務(wù),計(jì)算執(zhí)行的任務(wù)。這樣子,一個(gè)需求就可以同時(shí)三個(gè)人開發(fā)了。 

                    

             

             

             


            大型基礎(chǔ)軟件為了解耦而做的隔離,導(dǎo)致接口聲明膨脹。可以看到applogic層和uilogic的接口會(huì)無限膨脹,與其帶來的就是維護(hù)成本,如果是內(nèi)部定義的接口,書寫的時(shí)候你要每個(gè)層都提供一份聲明。

                     最近在想提供一個(gè)東西做為隔離層,先看圖。

             


                  Applogic uilogic就只有數(shù)據(jù)間的通訊了。采用異步的消息方式,不管你是多線程還是單線程。模塊之間耦合徹底消失。有人會(huì)問你這個(gè)service用啥。

            Zeromq吧,這是我機(jī)器上面測(cè)試的速度

            http://m.shnenglu.com/cdy20/archive/2012/04/01/169791.html  單線程一百w120s,那個(gè)快啊,如果作為本地的派發(fā)器的服務(wù)端足夠了。

                  通信數(shù)據(jù)如何處理呢?zeromq采用的是字符串發(fā)送,我們可以配合googleprotobuf定義解析協(xié)議數(shù)據(jù)。這個(gè)東西可以壓縮,解壓縮協(xié)議非常方便,配上這個(gè)高速度的mq,那簡(jiǎn)直棒極了。

             

            Zeromq作為一個(gè)可以內(nèi)核間、跨進(jìn)程、跨機(jī)器通信的消息隊(duì)列,不免又為我們提供了更多的設(shè)計(jì)的想象力。這么一個(gè)中間的消息的服務(wù)器,我們又可以把applogic切割,分成多個(gè)獨(dú)立模塊,如圖。

             

             


            如上圖,我們可以不斷拓展
            applogic的模塊,我們可以認(rèn)為這些模塊是獨(dú)立的 動(dòng)態(tài)鏈接庫,獨(dú)立的進(jìn)程都可以,或者是獨(dú)立線程,一切通信 進(jìn)出都是通過發(fā)送send,接收recv

            這個(gè)東西我現(xiàn)在遇到的工程項(xiàng)目組就有這個(gè)需求,他們要求是能夠并發(fā)開發(fā),甚至兩個(gè)人統(tǒng)一個(gè)模塊不四個(gè)分支同時(shí)進(jìn)行。一個(gè)強(qiáng)大的消息框架,讓我的模塊可以成為任何一種定義。

            畫個(gè)圈圈,歸納一下:



             上圖紅色圈圈代表bus。


                   上圖抽象的圖如下。

             

             

             

            這樣程序就可以任意擴(kuò)展了。任意切分了。

             

                     有錯(cuò)誤和改進(jìn)方法,請(qǐng)發(fā)到caidongyun19@qq.com.謝謝閱讀。

            共享促進(jìn)技術(shù)發(fā)展。蔡?hào)|赟。www.lomox.hk


            附上提醒:

            對(duì)待本框架,個(gè)人:建議團(tuán)隊(duì)自由度不要太高,需要根據(jù)團(tuán)隊(duì)項(xiàng)目的特點(diǎn)做一定的規(guī)范約束。否則將面臨質(zhì)量和維護(hù)成本遞增。

             from lomox  li:

             如果僅僅是做進(jìn)程間通信,那是大材小用了
            如果是進(jìn)程內(nèi)的線程間通信,就不合適
            客戶端面臨的問題是消息中心在進(jìn)程間和線程間的通信 

             

             

             

            posted on 2012-04-06 11:13 閱讀(1935) 評(píng)論(4)  編輯 收藏 引用 所屬分類: 個(gè)人框架設(shè)計(jì)

            評(píng)論:
            # re: 一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法 2012-04-06 12:22 | 飯中淹
            感覺就是MVC。  回復(fù)  更多評(píng)論
              
            # re: 一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法 2012-04-06 13:07 | WXX
            Chrome源碼:
            進(jìn)程間IPC
            進(jìn)程內(nèi)線程間MsgQueue
            同一線程對(duì)象間注冊(cè)消息,接受Notification

            封裝的足夠好了,可以借鑒。  回復(fù)  更多評(píng)論
              
            # re: 一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法 2012-04-06 13:23 | 蔡?hào)|赟
            @WXX
            chrome 看來還是得看看源碼的  回復(fù)  更多評(píng)論
              
            # re: 一種采用消息框架切分?jǐn)U展的設(shè)計(jì)方法 2012-04-06 15:04 | 蔡?hào)|赟
            @WXX
            zeromq估計(jì)超越這個(gè)了,你只要bind你制定的 ipc impro tcp 就可以了
            這種封裝 也很變態(tài)。  回復(fù)  更多評(píng)論
              
            亚洲一区中文字幕久久| 91麻精品国产91久久久久| 午夜欧美精品久久久久久久| 国产亚洲精久久久久久无码| 久久99国产精品久久99| 久久无码AV中文出轨人妻| 久久精品人人做人人爽97| 欧美大战日韩91综合一区婷婷久久青草 | 久久精品中文闷骚内射| 久久久久久国产精品免费免费| 伊人久久大香线蕉综合Av | 久久综合日本熟妇| 久久久九九有精品国产| 亚洲成色www久久网站夜月| 久久久免费观成人影院| 日本精品久久久久中文字幕8| 2021久久精品免费观看| 精品综合久久久久久88小说| 久久99国产精品99久久| 久久国产亚洲高清观看| 国内精品九九久久精品| 久久午夜福利无码1000合集| 热综合一本伊人久久精品| 99久久亚洲综合精品成人| 成人国内精品久久久久影院| 精品熟女少妇av免费久久| 亚洲精品乱码久久久久久蜜桃图片 | 日韩精品久久久久久久电影| 久久久久国产精品三级网| 亚洲国产天堂久久综合网站| 久久久久99精品成人片欧美| 久久精品国产久精国产思思 | 青青国产成人久久91网| 久久精品国产久精国产| 99久久国产综合精品五月天喷水| 四虎国产永久免费久久| 国产福利电影一区二区三区,免费久久久久久久精 | 日日噜噜夜夜狠狠久久丁香五月 | 久久亚洲精品无码VA大香大香| 天天做夜夜做久久做狠狠| 久久久SS麻豆欧美国产日韩|