亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

【Golang實(shí)現網(wǎng)路爬蟲(chóng)】分布式爬蟲(chóng)系統構架

優(yōu)采云 發(fā)布時(shí)間: 2020-05-03 08:01

  

  分布式系統是一個(gè)硬件或軟件組件分布在不同的網(wǎng)路計算機上,彼此之間僅僅通過(guò)消息傳遞進(jìn)行通訊和協(xié)調的系統。簡(jiǎn)單來(lái)說(shuō)就是一群獨立計算機集合共同對外提供服務(wù),但是對于系統的用戶(hù)來(lái)說(shuō),就像是一臺計算機在提供服務(wù)一樣。分布式意味著(zhù)可以采用更多的普通計算機(相對于高昂的大型機)組成分布式集群對外提供服務(wù)。計算機越多,CPU、內存、存儲資源等也就越多,能夠處理的并發(fā)訪(fǎng)問(wèn)量也就越大。

  從分布式系統的概念中我們曉得,各個(gè)主機之間通訊和協(xié)調主要通過(guò)網(wǎng)路進(jìn)行,所以分布式系統中的計算機在空間上幾乎沒(méi)有任何限制,這些計算機可能被置于不同的機柜上,也可能被布署在不同的機房中,還可能在不同的城市中,對于小型的網(wǎng)站甚至可能分布在不同的國家和地區。

  不同的資料介紹起分布式系統的特性,雖然說(shuō)法不同,但都大同小異,此處我們針對于要實(shí)現的分布式爬蟲(chóng),總結為以下3個(gè)特征:

  消息傳遞完成特定需求

  消息傳遞的方式:

  分布式系統的*敏*感*詞*:

  

  一般對外會(huì )使用REST,模塊內部會(huì )使用RPC,效率會(huì )更高一些,模塊之前:中間件、REST

  針對于目前我們遇見(jiàn)的問(wèn)題,我們給予解決方案分布式爬蟲(chóng)架構,來(lái)設計分布式爬蟲(chóng)項目的構架:

  1.限流問(wèn)題

   問(wèn)題:

  單節點(diǎn)承受的流量是有限

   解決:

  將Worker放在不同的節點(diǎn)

  

  2.去重問(wèn)題

   問(wèn)題:

  單節點(diǎn)承受的去重數據量有限

  無(wú)法保存之前去重結果(因為是存入到顯存(map))

   解決:

  基于Key-Value Stroe(如Redis)進(jìn)行分布式去重

  

  

  3.數據儲存問(wèn)題

   問(wèn)題:

  存儲部份的結構,技術(shù)棧和爬蟲(chóng)部份區別很大

  進(jìn)一步優(yōu)化須要特殊的ElasticSearch技術(shù)背景

   解決:

  存儲服務(wù)

  

  所以最終我們的分布式爬蟲(chóng)構架如下:

  

  還有一個(gè)關(guān)鍵點(diǎn):從Channel進(jìn)化到分布式

  之前我們?yōu)榱藢?shí)現并發(fā),使用了大量的goroutine以及Channel。那我們就可以開(kāi)啟一個(gè)遠程的RPC服務(wù)分布式爬蟲(chóng)架構,然后進(jìn)行同步的調用。

  

  RPC有很多種做法,本文采用jsonrpc。

  源代碼

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久