看板 Python 關於我們 聯絡資訊
大家好,我是 FinMind 創始人 https://github.com/FinMind/FinMind 目前預計在3/21,推出線上課程 課程內容是關於 Rabbitmq、Celery 分散式架構 MySQL 資料庫 Docker Swarm Linode 雲端(一個月最低只要 5 美金,就有一台雲端機器) Grafana 監控系統 以上內容,基本上就是 FinMind 專案目前一部分的架構, 相信不少公司也有用到相關技術 在 3/7 以前購買,有機會獲得,在天瓏與 momo 都是熱門的書籍 Python 大數據專案 X 工程 X 產品 資料工程師的升級攻略 本書是我濃縮工作 3 年與開發 FinMind 的技術分享 最後本課程還會分享 20~30 隻的台股金融資料爬蟲程式 除了做開源專案,也將一路上的所學,開源出來分享給大家 以下是課程連結,折扣碼 sam200 https://mastertalks.tw/products/python-dfa?ref=sam 如果對於 Data 工作,有其他想了解的,也歡迎寄信給我 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.64.4 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1646540483.A.D6B.html
ToastBen: 感謝分享 03/07 08:10
TuCH: 已買 03/07 09:57
tamacugi: 我也買了,看起來很不錯,期待! 03/09 14:31
ggirls: 可以問20隻爬蟲是哪幾個網站嗎? 03/10 00:54
f496328mm: 證交所、櫃買中心、期交所 03/12 00:42
tamacugi: 課程中有機會可以教一下怎麼爬各券商分點嗎? 感謝! 03/12 13:32
課程中會講解,如何破解驗證碼,如何破解 google recaptcha 並以券商分點為範例
tamacugi: 太棒了 03/12 20:06
cory501: 已買 03/13 00:17
alvinlin: 感覺大家只對爬蟲有興趣但其他的沒有。 03/13 01:44
lycantrope: 爬蟲(X 股票爬蟲(O 03/19 14:29
但以上技能,rabbitmq、flower、分散式、Docker、mysql、grafana 等等 對爬蟲都有非常大的加分, 至少我開發 FinMind 的經驗,以上工具都是陸陸續續使用到 我一開始也是單機版本,最後不斷拓展到現在 ※ 編輯: f496328mm (114.44.18.140 臺灣), 03/20/2022 03:26:08
karta0910489: 想請問會包含高流量、快速的更新資料或是目前FindMi 03/20 04:18
karta0910489: nd針對速率做的db設計跟優化(cache, etc)嗎 03/20 04:18
1. 更新資料方面,因為是走分散式,所以效能不是問題,那麼既然效能不是問題, 就用 scheduler 持續做爬蟲,資料就會更新了 2. 高流量部分,我的書跟課程,都有沾到邊,但並沒有"專注"介紹 api 高流量場景, 畢竟書跟課程名稱,都不是以高流量 api 作為出發點 我在這先簡短回答 書有講到 docker swarm、fastapi、traefik 做 api 課程講到 grafana、promethus 做監控, 那我如何結合這些技術做高流量呢?? 下圖是目前 FinMind 用 "grafana" 對於 api 流量的監控 https://i.imgur.com/uUO4r06.png
可以看到,圖1 & 圖2,一分鐘最多 3,500 次 request 流量統計與 DNS,是依靠圖 3,"traefik" 但我認為還沒到高流量,不過足以應付目前流量 畢竟需求沒到,開太多機器做 loading balance,只是噴更多 $$$ 而已 關於這部分的架構, FinMind 是以 docker swarm 為主要架構,因為這內建 loading balance 只要多開機器,就可實現負載平衡, api 是用 fastapi 框架 資料庫是時序資料庫,dolphindb 但時序資料庫水有點深,這部分還在安排進度, 未來可能會寫文章 or 影片做介紹 ( 關於 dolphindb 效能,先講結論,我比較過 kdb+、influxdb 等各個知名的 TSDB, dolphindb 最強, 市面上有些課程是教 mongodb,我只能說,時序資料,NoSQL 比不上 TSDB ) 總體來說,loading balance 能讓你用多台機器分散 api request 那基本上,不再受限於單一機器瓶頸, 流量問題,就會轉變成以下幾點 1. DB loading (這點我用時序資料庫去解,同時資料庫也做分散) 2. 關注分散式中,各個 api 機器的效能,是否達到瓶頸 例如 CPU、Memory、IO Rate、Traffic 流量、Process 上限等等 以上可以用 netdata 去監控機器 loading,搭配 promethus、grafana 如下圖,FinMind 的監控 https://i.imgur.com/V93cXcS.png
如果想優化 code,也可以用 line_profiler,去分析瓶頸在哪 有興趣的話,以下是我們的 FB 討論區 https://www.facebook.com/groups/401634838071226 基本上我們不藏私,技術問題都歡迎討論 (我連內部監控 dashboard 都公開了XD)
liton: 我對股票有興趣,對爬蟲沒興趣。直接花錢 03/20 08:59
liton: 買數據 03/20 08:59
liton: 我好像FinMind會員快到期了 囧rz 03/20 09:01
※ 編輯: f496328mm (114.44.18.140 臺灣), 03/20/2022 16:46:00
karta0910489: 感謝回覆 獲益良多 超讚! 03/20 17:23
phoenixcx: 喔~最近才在爬你們家網站XD 03/23 18:36