作者f496328mm (123)
看板Python
标题[资讯] Python 课程 ( from FinMind 团队 )
时间Sun Mar 6 12:21:20 2022
大家好,我是 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://webptt.com/cn.aspx?n=bbs/Python/M.1646540483.A.D6B.html
1F:推 ToastBen: 感谢分享 03/07 08:10
2F:推 TuCH: 已买 03/07 09:57
3F:推 tamacugi: 我也买了,看起来很不错,期待! 03/09 14:31
4F:推 ggirls: 可以问20只爬虫是哪几个网站吗? 03/10 00:54
5F:→ f496328mm: 证交所、柜买中心、期交所 03/12 00:42
6F:推 tamacugi: 课程中有机会可以教一下怎麽爬各券商分点吗? 感谢! 03/12 13:32
课程中会讲解,如何破解验证码,如何破解 google recaptcha
并以券商分点为范例
7F:推 tamacugi: 太棒了 03/12 20:06
8F:推 cory501: 已买 03/13 00:17
9F:→ alvinlin: 感觉大家只对爬虫有兴趣但其他的没有。 03/13 01:44
10F:推 lycantrope: 爬虫(X 股票爬虫(O 03/19 14:29
但以上技能,rabbitmq、flower、分散式、Docker、mysql、grafana 等等
对爬虫都有非常大的加分,
至少我开发 FinMind 的经验,以上工具都是陆陆续续使用到
我一开始也是单机版本,最後不断拓展到现在
※ 编辑: f496328mm (114.44.18.140 台湾), 03/20/2022 03:26:08
11F:推 karta0910489: 想请问会包含高流量、快速的更新资料或是目前FindMi 03/20 04:18
12F:→ 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)
13F:→ liton: 我对股票有兴趣,对爬虫没兴趣。直接花钱 03/20 08:59
14F:→ liton: 买数据 03/20 08:59
15F:→ liton: 我好像FinMind会员快到期了 囧rz 03/20 09:01
※ 编辑: f496328mm (114.44.18.140 台湾), 03/20/2022 16:46:00
16F:推 karta0910489: 感谢回覆 获益良多 超赞! 03/20 17:23
17F:推 phoenixcx: 喔~最近才在爬你们家网站XD 03/23 18:36