首页
学习
活动
专区
工具
TVP
发布

进击的Coder

专栏成员
559
文章
1323547
阅读量
200
订阅数
今天面了个阿里秒杀组的,见识到了八股文天花板!
秒杀系统为什么如此经典,常常被人拿出来讲? 因为它是一个典型的读远大于写的业务场景。同样地,抢票软件也是这个逻辑,1 趟火车只放 2000 张票,可是却有成百上千万人同时在网站上抢,看到这里你大概意识到这类业务为什么难做了。 此外任何大型网站应用,只要涉及大流量、高并发,都免不了在浏览器层、站点层、服务层、数据层这几层核心上下功夫。 因此,秒杀系统的调优策略,放在很多分布式系统中都是适用的: "请求超过了系统负载怎么办?如何保证分布式事务中的消息不丢失?什么情况下使用 Redis 缓存……" 尤其金三银四
崔庆才
2022-05-25
8950
干货!爬虫框架 Feapder 和 Scrapy 的对比分析
scrapy 自带的重试中间件只支持请求重试,解析函数内异常或者数据入库异常不会重试,但爬虫在请求数据时,往往会有一些意想不到的页面返回来,若我们解析异常了,这条任务岂不是丢了。
崔庆才
2021-10-08
2.2K0
你与数据科学家只差这 26 条 Python 技巧
作者 Peter Gleeson 是一名数据科学家,日常工作几乎离不 python。一路走来,他积累了不少有用的技巧和 tips,现在就将这些技巧分享给大家。这些技巧将根据其首字母按 A-Z 的顺序进行展示。
崔庆才
2019-05-06
5470
这可能是你见过的最全的网络爬虫干货总结!
昨天的时候我参加了掘金组织的一场 Python 网络爬虫主题的分享活动,主要以直播的形式分享了我从事网络爬虫相关研究以来的一些经验总结,整个直播从昨天下午 1 点一直持续到下午 5 点,整整四个小时。
崔庆才
2018-11-23
3.7K0
分布式爬虫原理之Scrapy分布式实现
接下来,我们会利用Scrapy-Redis来实现分布式的对接。 一、准备工作 请确保已经成功实现了Scrapy新浪微博爬虫,Scrapy-Redis库已经正确安装。 二、搭建Redis服务器 要实现分布式部署,多台主机需要共享爬取队列和去重集合,而这两部分内容都是存于Redis数据库中的,我们需要搭建一个可公网访问的Redis服务器。 推荐使用Linux服务器,可以购买阿里云、腾讯云、Azure等提供的云主机,一般都会配有公网IP,具体的搭建方式可以参考第1章中Redis数据库的安装方式。 Redi
崔庆才
2018-06-25
1.6K0
分布式爬虫的部署之Scrapyd分布式部署
分布式爬虫完成并可以成功运行了,但是有个环节非常烦琐,那就是代码部署。 我们设想下面的几个场景。 如果采用上传文件的方式部署代码,我们首先将代码压缩,然后采用SFTP或FTP的方式将文件上传到服务器,之后再连接服务器将文件解压,每个服务器都需要这样配置。 如果采用Git同步的方式部署代码,我们可以先把代码Push到某个Git仓库里,然后再远程连接各台主机执行Pull操作,同步代码,每个服务器同样需要做一次操作。 如果代码突然有更新,那我们必须更新每个服务器,而且万一哪台主机的版本没控制好,这可能会影响整
崔庆才
2018-06-25
1.6K0
分布式爬虫的部署之Scrapyd-Client的使用
这里有现成的工具来完成部署过程,它叫作Scrapyd-Client。本节将简单介绍使用Scrapyd-Client部署Scrapy项目的方法。 一、准备工作 请先确保Scrapyd-Client已经正确安装。 二、Scrapyd-Client 的功能 Scrapyd-Client为了方便Scrapy项目的部署,提供如下两个功能。 将项目打包成Egg文件。 将打包生成的Egg文件通过addversion.json接口部署到Scrapyd上。 Scrapyd-Client帮我们把部署全部实现了,我们不
崔庆才
2018-06-25
1.1K0
分布式爬虫的部署之Scrapyd对接Docker
我们使用了Scrapyd-Client成功将Scrapy项目部署到Scrapyd运行,前提是需要提前在服务器上安装好Scrapyd并运行Scrapyd服务,而这个过程比较麻烦。如果同时将一个Scrapy项目部署到100台服务器上,我们需要手动配置每台服务器的Python环境,更改Scrapyd配置吗?如果这些服务器的Python环境是不同版本,同时还运行其他的项目,而版本冲突又会造成不必要的麻烦。 所以,我们需要解决一个痛点,那就是Python环境配置问题和版本冲突解决问题。如果我们将Scrapyd直接打
崔庆才
2018-06-25
1.9K0
分布式爬虫的部署之Scrapyd批量部署
我们在上一节实现了Scrapyd和Docker的对接,这样每台主机就不用再安装Python环境和安装Scrapyd了,直接执行一句Docker命令运行Scrapyd服务即可。但是这种做法有个前提,那就是每台主机都安装Docker,然后再去运行Scrapyd服务。如果我们需要部署10台主机的话,工作量确实不小。 一种方案是,一台主机已经安装好各种开发环境,我们取到它的镜像,然后用镜像来批量复制多台主机,批量部署就可以轻松实现了。 另一种方案是,我们在新建主机的时候直接指定一个运行脚本,脚本里写好配置各种环
崔庆才
2018-06-25
9480
分布式爬虫原理之分布式爬虫原理
我们在前面已经实现了Scrapy微博爬虫,虽然爬虫是异步加多线程的,但是我们只能在一台主机上运行,所以爬取效率还是有限的,分布式爬虫则是将多台主机组合起来,共同完成一个爬取任务,这将大大提高爬取的效率
崔庆才
2018-06-25
1.3K0
3个关键点,把你的TensorFlow代码重构为分布式!
对于机器学习模型,分布式大致分两类:模型分布式和数据分布式: 模型分布式非常复杂和灵活, 它把整个机器学习模型分割,分散在多个节点上,在每个节点上计算模型的各个部分, 最后把结果拼接起来。如果你造了
崔庆才
2018-06-25
6900
Python操作MongoDB看这一篇就够了
MongoDB是由C++语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活。在这一节中,我们就来看看Python 3下MongoDB的存储操作。 1. 准备工作 在开始之前,请确保已经安装好了MongoDB并启动了其服务,并且安装好了Python的PyMongo库。 2. 连接MongoDB 连接MongoDB时,我们需要使用PyMongo库里面的MongoClient。一般来说,传入MongoDB的
崔庆才
2018-06-25
22.8K0
分布式爬虫的部署之Gerapy分布式管理
我们可以通过Scrapyd-Client将Scrapy项目部署到Scrapyd上,并且可以通过Scrapyd API来控制Scrapy的运行。那么,我们是否可以做到更优化?方法是否可以更方便可控? 我们重新分析一下当前可以优化的问题。 使用Scrapyd-Client部署时,需要在配置文件中配置好各台主机的地址,然后利用命令行执行部署过程。如果我们省去各台主机的地址配置,将命令行对接图形界面,只需要点击按钮即可实现批量部署,这样就更方便了。 使用Scrapyd API可以控制Scrapy任务的启动、终止
崔庆才
2018-06-25
1K0
为什么分布式一定要有redis?
作者:孤独烟 来源:博客园 出处:http://rjzheng.cnblogs.com/ 1. 为什么使用redis 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发。当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件(如zookpeer等)代替,并不是非要使用redis。因此,这个问题主要从性能和并发两个角度去答。 回答:如下所示,分为两点 (一)性能 如下图所示,我们在碰到需要执行耗时特别久,且结果不频繁变动的SQL,就特
崔庆才
2018-06-25
6590
区块链入门教程
区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。 下面,我就来尝试,写一篇最好懂的区块链
崔庆才
2018-04-08
7990
跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!
背景 用 Python 做过爬虫的小伙伴可能接触过 Scrapy,GitHub:https://github.com/scrapy/scrapy。Scrapy 的确是一个非常强大的爬虫框架,爬取效率高,扩展性好,基本上是使用 Python 开发爬虫的必备利器。如果使用 Scrapy 做爬虫,那么在爬取时,我们当然完全可以使用自己的主机来完成爬取,但当爬取量非常大的时候,我们肯定不能在自己的机器上来运行爬虫了,一个好的方法就是将 Scrapy 部署到远程服务器上来执行。 所以,这时候就出现了另一个库 Scra
崔庆才
2018-04-04
8850
Scrapy-Redis分布式爬虫源码解析
Scrapy-Redis库已经为我们提供了Scrapy分布式的队列、调度器、去重等功能,其GitHub地址为:https://github.com/rmax/scrapy-redis。 本节我们深入了解一下,利用Redis如何实现Scrapy分布式。 1. 获取源码 可以把源码Clone下来,执行如下命令: git clone https://github.com/rmax/scrapy-redis.git 核心源码在scrapy-redis/src/scrapy_redis目录下。 2. 爬取队列 从爬
崔庆才
2018-04-04
1.4K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档