日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鍵值型數(shù)據(jù)庫(kù)在分布式爬蟲(chóng)系統(tǒng)中的應(yīng)用分析

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-25 18:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

張斌 楊彥松 廖雨寒

睿哲科技股份有限公司

一、背景

隨著互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)上的數(shù)據(jù)量呈現(xiàn)爆發(fā)式的增長(zhǎng)。單節(jié)點(diǎn)運(yùn)行的爬蟲(chóng)系統(tǒng),在性能等各方面都無(wú)法滿足現(xiàn)有的業(yè)務(wù)需求。因此網(wǎng)絡(luò)爬蟲(chóng)基于多節(jié)點(diǎn)的分布式協(xié)同運(yùn)行方案成為解決爬蟲(chóng)性能瓶頸的不二之選。而作為分布式系統(tǒng)的存儲(chǔ)中間件,key-value數(shù)據(jù)庫(kù)(redis和pika)在數(shù)據(jù)結(jié)構(gòu)的支持,高吞吐的性能,接口的易用性等方面都是不錯(cuò)的選擇。

二、Redis和Pika

Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value高性能存儲(chǔ)系統(tǒng)。它支持存儲(chǔ)多種類(lèi)型的value,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類(lèi)型)等。這些數(shù)據(jù)類(lèi)型都支持push/pop、add/remove、取交集、并集、差集及更豐富的操作,而且這些操作都是原子性的。與傳統(tǒng)的內(nèi)存數(shù)據(jù)庫(kù)一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改操作寫(xiě)入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。

Pika是一個(gè)開(kāi)源的可持久化的大容量類(lèi)redis存儲(chǔ)系統(tǒng)。兼容redis的string、hash、list、zset、set等絕大部分的數(shù)據(jù)接口,不用修改代碼即可平滑從redis遷移到pika。主要解決redis由于存儲(chǔ)數(shù)據(jù)量巨大而導(dǎo)致內(nèi)存不足的內(nèi)存容量瓶頸,并且可以像redis一樣,通過(guò)slaveof命令進(jìn)行主從備份,支持全同步和部分同步,pika還可以用在twemproxy或者codis中來(lái)實(shí)現(xiàn)靜態(tài)數(shù)據(jù)分片

本文針對(duì)兩種存儲(chǔ)系統(tǒng),在分布式爬蟲(chóng)系統(tǒng)中的應(yīng)用,進(jìn)行對(duì)比,以供參考。

三、兩種數(shù)據(jù)庫(kù)對(duì)比

1)Redis:高性能的key-value存儲(chǔ)解決方案。

優(yōu)勢(shì):

1.高性能:作為內(nèi)存數(shù)據(jù)庫(kù),redis擁有超高的吞吐性能;

2.多樣化的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu):redis支持string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類(lèi)型)等;

劣勢(shì):

1.大數(shù)據(jù)量存儲(chǔ)承載能力有限,存儲(chǔ)成本高;

2.單線程運(yùn)行方式易阻塞,相對(duì)比較脆弱。

2)Pika:利用磁盤(pán)存儲(chǔ)來(lái)解決redis的內(nèi)存容量瓶頸。

優(yōu)勢(shì):

1.使用Redis協(xié)議,兼容redis絕大多數(shù)命令,為兩種數(shù)據(jù)庫(kù)共存提供基礎(chǔ);

2.使用磁盤(pán)存儲(chǔ),解決redis大數(shù)據(jù)量存儲(chǔ)瓶頸;

3.使用多線程模式,相對(duì)比較健壯。

劣勢(shì):

1.受磁盤(pán)限制,整體性能相對(duì)較差,吞吐量是瓶頸,當(dāng)吞吐量過(guò)高時(shí)會(huì)出現(xiàn)數(shù)據(jù)丟失的情況;

2.缺少成熟的集群多節(jié)點(diǎn)擴(kuò)展方案;

3.不支持分庫(kù),對(duì)于多業(yè)務(wù)邏輯分類(lèi)的場(chǎng)景不太友好。

四、分布式爬蟲(chóng)系統(tǒng)

目前爬蟲(chóng)系統(tǒng)進(jìn)行頁(yè)面抓取的主要流程:調(diào)度器(Scheduler)接收到request并放入隊(duì)列進(jìn)行排序、去重、轉(zhuǎn)發(fā)等操作,下載器(Downloader)從隊(duì)列獲取到待下載的request,從網(wǎng)絡(luò)獲取到頁(yè)面數(shù)據(jù)后,提供給爬蟲(chóng)(spider)進(jìn)行分析處理。爬蟲(chóng)從數(shù)據(jù)中提取新的request給調(diào)度器,同時(shí)將結(jié)構(gòu)化數(shù)據(jù)(item)交給數(shù)據(jù)管道(item pipeline)進(jìn)行存儲(chǔ)分發(fā)等操作。具體流程參考scrapy框架結(jié)構(gòu)圖如下:

要實(shí)現(xiàn)分布式爬蟲(chóng),首先需對(duì)調(diào)度器進(jìn)行修改,用網(wǎng)絡(luò)存儲(chǔ)中間件替換本地隊(duì)列,通過(guò)網(wǎng)絡(luò)存儲(chǔ)中間件對(duì)request進(jìn)行多節(jié)點(diǎn)分發(fā),同時(shí)還需要用中間件存儲(chǔ)request指紋從而實(shí)現(xiàn)去重。

五、鍵值型數(shù)據(jù)庫(kù)在分布式爬蟲(chóng)系統(tǒng)中的應(yīng)用

要實(shí)現(xiàn)上述功能改造,redis這類(lèi)的高性能key-value數(shù)據(jù)庫(kù)就目前來(lái)說(shuō)是最佳的適用方案。首先redis的高性能能夠保證大量節(jié)點(diǎn)進(jìn)行request的讀取,同時(shí)redis支持多種數(shù)據(jù)結(jié)構(gòu)及其接口,能夠很方便的實(shí)現(xiàn)各種隊(duì)列的業(yè)務(wù)邏輯。其中可以用list實(shí)現(xiàn)FifoQueue和LifoQueue,用zset實(shí)現(xiàn)PriorityQueue,用set實(shí)現(xiàn)RFPDupeFilter。同時(shí)還可以使用list或者pub/sub來(lái)實(shí)現(xiàn)多任務(wù)調(diào)度和分發(fā),不需要再另外引入kafka、MQ這類(lèi)的消息隊(duì)列來(lái)做多任務(wù)管理,從而減小整個(gè)爬蟲(chóng)系統(tǒng)的架構(gòu)體積;雖然redis能充分滿足整個(gè)爬蟲(chóng)系統(tǒng)的分布式需求,可是在某些場(chǎng)景下,redis會(huì)出現(xiàn)瓶頸;其中存儲(chǔ)容量則是最主要的瓶頸。

在爬取過(guò)程中,一個(gè)request序列化之后大約占用1KB左右的存儲(chǔ)空間,1GB內(nèi)存則只能處理大約100萬(wàn)個(gè)request。因?yàn)樵L問(wèn)控制之類(lèi)的原因,爬取一個(gè)擁有千萬(wàn)級(jí)頁(yè)面的網(wǎng)站,redis就需要大約10GB左右的內(nèi)存。一臺(tái)64G內(nèi)存的服務(wù)器也僅僅只能支持5-7個(gè)大型爬取任務(wù)的同時(shí)執(zhí)行。

因此引入pika這種以磁盤(pán)為主要存儲(chǔ)的類(lèi)redis數(shù)據(jù)庫(kù)。pika在保留了redis多樣化數(shù)據(jù)結(jié)構(gòu)的同時(shí),極大的擴(kuò)展了數(shù)據(jù)存儲(chǔ)容量,從而解決request的容量瓶頸。

可是pika的無(wú)集群模式,同樣對(duì)pika的性能產(chǎn)生很大的制約。在不使用SSD硬盤(pán)的情況下,只是單獨(dú)使用pika會(huì)出現(xiàn)大量的慢查詢,導(dǎo)致部分?jǐn)?shù)據(jù)丟失的情況。因?yàn)闆](méi)有集群模式來(lái)實(shí)現(xiàn)多實(shí)例負(fù)載均衡,所以pika的性能擴(kuò)展成本將比redis高不少。

最終在多任務(wù)分布式爬蟲(chóng)系統(tǒng)中,需要用redis和pika兩種中間件來(lái)支持整個(gè)爬蟲(chóng)系統(tǒng)的運(yùn)行。其中redis負(fù)責(zé)request指紋和任務(wù)調(diào)度之類(lèi)高吞吐量的業(yè)務(wù),pika則負(fù)責(zé)request分發(fā)這種需要高存儲(chǔ)容量的業(yè)務(wù)。

六、結(jié)束語(yǔ)

以上對(duì)Redis和Pika兩種key-value存儲(chǔ)方案在分布式爬蟲(chóng)系統(tǒng)中的應(yīng)用做了描述,這兩種方案在實(shí)際生產(chǎn)環(huán)境中相輔相成,互相配合,才能支撐起一個(gè)功能健壯,性能強(qiáng)大的成熟的多任務(wù)分布式爬蟲(chóng)系統(tǒng)。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 應(yīng)用軟件
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    9435
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    394

    瀏覽量

    12258
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    AI Ceph 分布式存儲(chǔ)教程資料大模型學(xué)習(xí)資料2026

    的混合策略,存儲(chǔ)系統(tǒng)既能保證硬件故障(如硬盤(pán)損壞、節(jié)點(diǎn)宕機(jī))下的數(shù)據(jù)高可靠性,又能提供比傳統(tǒng)多副本更高的存儲(chǔ)利用率。 分布式環(huán)境下,
    發(fā)表于 05-01 17:35

    2022全新版!Java分布式架構(gòu)設(shè)計(jì)與開(kāi)發(fā)實(shí)戰(zhàn)(完結(jié))

    2022全新版!Java分布式架構(gòu)設(shè)計(jì)與開(kāi)發(fā)實(shí)戰(zhàn)(完結(jié)) 分庫(kù)分表實(shí)戰(zhàn):Java海量數(shù)據(jù)存儲(chǔ)架構(gòu)設(shè)計(jì) 現(xiàn)代互聯(lián)網(wǎng)應(yīng)用,隨著業(yè)務(wù)規(guī)模的指數(shù)級(jí)增長(zhǎng),
    發(fā)表于 03-30 15:20

    TiDB分布式數(shù)據(jù)庫(kù)運(yùn)維實(shí)踐

    TiDB 是 PingCAP 開(kāi)發(fā)的開(kāi)源分布式關(guān)系數(shù)據(jù)庫(kù),兼容 MySQL 5.7 協(xié)議,底層存儲(chǔ)基于 TiKV(分布式 KV 存儲(chǔ))和 RocksDB。它解決的核心問(wèn)題是:當(dāng)單機(jī)
    的頭像 發(fā)表于 03-04 15:44 ?350次閱讀

    分布式數(shù)據(jù)恢復(fù)—Ceph+TiDB數(shù)據(jù)恢復(fù)報(bào)告

    無(wú)法正常訪問(wèn)。目標(biāo)需要恢復(fù)的RBD卷存儲(chǔ)了一臺(tái)虛擬機(jī)的完整磁盤(pán)鏡像,該虛擬機(jī)內(nèi)部運(yùn)行TiDB分布式數(shù)據(jù)庫(kù)系統(tǒng),包含重要的業(yè)務(wù)數(shù)據(jù)。
    的頭像 發(fā)表于 02-03 17:22 ?277次閱讀
    <b class='flag-5'>分布式</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—Ceph+TiDB<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)報(bào)告

    PLC遠(yuǎn)程上下載分布式設(shè)備運(yùn)維系統(tǒng)的作用

    工業(yè)4.0與物聯(lián)網(wǎng)技術(shù)深度融合的背景下,分布式設(shè)備運(yùn)維系統(tǒng)正面臨設(shè)備分散、管理復(fù)雜、響應(yīng)滯后等核心挑戰(zhàn)。PLC遠(yuǎn)程上下載技術(shù)作為連接設(shè)備層與管理層的關(guān)鍵紐帶,通過(guò)打破物理空間限制、實(shí)現(xiàn)數(shù)據(jù)
    的頭像 發(fā)表于 11-14 16:51 ?1423次閱讀

    工業(yè)數(shù)采網(wǎng)關(guān)在分布式設(shè)備運(yùn)維管理的作用

    工業(yè)數(shù)采網(wǎng)關(guān)在分布式設(shè)備運(yùn)維管理扮演著 數(shù)據(jù)樞紐、智能分析核心與遠(yuǎn)程控制中樞 的多重角色,其作用貫穿設(shè)備監(jiān)控、故障預(yù)警、運(yùn)維調(diào)度及能效優(yōu)化全流程,是提升
    的頭像 發(fā)表于 09-19 10:53 ?865次閱讀
    工業(yè)數(shù)采網(wǎng)關(guān)在<b class='flag-5'>分布式</b>設(shè)備運(yùn)維管理<b class='flag-5'>中</b>的作用

    【節(jié)能學(xué)院】Acrel-1000DP分布式光伏監(jiān)控系統(tǒng)奉賢平高食品 4.4MW 分布式光伏應(yīng)用

    摘要:“雙碳”和新型電力系統(tǒng)建設(shè)背景下,分布式光伏接入比例不斷提高,對(duì)配電網(wǎng)電壓、調(diào)度運(yùn)行及調(diào)峰等環(huán)節(jié)造成強(qiáng)烈沖擊。本文設(shè)計(jì)包含平臺(tái)層、設(shè)備層二層架構(gòu)體系的分布式光伏管控平臺(tái),以及小
    的頭像 發(fā)表于 08-23 08:04 ?3692次閱讀
    【節(jié)能學(xué)院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏監(jiān)控<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>在</b>奉賢平高食品 4.4MW <b class='flag-5'>分布式</b>光伏<b class='flag-5'>中</b>應(yīng)用

    分布式光伏發(fā)電監(jiān)測(cè)系統(tǒng)技術(shù)方案

    分布式光伏發(fā)電監(jiān)測(cè)系統(tǒng)技術(shù)方案 柏峰【BF-GFQX】一、系統(tǒng)目標(biāo) :分布式光伏發(fā)電監(jiān)測(cè)系統(tǒng)旨在通過(guò)智能化的監(jiān)測(cè)手段,實(shí)現(xiàn)對(duì)
    的頭像 發(fā)表于 08-22 10:51 ?3512次閱讀
    <b class='flag-5'>分布式</b>光伏發(fā)電監(jiān)測(cè)<b class='flag-5'>系統(tǒng)</b>技術(shù)方案

    一鍵部署無(wú)損網(wǎng)絡(luò):EasyRoCE助力分布式存儲(chǔ)效能革命

    分布式存儲(chǔ)的性能瓶頸往往在于網(wǎng)絡(luò)。如何構(gòu)建一個(gè)高帶寬、超低時(shí)延、零丟包的無(wú)損網(wǎng)絡(luò),是釋放分布式存儲(chǔ)全部潛力、賦能企業(yè)關(guān)鍵業(yè)務(wù)(如實(shí)時(shí)數(shù)據(jù)庫(kù)、AI訓(xùn)練、高性能計(jì)算)的關(guān)鍵挑戰(zhàn)。
    的頭像 發(fā)表于 08-04 11:34 ?1856次閱讀
    一鍵部署無(wú)損網(wǎng)絡(luò):EasyRoCE助力<b class='flag-5'>分布式</b>存儲(chǔ)效能革命

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫(kù)文件丟失的數(shù)據(jù)恢復(fù)案例

    MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)操作系統(tǒng)為Windows Server的虛擬機(jī)上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 07-01 11:13 ?819次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    分布式光伏電站在高原走紅,背后靠什么“護(hù)航”

    監(jiān)控系統(tǒng)的技術(shù)特點(diǎn)和典型應(yīng)用案例,探討其高原地區(qū)分布式光伏電站的具體應(yīng)用策略,包括系統(tǒng)架構(gòu)、關(guān)鍵功能、優(yōu)勢(shì)
    的頭像 發(fā)表于 05-30 13:41 ?945次閱讀
    <b class='flag-5'>分布式</b>光伏電站在高原走紅,背后靠什么<b class='flag-5'>在</b>“護(hù)航”

    SQLSERVER數(shù)據(jù)庫(kù)是什么

    支持Linux和容器化環(huán)境運(yùn)行。 核心特點(diǎn) 關(guān)系數(shù)據(jù)庫(kù) 基于SQL(結(jié)構(gòu)化查詢語(yǔ)言)進(jìn)行數(shù)據(jù)操作,支持表、行、列等結(jié)構(gòu)化存儲(chǔ)。 提供A
    的頭像 發(fā)表于 05-26 09:19 ?1326次閱讀

    MySQL數(shù)據(jù)庫(kù)是什么

    開(kāi)發(fā)、企業(yè)應(yīng)用和大數(shù)據(jù)場(chǎng)景。以下是其核心特性和應(yīng)用場(chǎng)景的詳細(xì)說(shuō)明: 核心特性 關(guān)系數(shù)據(jù)庫(kù)模型 數(shù)據(jù)以 表(Table) 形式組織,表由行(記錄)和列(字段)構(gòu)成。 通過(guò) 主鍵、外鍵
    的頭像 發(fā)表于 05-23 09:18 ?1482次閱讀

    分布式光伏監(jiān)測(cè)難?并網(wǎng)分布式光伏系統(tǒng)光伏功率預(yù)測(cè)方案

    一、分布式光伏發(fā)電系統(tǒng) ? 安科瑞 鄒玉麗 ? 分布式光伏發(fā)電系統(tǒng)的基本設(shè)備包括光伏電池組件、光伏方陣支架、直流匯流箱、直流配電柜、并網(wǎng)逆變器、交流配電柜等設(shè)備,另外還有供電
    的頭像 發(fā)表于 05-20 10:17 ?1498次閱讀
    <b class='flag-5'>分布式</b>光伏監(jiān)測(cè)難?并網(wǎng)<b class='flag-5'>型</b><b class='flag-5'>分布式</b>光伏<b class='flag-5'>系統(tǒng)</b>光伏功率預(yù)測(cè)方案

    多通道電源管理芯片在分布式能源系統(tǒng)的優(yōu)化策略

    理、可靠性設(shè)計(jì)以及系統(tǒng)集成為主軸展開(kāi)分析,為分布式能源系統(tǒng)效能提升提供堅(jiān)實(shí)理論基石與創(chuàng)新實(shí)踐路徑。 關(guān)鍵詞: 多通道電源管理芯片;分布式能源
    的頭像 發(fā)表于 05-16 15:22 ?1121次閱讀
    剑河县| 建昌县| 金山区| 九寨沟县| 永宁县| 广灵县| 正蓝旗| 茌平县| 株洲县| 长海县| 钦州市| 营山县| 汉寿县| 平和县| 浪卡子县| 嵊泗县| 会昌县| 吉安市| 法库县| 宜兴市| 油尖旺区| 崇左市| 繁昌县| 南投市| 新昌县| 全椒县| 获嘉县| 马龙县| 开封市| 商洛市| 蒙城县| 中方县| 股票| 花垣县| 沙河市| 凯里市| 通榆县| 岢岚县| 耒阳市| 石河子市| 金川县|