现状
- 现在家里有一台 mac 的本本丢着跑爬虫,数据入 mongodb。
- 偶尔要出门给客户延时点数据分析的结果,或者去客户那边实时导点东西。现在是直接电脑带去的。
- 但这样电脑带出去的时候爬虫就停了。
- 不想买服务器,太贵。
需求
- 刚好想换本本了,等于有两台 mbp。
- 有没有办法,一台在家跑爬虫,一台出门演示。
- 出门演示的数据库可以稍微滞后一点,但希望回家之后能同步。
- 除了手动 dump 再拷过去,有啥其它更新外带机上数据库的方法嘛?
推荐工具
› RoboMongo
推荐书目
› 50 Tips and Tricks for MongoDB Developers 1
akalxs Oct 16, 2018
复制集。
复制集最少需要三个个实例,通过 oplog 拉取复制。 所以你两台电脑,家里爬虫用的那台部署两个实例,跑业务的部署一个,形成一个复制集。 家里的两个实例随便一个指定为 primary,提供写操作。剩下两个为 secondary。 你跑业务的 mbp 一入家中的网,会自动拉取数据,你带出去后也不影响家里的读写。 |
2
JCZ2MkKb5S8ZX9pq OP @akalxs 如果
机器 A 为 Primary,同时机器 A 上运行一个 Arbiter。 这台机器主要爬取数据。 机器 B 不在线时,这台机器运行复制集中的 2 个(2/3),应该没有问题。 但是, 机器 B 作为 Secondary。 那么机器 B 带出去的时候,3 个复制集只有 1 个在机器 B 上,会不会导致 mongo 运行不起来? |
3
akalxs Oct 16, 2018 @JCZ2MkKb5S8ZX9pq
不会,你跑业务的时我相信不会对 B 的那台进行写入,所以只要你开启读写分离 slaveok,那你带出去演示的时候读是没问题的。 |
4
JCZ2MkKb5S8ZX9pq OP @akalxs OK,那我试试。感谢。
|