国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

拓客軟件網(wǎng)站百度seo關(guān)鍵詞優(yōu)化

拓客軟件,網(wǎng)站百度seo關(guān)鍵詞優(yōu)化,網(wǎng)站域名注冊(cè)證書查詢,用vb做網(wǎng)站【騰訊云 TDSQL-C Serverless 產(chǎn)品體驗(yàn)】基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù) 文章目錄 【騰訊云 TDSQL-C Serverless 產(chǎn)品體驗(yàn)】基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù)前言出現(xiàn)的背景一、TDSQL-C數(shù)據(jù)庫是什么?二、TDSQL-C 的特點(diǎn)三、TDSQL-C的應(yīng)用場(chǎng)景四、基于TD…

【騰訊云 TDSQL-C Serverless 產(chǎn)品體驗(yàn)】基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù)

在這里插入圖片描述

文章目錄

  • 【騰訊云 TDSQL-C Serverless 產(chǎn)品體驗(yàn)】基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù)
    • 前言
    • 出現(xiàn)的背景
    • 一、TDSQL-C數(shù)據(jù)庫是什么?
    • 二、TDSQL-C 的特點(diǎn)
    • 三、TDSQL-C的應(yīng)用場(chǎng)景
    • 四、基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù)
      • 1、創(chuàng)建TDSQL-C Serverless數(shù)據(jù)庫
      • 2、創(chuàng)建所需數(shù)據(jù)庫并通過DMC進(jìn)行數(shù)據(jù)庫管理
      • 3、構(gòu)建QQ音樂歌單爬蟲
        • 3.1 初始化框架環(huán)境
        • 3.2 在spiders下創(chuàng)建分類爬蟲
        • 3.3 在spiders下創(chuàng)建歌單爬蟲
      • 4、進(jìn)行數(shù)據(jù)庫狀態(tài)觀察
    • 總結(jié)
    • 參考文獻(xiàn)

前言

最近有幸參與了騰訊云舉辦的 騰訊云 TDSQL-C 產(chǎn)品體驗(yàn)活動(dòng)。在這個(gè)過程中,通過了解 TDSQL-C 的產(chǎn)品和實(shí)踐,讓我受益非淺,原來數(shù)據(jù)庫還能這么玩! 也讓我真正體會(huì)到了降本增效這個(gè)詞的意義。

在看到活動(dòng)的介紹和微信群的講解后,我馬不停蹄地開始了自己摸索。首先是跟著群里小助手發(fā)的實(shí)驗(yàn)手冊(cè),體驗(yàn)了一下整個(gè)產(chǎn)品的業(yè)務(wù)流程。

隨后又查看官方的產(chǎn)品文檔,文檔非常的簡(jiǎn)潔明了,然后根據(jù)這些資料開始了我的第一個(gè) TDSQL-C 程序,基于 TDSQL-C 數(shù)據(jù)庫構(gòu)建了一個(gè)基于 Vue 的問卷調(diào)查系統(tǒng),親身體驗(yàn)了 TDSQL-C 帶來的高性能、彈性可靠服務(wù),整個(gè)過程十分絲滑。

下面就來整理,分享一下我的操作和感悟,希望能夠幫助到其他同學(xué)。

出現(xiàn)的背景

傳統(tǒng)數(shù)據(jù)庫為什么被云數(shù)據(jù)庫替代?

關(guān)于 TDSQL-C 的出現(xiàn),我覺得需要先從云數(shù)據(jù)庫開始了解,傳統(tǒng)的本地?cái)?shù)據(jù)庫部署需要企業(yè)自己購買、維護(hù)硬件設(shè)備和管理數(shù)據(jù)庫軟件,這對(duì)于資源有限的中小企業(yè)來說可能是一項(xiàng)昂貴和繁瑣的任務(wù)。同時(shí),傳統(tǒng)數(shù)據(jù)庫在面對(duì)大規(guī)模的數(shù)據(jù)處理和高并發(fā)訪問時(shí)可能會(huì)遇到性能瓶頸和可用性問題。云數(shù)據(jù)庫的出現(xiàn)解決了這些問題。它將數(shù)據(jù)庫部署在云平臺(tái)上,并提供彈性的計(jì)算和存儲(chǔ)資源,使用戶能夠根據(jù)實(shí)際需求按需擴(kuò)展數(shù)據(jù)庫的容量和性能。云數(shù)據(jù)庫還提供高可用性和可靠性,通過數(shù)據(jù)備份、冗余存儲(chǔ)和容災(zāi)機(jī)制來保護(hù)數(shù)據(jù)的安全和可恢復(fù)性。此外,云數(shù)據(jù)庫還提供了便捷的管理和監(jiān)控工具,簡(jiǎn)化了數(shù)據(jù)庫的操作和維護(hù)過程。

serverless數(shù)據(jù)庫帶來了什么好處?

而云 Serverless 數(shù)據(jù)庫的出現(xiàn)則是為了進(jìn)一步提供更高的靈活性和經(jīng)濟(jì)效益。傳統(tǒng)的數(shù)據(jù)庫需要預(yù)先配置和維護(hù)一定數(shù)量的計(jì)算資源,而這些資源在閑置時(shí)仍然需要付費(fèi)。而 Serverless 數(shù)據(jù)庫采用按需付費(fèi)的模式,它根據(jù)實(shí)際的計(jì)算和存儲(chǔ)資源使用量來計(jì)費(fèi),無需預(yù)先配置資源。這使得用戶可以根據(jù)實(shí)際需求動(dòng)態(tài)地?cái)U(kuò)展和縮減數(shù)據(jù)庫的資源,避免了資源浪費(fèi)和額外的成本支出。Serverless 數(shù)據(jù)庫還可以自動(dòng)管理和優(yōu)化資源,用戶只需專注于應(yīng)用開發(fā),而無需關(guān)注底層基礎(chǔ)設(shè)施的管理。

TDSQL-C 是騰訊云自研的新一代云原生關(guān)系型數(shù)據(jù)庫。融合了傳統(tǒng)數(shù)據(jù)庫、云計(jì)算與新硬件技術(shù)的優(yōu)勢(shì),100%兼容 MySQL,為用戶提供極致彈性、高性能、高可用、高可靠、安全的數(shù)據(jù)庫服務(wù)。實(shí)現(xiàn)超百萬 QPS 的高吞吐、PB 級(jí)海量分布式智能存儲(chǔ)、Serverless 秒級(jí)伸縮,助力企業(yè)加速完成數(shù)字化轉(zhuǎn)型。

Serverless 服務(wù)是騰訊云自研的新一代云原生關(guān)系型數(shù)據(jù)庫 TDSQL-C MySQL 版的無服務(wù)器架構(gòu)版,是全 Serverless 架構(gòu)的云原生數(shù)據(jù)庫。Serverless 服務(wù)支持按實(shí)際計(jì)算和存儲(chǔ)資源使用量收取費(fèi)用,不用不付費(fèi),將騰訊云云原生技術(shù)普惠用戶。

總的來說,云數(shù)據(jù)庫云 Serverless 數(shù)據(jù)庫的產(chǎn)生是為了滿足不同規(guī)模和需求的用戶對(duì)于數(shù)據(jù)存儲(chǔ)和處理的需求,并提供更靈活、可擴(kuò)展和經(jīng)濟(jì)高效的解決方案。

一、TDSQL-C數(shù)據(jù)庫是什么?

TDSQL-C MySQL 版基于 Cloud Native 設(shè)計(jì)理念,既融合了商業(yè)數(shù)據(jù)庫穩(wěn)定可靠、高性能、可擴(kuò)展的特征,又具有開源云數(shù)據(jù)庫簡(jiǎn)單開放、高效迭代的優(yōu)勢(shì)。

我們來理解一下這段描述, Cloud Native 設(shè)計(jì)理念是什么?

Cloud Native 設(shè)計(jì)理念是一種在云計(jì)算環(huán)境下進(jìn)行應(yīng)用開發(fā)和部署的方法論和思維方式,目標(biāo)是將應(yīng)用程序和基礎(chǔ)設(shè)施解耦,使得應(yīng)用程序能夠更好地適應(yīng)云環(huán)境的動(dòng)態(tài)性和彈性,并提供更好的可伸縮性、可靠性和可管理性。它能夠幫助開發(fā)者更快速、高效地構(gòu)建和交付應(yīng)用程序,并更好地應(yīng)對(duì)日益復(fù)雜和變化的業(yè)務(wù)需求。

基于這個(gè)設(shè)計(jì)方式,所以 TDSQL-C MySQL 版可以為為用戶提供具備超高彈性、高性能、海量存儲(chǔ)、安全可靠的數(shù)據(jù)庫服務(wù),以可幫助企業(yè)輕松應(yīng)對(duì)諸如商品訂單等高頻交易、伴隨流量洪峰的快速增長(zhǎng)業(yè)務(wù)、游戲業(yè)務(wù)、歷史訂單等大數(shù)據(jù)量低頻查詢、金融數(shù)據(jù)安全相關(guān)、開發(fā)測(cè)試、成本敏感等的業(yè)務(wù)場(chǎng)景。

二、TDSQL-C 的特點(diǎn)

我找到了一些關(guān)于我們?cè)谶x擇底層組件時(shí)候需要關(guān)注的一些特點(diǎn),憑什么 TDSQL-C 值得我們選擇呢?

  1. 完全兼容

TDSQL-C MySQL 版將開源數(shù)據(jù)庫的計(jì)算和存儲(chǔ)分離,存儲(chǔ)構(gòu)建在騰訊云分布式云存儲(chǔ)服務(wù)之上,計(jì)算層全面兼容開源數(shù)據(jù)庫引擎 MySQL 5.7、8.0,業(yè)務(wù)無需改造即可平滑遷移。

  1. 超高性能

單節(jié)點(diǎn)百萬 QPS 的超高性能,可以滿足高并發(fā)高性能的場(chǎng)景,保證關(guān)鍵業(yè)務(wù)的連續(xù)性,并可進(jìn)一步提供讀寫分離以及讀寫擴(kuò)展性。

  1. 海量存儲(chǔ)

最高支持 PB 級(jí)的海量存儲(chǔ),為用戶免去面對(duì)海量的數(shù)據(jù)時(shí)頻繁分庫分表的繁瑣操作,同時(shí)支持?jǐn)?shù)據(jù)壓縮,在海量數(shù)據(jù)檢索和寫入性能上進(jìn)行了大量?jī)?yōu)化。

  1. 秒級(jí)故障恢復(fù)

計(jì)算節(jié)點(diǎn)實(shí)現(xiàn)了無狀態(tài),支持秒級(jí)的故障切換和恢復(fù),即便計(jì)算節(jié)點(diǎn)所在的物理機(jī)宕機(jī)也可以在一分鐘之內(nèi)恢復(fù)。

  1. 數(shù)據(jù)高可靠

集群支持安全組和 VPC 網(wǎng)絡(luò)隔離。自動(dòng)維護(hù)數(shù)據(jù)和備份的多個(gè)副本,保障數(shù)據(jù)安全可靠,可靠性達(dá)99.9999999%。

  1. 彈性擴(kuò)展

計(jì)算節(jié)點(diǎn)可根據(jù)業(yè)務(wù)需要快速升降配,秒級(jí)完成擴(kuò)容,結(jié)合彈性存儲(chǔ),實(shí)現(xiàn)計(jì)算資源的成本最優(yōu)。

  1. 快速只讀擴(kuò)展

計(jì)算節(jié)點(diǎn)可根據(jù)業(yè)務(wù)需要快速添加只讀節(jié)點(diǎn),一個(gè)集群支持秒級(jí)添加或刪除1個(gè) - 15個(gè)只讀節(jié)點(diǎn),快速應(yīng)對(duì)業(yè)務(wù)峰值和變化場(chǎng)景。

  1. 快照備份回檔

基于數(shù)據(jù)多版本的秒級(jí)快照備份對(duì)用戶的數(shù)據(jù)進(jìn)行連續(xù)備份保護(hù),免去主從架構(gòu)備份回檔數(shù)據(jù)的同步和搬遷,最高以GB/秒的速度極速并行回檔,保證業(yè)務(wù)數(shù)據(jù)迅速恢復(fù)。

  1. Serverless 架構(gòu)

Serverless 是騰訊自研云原生數(shù)據(jù)庫 TDSQL-C MySQL 版的無服務(wù)器架構(gòu)版,自動(dòng)擴(kuò)縮容,僅按照實(shí)際使用量計(jì)費(fèi),不用不計(jì)費(fèi),輕松應(yīng)對(duì)業(yè)務(wù)數(shù)據(jù)量動(dòng)態(tài)變化和持續(xù)增長(zhǎng)。

三、TDSQL-C的應(yīng)用場(chǎng)景

TDSQL-C MySQL版廣泛適用于多個(gè)行業(yè)和應(yīng)用場(chǎng)景,具備以下條件和優(yōu)勢(shì):

  1. 互聯(lián)網(wǎng)移動(dòng)應(yīng)用:

    • 提供商用數(shù)據(jù)庫級(jí)別的高性能和高可靠性,保證業(yè)務(wù)的平穩(wěn)高效運(yùn)行。
    • 解決了傳統(tǒng)主備架構(gòu)在彈性能力、同步效率和主備切換時(shí)間等方面的問題,保證系統(tǒng)的高可用性和業(yè)務(wù)的連續(xù)性。
    • 全面兼容開源數(shù)據(jù)庫MySQL,無需更改現(xiàn)有業(yè)務(wù)應(yīng)用即可接入TDSQL-C MySQL版,助力企業(yè)平滑上云。
  2. 游戲應(yīng)用:

    • 提供敏捷靈活的彈性擴(kuò)展,根據(jù)業(yè)務(wù)需求快速升降級(jí)和擴(kuò)容,應(yīng)對(duì)業(yè)務(wù)峰值。
    • 支持PB級(jí)的海量存儲(chǔ),按存儲(chǔ)量計(jì)費(fèi),自動(dòng)擴(kuò)容,減少了合區(qū)合服的繁瑣操作,實(shí)現(xiàn)資源和成本的最優(yōu)配置。
    • 提供秒級(jí)的快照備份和快速回檔能力,對(duì)用戶數(shù)據(jù)進(jìn)行連續(xù)保護(hù)。
  3. 電商、直播、教育行業(yè):

    • 支持秒級(jí)的升配,最多可擴(kuò)展至15個(gè)節(jié)點(diǎn),快速增加QPS的能力,解決了傳統(tǒng)數(shù)據(jù)庫升配時(shí)間隨存儲(chǔ)量和宿主機(jī)資源增加而上升的問題。
    • 提供優(yōu)化的IOPS能力,保證在高并發(fā)狀態(tài)下的出色數(shù)據(jù)寫入能力,適應(yīng)業(yè)務(wù)峰值需求。
    • 通過物理復(fù)制方式連接讀寫節(jié)點(diǎn)和只讀節(jié)點(diǎn),大大降低了只讀節(jié)點(diǎn)與讀寫節(jié)點(diǎn)之間的延遲,滿足電商場(chǎng)景中買家和賣家數(shù)據(jù)的一致性讀取需求。
  4. 金融、保險(xiǎn)企業(yè):

    • 采用多可用區(qū)架構(gòu),在多個(gè)可用區(qū)備份數(shù)據(jù),提供容災(zāi)和備份功能。
    • 提供全方位的安全保障措施,如白名單、VPC網(wǎng)絡(luò)等,保護(hù)數(shù)據(jù)庫數(shù)據(jù)的訪問、存儲(chǔ)和管理。
    • 通過共享分布式存儲(chǔ)設(shè)計(jì),徹底解決了主從異步復(fù)制帶來的備庫數(shù)據(jù)非強(qiáng)一致性問題。

這些條件和優(yōu)勢(shì)使TDSQL-C MySQL版適用于各種業(yè)務(wù)場(chǎng)景,包括高頻交易、快速增長(zhǎng)業(yè)務(wù)、大數(shù)據(jù)量低頻查詢、金融數(shù)據(jù)安全、開發(fā)測(cè)試和成本敏感場(chǎng)景。

四、基于TDSQL-C 存儲(chǔ)爬取的QQ音樂歌單數(shù)據(jù)

我這次準(zhǔn)備使用 TDSQL-C Serverless MySQL 快速搭建一個(gè)爬蟲應(yīng)用,這里我們打算使用 Python來實(shí)現(xiàn),來體驗(yàn) 云原生數(shù)據(jù)庫 TDSQL-C 給我們帶來的優(yōu)勢(shì)。

如下為最項(xiàng)目代碼如下:
在這里插入圖片描述

讓我們開始構(gòu)建吧!!!

1、創(chuàng)建TDSQL-C Serverless數(shù)據(jù)庫

在這里插入圖片描述

一直下一步購買后就能在TDSQL-C集群列表中看見

在這里插入圖片描述

  • 為了方便后續(xù)我們開發(fā)程序,我們需要先將數(shù)據(jù)庫的外網(wǎng)訪問打開

在這里插入圖片描述

2、創(chuàng)建所需數(shù)據(jù)庫并通過DMC進(jìn)行數(shù)據(jù)庫管理

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 通過 DMC 創(chuàng)建數(shù)據(jù)表
CREATE TABLE `cate` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(255) DEFAULT NULL,`type` varchar(255) DEFAULT NULL COMMENT 'kg | kw | wyy | qq',`cate` varchar(255) DEFAULT NULL COMMENT '分類',`primary_key` bigint(255) DEFAULT NULL COMMENT '平臺(tái)主鍵',`create_date` datetime DEFAULT NULL,`update_date` datetime DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,UNIQUE KEY `u` (`type`,`primary_key`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;CREATE TABLE `playlist` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`title` varchar(255) DEFAULT NULL COMMENT '標(biāo)題',`desc` longtext COMMENT '描述',`cate` varchar(255) DEFAULT NULL COMMENT '類型',`cate_id` varchar(255) DEFAULT NULL,`is_own` tinyint(255) DEFAULT '1' COMMENT '1 第三方創(chuàng)建的  2自己創(chuàng)建的',`primary_key` varchar(255) DEFAULT NULL COMMENT '第三方歌單主鍵',`key_type` char(10) DEFAULT NULL COMMENT 'qq | kg | wyy | kw ',`thumb_img` longtext COMMENT '封面',`tag` text COMMENT '標(biāo)簽 ,',`tag_id` text COMMENT '標(biāo)簽id ,拆分',`author` varchar(255) DEFAULT NULL COMMENT '作者',`author_id` bigint(255) DEFAULT NULL COMMENT '作者id',`collect_num` bigint(20) DEFAULT '0' COMMENT '收藏?cái)?shù)量',`share_num` bigint(20) DEFAULT '0' COMMENT '分享數(shù)量',`comment_num` bigint(255) DEFAULT '0' COMMENT '評(píng)論數(shù)量',`play_num` bigint(20) DEFAULT '0' COMMENT '歌單播放次數(shù)',`song_num` bigint(20) DEFAULT '0' COMMENT '歌單歌曲數(shù)量',`platform_create_date` datetime DEFAULT NULL COMMENT '第三方歌單創(chuàng)建時(shí)間',`create_date` datetime DEFAULT NULL,`update_date` datetime DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

在這里插入圖片描述

一個(gè)是分類表,用于存儲(chǔ)歌單的分類信息,然后通過分類去獲取歌單列表
另一個(gè)是歌單表,用于存儲(chǔ)爬取的歌單數(shù)據(jù)

3、構(gòu)建QQ音樂歌單爬蟲

3.1 初始化框架環(huán)境

這里我采用了 feapder 這個(gè)輕量級(jí)框架

  • 安裝 feapder 爬蟲框架
pip3 install feapder[all]
  • 創(chuàng)建爬蟲項(xiàng)目
feapder create -p QQSpider
  • setting.py 中配置TDSQL-C數(shù)據(jù)庫以及 redis 信息
# # MYSQL
MYSQL_IP = "gz-xxxxxx"
MYSQL_PORT = 28671
MYSQL_DB = "questionnaire"
MYSQL_USER_NAME = "root"
MYSQL_USER_PASS = "123456"# # REDIS
# # ip:port 多個(gè)可寫為列表或者逗號(hào)隔開 如 ip1:port1,ip2:port2 或 ["ip1:port1", "ip2:port2"]
REDISDB_IP_PORTS = "x"
REDISDB_USER_PASS = "x"
REDISDB_DB = 7
  • 安裝依賴 requirements.txt
feapder~=1.7.7
pycryptodome
Flask~=2.2.2
pillow~=9.2.0
requests-toolbelt
requests~=2.27.1
apscheduler~=3.9.1
js2py~=0.71
urllib3~=1.26.11
pytz~=2022.1
gevent~=21.12.0
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

為了方便可以把這個(gè) shell 寫在項(xiàng)目的根目錄

3.2 在spiders下創(chuàng)建分類爬蟲

  • category.py
import feapder
import urllib.parsefrom feapder import Requestfrom items.cateItem import CateItemclass CategorySpider(feapder.Spider):commonParams = {'g_tk': 1124214810,'loginUin': '0','hostUin': 0,'inCharset': 'utf8','outCharset': 'utf-8','notice': 0,'platform': 'yqq.json','needNewCode': 0,}apiHeader = {'referer': 'https://c.y.qq.com/','host': 'c.y.qq.com'}domain = 'https://c.y.qq.com'def start_requests(self):url = "/splcloud/fcgi-bin/fcg_get_diss_tag_conf.fcg?" + self.getParams({'format': 'json','outCharset': 'utf-8',})yield self.request(url, method="GET")def request(self, path, **kwargs):req = Request(self.domain + path, **kwargs)return self.downloadMidware(req)def downloadMidware(self, request):if request.url.startswith('https://y.qq.com/n/ryqq/playlist'):return requestrequest.headers = self.apiHeaderreturn requestdef getParams(self, params):data = paramsdata.update(self.commonParams)return urllib.parse.urlencode(data)def validate(self, request, response):jsonData = response.jsonif jsonData['code'] != 0:raise Exception(jsonData['message'])return Truedef parse(self, request, response):jsonData = response.jsonfor cate in jsonData['data']['categories']:cateName = cate['categoryGroupName']for item in cate['items']:cateItem = CateItem()cateItem.primary_key = item['categoryId']cateItem.title = item['categoryName']cateItem.type = "qq"cateItem.cate = cateNameyield cateItemif __name__ == "__main__":CategorySpider(redis_key="qq_category:spider").start()

這里我們還要配置一下 ORM,在itmes目錄下創(chuàng)建 cateItem,用于映射數(shù)據(jù)庫表,方便直接入庫,不用編寫原生SQL

  • items/cateItem.py
from feapder import Item
from feapder.utils import toolsclass CateItem(Item):"""This class was generated by feapder.command: feapder create -i spider_data."""__unique_key__ = ["title", "cate", "type", 'primary_key']  # 指定去重的key為 title、url,最后的指紋為title與url值聯(lián)合計(jì)算的md5def __init__(self, *args, **kwargs):# self.id = Nonesuper().__init__(**kwargs)self.table_name = "cate"self.title = Noneself.cate = Noneself.primary_key = Noneself.type = Noneself.create_date = Noneself.update_date = Nonedef pre_to_db(self):"""入庫前的處理"""self.create_date = tools.format_time("剛剛")self.update_date = tools.format_time("剛剛")
  • 運(yùn)行測(cè)試爬取分類數(shù)據(jù)

在這里插入圖片描述
可以看到數(shù)據(jù)已經(jīng)全部入庫了
在這里插入圖片描述

3.3 在spiders下創(chuàng)建歌單爬蟲

同理,我們先建立一下歌單表的 ORM

  • items/playlistItem.py
from feapder import Item
from feapder.utils import toolsclass PlaylistItem(Item):def __init__(self, *args, **kwargs):# self.id = Nonesuper().__init__(**kwargs)self.table_name = "playlist"self.title = Noneself.desc = Noneself.primary_key = Noneself.cate = Noneself.cate_id = Noneself.key_type = Noneself.thumb_img = Noneself.tag = Noneself.tag_id = Noneself.author = Noneself.author_id = Noneself.collect_num = Noneself.share_num = Noneself.comment_num = Noneself.play_num = Noneself.song_num = Noneself.platform_create_date = Noneself.create_date = Noneself.update_date = Nonedef pre_to_db(self):"""入庫前的處理"""self.create_date = tools.format_time("剛剛")self.update_date = tools.format_time("剛剛")

然后創(chuàng)建爬蟲

  • spiders/playlist.py
import urllib.parseimport feapder
from feapder import Request
from feapder.db.mysqldb import MysqlDBfrom items.playlistItem import PlaylistItemclass PlayListSpider(feapder.Spider):commonParams = {'g_tk': 1124214810,'loginUin': '0','hostUin': 0,'inCharset': 'utf8','outCharset': 'utf-8','notice': 0,'platform': 'yqq.json','needNewCode': 0,}apiHeader = {'referer': 'https://c.y.qq.com/','host': 'c.y.qq.com'}domain = 'https://c.y.qq.com'def start_requests(self):db = MysqlDB()cateList = db.find(sql="select * from cate where type = 'qq'", to_json=True)for cate in cateList:yield self.getPlaylistByCateId(cate['primary_key'], cate['title'])def getPlaylistByCateId(self, cateId, cateTitle, page=0, limit=50, sortId=5):sin = +page * +limitein = +limit * (+page + 1) - 1params = self.getParams({'format': 'json','outCharset': 'utf-8','picmid': 1,'categoryId': cateId,'sortId': sortId,'sin': sin,'ein': ein,})url = "/splcloud/fcgi-bin/fcg_get_diss_by_tag.fcg?" + paramsreturn self.request(url, method="GET", page=page, limit=limit, cateId=cateId, cateTitle=cateTitle)def getParams(self, params):data = paramsdata.update(self.commonParams)return urllib.parse.urlencode(data)# 構(gòu)造請(qǐng)求def request(self, path, **kwargs):req = Request(self.domain + path, **kwargs)return self.downloadMidware(req)# 構(gòu)造請(qǐng)求頭def downloadMidware(self, request):if request.url.startswith('https://y.qq.com/n/ryqq/playlist'):return requestrequest.headers = self.apiHeaderreturn requestdef validate(self, request, response):jsonData = response.jsonif jsonData['code'] != 0:raise Exception(jsonData['message'])return Truedef parse(self, request, response):jsonData = response.jsonplaylist = jsonData['data']['list']for item in playlist:playlist = PlaylistItem()playlist.title = item.get('dissname')playlist.thumb_img = item.get('imgurl')playlist.create_date = item.get('createtime')playlist.primary_key = item.get('dissid')playlist.desc = item.get('introduction')playlist.play_num = item.get('listennum')playlist.cate = request.cateTitleyield playlist# 分頁處理if len(playlist) != 0:yield self.getPlaylistByCateId(request.cateId, request.cateTitle, request.page + 1, request.limit)# 通過分類id獲取歌單列表if __name__ == "__main__":PlayListSpider(redis_key="qq_playlist:spider").start()

運(yùn)行爬蟲后可以看到數(shù)據(jù)庫的吞吐率很高,一會(huì)就有幾千條數(shù)據(jù)了

在這里插入圖片描述

在這里插入圖片描述

4、進(jìn)行數(shù)據(jù)庫狀態(tài)觀察

在爬取的過程中,我一直擔(dān)心數(shù)據(jù)庫會(huì)成為應(yīng)用的瓶頸,沒想到最低配的 TDSQL-C 性能也是異常的強(qiáng)悍,期間通過自帶的監(jiān)控告警,也是很方便觀察到秒級(jí)性能波動(dòng)

在這里插入圖片描述
然后 TDSQL-C 旁邊還有個(gè) 數(shù)據(jù)庫智能管家,這是一個(gè)非常利于我們?cè)诰€運(yùn)維的工具,他可以看到當(dāng)前實(shí)例的:異常、性能趨勢(shì)、實(shí)時(shí)會(huì)話、慢SQL分析、SQL優(yōu)化、審計(jì)日志等等

在這里插入圖片描述
在這里插入圖片描述
他還可以為我們根據(jù)時(shí)間區(qū)間創(chuàng)建健康報(bào)告,讓我們清晰地了解到數(shù)據(jù)庫實(shí)例的健康狀態(tài),針對(duì)重要項(xiàng)目,我們可以設(shè)置定期報(bào)告,然后通過郵箱接收?qǐng)?bào)告內(nèi)容,從而減輕我們的運(yùn)維負(fù)擔(dān)

在這里插入圖片描述

總結(jié)

本次案例主要讓大家對(duì)云原生數(shù)據(jù)庫 TDSQL-C Serverless 有一個(gè)基本的認(rèn)識(shí),可以看到 TDSQL-C Serverless 與平時(shí)所使用的 Sql 語法差不多一致,基本上沒有什么學(xué)習(xí)成本,開箱即用,可以快速上手,真正的無縫接入, 異常的絲滑!!

針對(duì)本次體驗(yàn),我也總結(jié)了一些優(yōu)點(diǎn)與遇到的一些問題,希望分享給大家,能給大家?guī)硪恍┘夹g(shù)選型建議:

  • 其中優(yōu)點(diǎn)有:
  1. 其中在 TDSQL-C 的特點(diǎn)中:高性能、海量存儲(chǔ)完全兼容Mysql、快照備份等都能夠非常直接感受到,確實(shí)如描述所說,屬于名副其實(shí)了,這個(gè)我也不過多贅述。
  2. 通過對(duì)傳統(tǒng)數(shù)據(jù)庫的了解,實(shí)際上對(duì)于采用 ServerLess 架構(gòu)的數(shù)據(jù)庫,是對(duì)中小公司的更好選擇,通過靈活的計(jì)費(fèi)模式,按量付費(fèi)不需要承擔(dān)過多的人力成本、運(yùn)維成本就可以獲得一個(gè)高可用、高性能基礎(chǔ)設(shè)施,從而實(shí)現(xiàn)降本增效
  3. TDSQL-C 還可以非常簡(jiǎn)單面對(duì)各種大流量場(chǎng)景,其中有一個(gè)非常簡(jiǎn)單易用的功能就輸數(shù)據(jù)庫的流量負(fù)載均衡,通過設(shè)置 RO 組只讀實(shí)例的集合,然后通過權(quán)重進(jìn)行流量負(fù)載均衡,相應(yīng)的讀請(qǐng)求按一定規(guī)則發(fā)送到只讀實(shí)例,能夠顯著提高數(shù)據(jù)庫的讀負(fù)載能力。
  4. 在產(chǎn)品上比較完備,感覺很細(xì)節(jié),在提供數(shù)據(jù)庫的同時(shí)也提供了數(shù)據(jù)庫的可視化管理,不用再去下載數(shù)據(jù)庫管理客戶端就可以實(shí)現(xiàn)庫表級(jí)操作、實(shí)時(shí)監(jiān)控、實(shí)例會(huì)話管理、SQL 窗口等操作;同時(shí)也有智能監(jiān)控、健康管理分析等輔助工具,非常適合我這種懶人。
  • 遇到的一些小問題:
  1. 將這個(gè)程序部署到騰訊云服務(wù)器的時(shí)候,發(fā)現(xiàn)使用內(nèi)網(wǎng)地址連接不了這個(gè) TDSQL-C 數(shù)據(jù)庫,但是公網(wǎng)沒問題,可是想著內(nèi)網(wǎng)可以有更高的效率,于是一直排查,最后也是從文檔上發(fā)現(xiàn),原來輕量型不能直接通過內(nèi)網(wǎng)地址連接 TDSQL-C MySQL 版進(jìn)行訪問,使用 云聯(lián)網(wǎng) 互通

在這里插入圖片描述

  1. 期間在對(duì)數(shù)據(jù)庫進(jìn)行壓力測(cè)試的時(shí)候,出現(xiàn) Too many connections,后續(xù)排查發(fā)現(xiàn)是因?yàn)閿?shù)據(jù)庫默認(rèn)連接數(shù)是 80

在這里插入圖片描述
后面將這個(gè)默認(rèn)值改大之后就再也沒出現(xiàn)過了:
在這里插入圖片描述

參考文獻(xiàn)

騰訊云TDSQL-C官方文檔
feapder框架

http://m.aloenet.com.cn/news/43254.html

相關(guān)文章:

  • 阿里云服務(wù)器上的網(wǎng)站怎么做修改四川省人民政府官網(wǎng)
  • 北京公司網(wǎng)站建設(shè)價(jià)格seo營(yíng)銷排名
  • 手機(jī)網(wǎng)站底部電話軟文營(yíng)銷的寫作技巧有哪些
  • jq特效網(wǎng)站模板全網(wǎng)最好的推廣平臺(tái)
  • 怎么做自已的網(wǎng)站太原seo網(wǎng)站排名
  • asp做網(wǎng)站的優(yōu)勢(shì)是什么新品牌推廣方案
  • 鄭州網(wǎng)站建設(shè)特色得物app的網(wǎng)絡(luò)營(yíng)銷分析論文
  • 桂林市內(nèi)旅游必去景點(diǎn)整站seo外包
  • 深圳做網(wǎng)站信科品牌推廣內(nèi)容
  • ppt模板免費(fèi)下載網(wǎng)站不需要登錄torrentkitty磁力官網(wǎng)
  • 快速做網(wǎng)站的軟件免費(fèi)網(wǎng)絡(luò)空間搜索引擎
  • 360客服做網(wǎng)站電話網(wǎng)絡(luò)工程師培訓(xùn)班要多少錢
  • 在線做章網(wǎng)站aso蘋果關(guān)鍵詞優(yōu)化
  • 哪家建設(shè)網(wǎng)站長(zhǎng)春網(wǎng)站建設(shè)平臺(tái)
  • 如何自己做攝影網(wǎng)站萬能搜索引擎網(wǎng)站
  • 微店網(wǎng)站鏈接怎么做seo外包是什么意思
  • 手工做衣服網(wǎng)站網(wǎng)站引流推廣怎么做
  • 手機(jī)h5制作小程序百度手機(jī)seo軟件
  • WordPress自定義計(jì)算小紅書seo排名
  • 重慶品牌網(wǎng)站建設(shè)電商自學(xué)網(wǎng)
  • wap手機(jī)網(wǎng)站源碼企業(yè)網(wǎng)站的作用有哪些
  • wordpress 更新很慢微信公眾號(hào)seo
  • 西安做的好的網(wǎng)站公司南昌seo全網(wǎng)營(yíng)銷
  • 怎么創(chuàng)建網(wǎng)站 免費(fèi)的官網(wǎng)設(shè)計(jì)公司
  • 新企業(yè)在哪里做網(wǎng)站好關(guān)鍵詞推廣優(yōu)化排名品牌
  • wordpress文章頁面菜單優(yōu)化大師win7
  • 女女做的網(wǎng)站目前最新推廣平臺(tái)
  • 南通網(wǎng)站開發(fā)招聘按效果付費(fèi)的網(wǎng)絡(luò)推廣方式
  • html5手機(jī)網(wǎng)站開發(fā)區(qū)別百度快照推廣
  • 建設(shè)網(wǎng)站必備條件長(zhǎng)春網(wǎng)站建設(shè)推廣