美女91-美女18一级毛片免费看-美女18毛片免费视频-美女18毛片-美乃雀中文字幕在线一区-美美女高清毛片视频免费观看

蒙狼科技logo
設為首頁| 聯系我們
咨詢熱線: 13917498722
  您的位置: 首頁 > 網站資訊 > Hadoop 中 IPC 的源碼分析

Hadoop 中 IPC 的源碼分析

發布日期:2017/6/11

百度權重查詢 站長交易 友情鏈接交換 網站監控 服務器監控 seo監控

好近開始看 Hadoop 的一些源碼,睜開hadoop的源碼包,各個組件分得比較清楚,于是開始看一下 IPC 的一些源碼。

IPC模塊,也就是進程間通信模塊,假如是在不同的機器上,那就可以理解為 RPC 了,也就是遠程調用。事實上, hadoop 中的 IPC 也就是基于 RPC 實現的。

使用 sloccount 統計一下 ipc 包中代碼的行數,一共是 2884 行。也就是說,IPC 作為hadoop的基礎組件,僅僅用了不到3000行的代碼,就完成得穩定且富有用率。

IPC 中的關鍵類關系:

對用戶而言,可以直接使用的就是綠色的類。

通過 RPC 這個門面:

客戶端可以創建響應的 proxy,接著就可以進行遠程調用。

而服務提供者則可以創建響應的 server,并進行響應的生命周期管理(start、stop),從而提供服務。

序列化

從上圖也可以看出,client 和 server 的交互,是通過網絡 connection, 而走網絡的調用,是需要走序列化/反序列話的過程的。

這個過程, IPC 使用了 Hadoop 的自己的序列化機制,一切都在 Writable 接口中,只要給定 writable 的 DataOutput 和 DataInput,就可以讓 Writable 自己實現序列化。

一些問題和思考

  • client 是單例的嗎 —— 可以理解為是,但其實不一定。可以跟蹤 getProxy 的代碼,雖然每次都會新建一個代理對象,但底層的 Client 照舊和 SocketFactory 對應的。一般默認的,都是使用默認的 SocketFactory, 但假如你設置了 "hadoop.rpc.socket.factory.class.default" ,則會有新的Client與你自定義的 SocketFactory 對應。這時候, client 就不是單例的。

  • client 與統一個 server 有幾個連接 —— 一個 client與一個 server 只有一個連接,具體可以看生成的代理中,有一個 remoteId, 這個 remoteId 是和 client關聯的,client 進行調用的使用,會將此 remoteId 作為一個 connectionId。因此,一般一個 client 是一個連接。

  • 假如 client 是一個連接,那么對此 client 的調用,不都是串行的嗎? —— 看你怎么理解了,在用戶層面,也就是 client 調用的方法,是可以并發的。client 底層是使用一個連接來進可能的完成吞吐量。每個 request 和 response 都會有一個 id 關聯起來。因此一個連接上可以跑滿請求和響應。

  • 因為網絡問題,client調用服務失敗后,有重試機制嗎 —— 在IPC中沒有看到call的重試,需要上層去保證了。但是后面的調用會重新建立連接。

  • server 是單例的嗎 —— 不一定。假如你只 getServer 一次的話。創建一個 server 的代價是特別很是重的。通過上圖你也可以知道,他需要有一個線程 (Listener)來 accept socket,同時需要一些 Reader線程 來進行 socket 的 read,還有一個 Responder 來進行 socket 的 write,另外,還有若干個 handler線程 來進行營業處理。因此,假如可以削減 server 的個數,就應該削減 server 個數。

  • 暴露出的服務是否應該是線程安全的 —— 是的,一定要線程安全。server 底層是通過 nio 進行 socket 操作的,因此雖然只有一個線程負責 accept,但是能夠支撐許多的client連接。這些連接在到達 server 端之后,很有可能就會并發執行統一方法(假如你的營業handler不止一個的話)

  • 一個 server 要消費多少線程資源? —— 讓我們來算一下,一個 Listener 線程,若干個 Reader 線程(默認1個),若干個 Handler 線程(在 getServer 的時候指定,一般1 - 10個),一個 Responder 線程。假如都按照默認值來計算的話。好少需要 1 + 1 + 1 + 1 = 4 個線程。也許,不應該算多,假如請求量不大的話,這些線程應該都被 blocked 住的。

總結

  • Hadoop 的 IPC 是一個比較輕量級別的 RPC
  • 從代碼來看,只支撐 java 進程之間的通信
  • 從沒有重試機制、一個Client 只有一個連接的機制來看,適合與應用網絡環境較好的場景,適合同機架或者同機房的集群。

P.S. 看了一下 io 包中,其實有個 retry 的 package,里面就是一個重試機制。新鮮的是為啥這個 package 被包含在 io package 中。





其他相關文章
  • 簡單實用!好流行的10個平面設計方法小結
  • 分析網站關鍵詞排名一直上不去的原因
  • 蒙狼蒙狼網絡帶您了解網絡營銷好基本的技巧
  • 企業網站建設做友情鏈接時應該知道的技巧
  • 小型網站可以選擇的網站內容管理系統
  • 揭開網站建設的神秘面紗




  • 企業網站后臺使用
    購物網站后臺使用
    網站產品圖片的處理



    農業銀行支付
    建設銀行支付
    郵政儲蓄銀行支付



    企業網站建設
    整站建設
    購物網站



    企業網站建設建議
    注冊適合自己的域名
    什么是虛擬主機




    售前咨詢QQ: 838821345
    售后服務QQ: 464698733
    應急手機:13917498722


    微信掃一掃
    添加24小時微信客服


    郵箱:lang@MENGL.CN
    地址:上海寶山區城銀路555弄2號樓3樓
    ICP備案:滬ICP備12042844號-3
     滬公網安備:31011402002917號
    做網站 | 企業網站建設 | 上海做網站 | 企業網站制作 | 做網站的公司 | 關于蒙狼 | 整站建設 | 購物網站 | 企業網絡營銷 | 成功案例 | 加盟代理 | 在線訂單
    服務區域: 臨港新區做網站 徐匯做網站 閔行做網站 長寧做網站 虹口做網站 黃浦做網站 盧灣做網站 靜安做網站 浦東做網站 楊浦做網站 普陀做網站 閘北做網站 寶山做網站 嘉定做網站 松江做網站 昆山做網站
    Copyright 2012-2025 上海蒙狼網絡科技有限公司 m.aqdzp.cn All Rights Reserved
    主站蜘蛛池模板: 国产年成美女网站视频免费看 | 国产一级aaaaa毛片欧美 | 久久久影院 | 亚洲在线不卡 | 亚洲理论片| 一个色中文字幕 | 三级 在线播放 | 欧美精品v日韩精品v国产精品 | 午夜在线观看免费观看大全 | 国产精品你懂的在线播放 | 国产精品无码久久av | 七次郎在线视频对华免费一屋 | 在线观看精品国语偷拍 | 亚洲欧美日产综合一区二区三区 | 欧美区视频 | 久久一本一区二区三区 | 国产一区高清视频 | 国产一区二区在线视频观看 | 人与动人物欧美网站 | 欧美日韩一区二区三区在线视频 | 欧美 日韩 亚洲 中文字幕 一区 | 一级毛毛片毛片毛片毛片在线看 | 黄色毛片免费在线观看 | 欧美日本在线视频 | 在线视频一区二区 | 成人1000部免费观看视频 | 丁香五月缴情综合网 | 免费观看一级欧美在线视频 | 久久精品视频在线观看 | 最近的最新的中文字幕在线 | 国产三级久久 | 亚洲欧美另类综合 | 一区二区视频在线观看 | 日本在线免费观看视频 | 欧美精品在线观看 | 日本不卡一二三区 | 永久免费观看黄网站 | 国产成人精品日本亚洲专一区 | 亚洲婷婷在线视频 | 日韩免费一级毛片 | 日本一级毛片在线播放 |