基于docker的分布式爬虫服务 Zerg

Apache
Google Go
跨平台
2016-04-18
老盖

 zerg

    基于docker的分布式爬虫服务

特性

  • 多机多 IP,充分利用 IP 资源

  • 服务自动发现和注册(基于 etcd 和 registrator)

  • 负载均衡

  • 服务端客户端通信基于 gRPC,支持多种编程语言的客户端

  • 可设置抓取超时

  • 支持 GET、HEAD、POST 方法

  • 支持自定义 header

如何部署

第一步:配置 etcd

我把 etcd 容器化了,并开发了脚本使得部署 etcd cluster 非常容易,见 github.com/huichen/etcd_docker

为了容灾,请至少在三台服务器上运行 etcd 实例。为了方便调用,你可以固定 etc endpoint 的端口号,并在所有机器上手工添加 etcd host 的 hostname。

第二步:启动 registrator 服务发现程序

你需要在集群的每一台服务器上都运行 registrator,这使得我们可以自动发现和注册分布式服务

docker run -d --name=registrator --net=host --volume=/var/run/docker.sock:/tmp/docker.sock \
  gliderlabs/registrator etcd://<etcd 接入点的 ip:port>/services

请把上面的 etcd 接入点换成你的 etcd 地址。

第三步:部署 zerg 服务

进入 service_container 子目录,然后运行

./build_docker_image.sh

这会生成 unmerged/zerg 容器。然后在集群的每台服务器上启动容器:

docker run -d -P unmerged/zerg

registrator 会自动注册这些服务到 etcd。如果单机有多个 IP,你可以单机启动多个容器,并在 -P 中分别指定 IP。

第四步:调用样例代码

进入 examples 目录,运行

go run zerg_crawl.go --endpoints http://<你的 etcd host:ip> --url http://taobao.com

可选步骤

1、重新生成 protobuf service

protoc protos/crawl.proto --go_out=plugins=grpc:protos -I protos/

2、本地测试

启动本地服务。进入 service_container 目录,然后运行

go run service.go

然后进入 examples 目录,运行

go run single_machine_crawl.go --url http://taobao.com
加载中

评论(1)

数据抓取
数据抓取
寻找一个小团队做新闻客户端数据抓取,感兴趣可微信联系zx_wander

暂无资讯

暂无问答

MiscOnStarCraft2(b)

用protoss的,所以总结一些东西出来,我的水平现在是国服钻石,从第三到三十之间晃。 general 没有科技的zealot和stalker太面了,开始放一下还可以,后面根本不够看,所以均势情况下果断升科...

2012/03/09 14:07
2
0
sth about starcraft2

几天下来打了70多盘sc2了,也看了些录像,越发感觉sc2是非常有深度的即时战略。 很多玩即时战略不多的玩家都说相比sc1没有太多变化,事实并非如此。 如果一直关注韩国的星际职业联赛,你就会...

2012/03/09 14:09
26
0
2.ThinkPHP5 安装和三端命名

一:下载ThinkPHP5: 1:https://www.kancloud.cn/manual/thinkphp5/118006 完全开发手册 2:采用Git安装: 如果你不太了解Composer或者觉得Composer太慢,也可以使用git版本库安装和更新,Thi...

2018/05/11 10:42
13
0
单例模式(Singleton Pattern)

一、什么是单例模式? 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方...

2014/06/26 23:39
5
0
使用HTML5和jQuery插件Quicksand实现一个超酷的星际争霸2兵种分类展示效果

日期:2011/11/01 来源:GBin1.com 因为本人是星际争霸系列游戏的忠实拥簇,所以在今天的jQuery教程中,我们将使用HTML5和jQuery插件Quicksand来创建一个超酷的星际争霸兵种效果图。希望大家...

2011/11/01 19:03
208
0
探索设计模式--单例模式

转自:http://www.javaeye.com/topic/575052 各种构造模式之间可以互相比较,但是没有优劣好坏之分,只有确定了上下文环境,才能谈应用什么模式 学习设计模式我觉得也没有必要去强背一些代码...

2010/11/10 15:43
276
0
misc on starcraft----星际比赛

周六晚上是msl决赛,是这赛季非常有统治力的flash对战很有人气的jeadong。 两位可以说都是意识战术操作上的大师,比较可惜的是这次没有看到非常激励的场面和战局,结果flash 3:0拿下jeadong...

2012/03/09 14:08
22
0
谷歌中一些十分有趣的特效现象

转载自:http://blog.csdn.net/zjtimef/article/details/18826541

2014/01/29 14:18
301
0
javascript学习资料分享

有志于web前端工作的话,javascript的知识是必不可少的。越学,我越觉得自己所欠缺的越多。路漫漫其修远兮,吾将上下而求索。下面将一些好的资料分享给大家。 JavaScript学习资料: (1)遇见...

2012/04/06 11:37
3.2K
7

没有更多内容

加载失败,请刷新页面

返回顶部
顶部