最近一直在研究 大数据的处理,在此做一下简单的笔记吧,以便之后查看。
1、mysql:mysql的中间件 网上有很多,比如360的 atals,淘宝的 cobar 、tddl,以及mysql官方推出的 mysql_proxy. 这些都是优秀的开源产品,但是各有各自的问题,atals不支持将一个表跨库分表,cobalr 不支持 同一个库进行分表,tddl 功能强大 ,但是操作复杂,部分为开源。
这里推荐一个 mysql 官方的另一个反应不错的 产品:Fabric, 支持java、php、python。
下面盗用一张图:
附一篇不错的链接:http://www.tuicool.com/articles/miuq63E
2、redis:关于redis的分布式 分片 网上也有很多资料,这里简单说一下:
Twemproxy、Codis、Cluster
Twemproxy:代理分片机制,由Twitter开源,最大的痛点是无法平滑的扩容或者缩容,甚至修改配置都需要重启服务;其次,不可运维,甚至没有Dashboard。
Cluster:官方产品,去中心化思路,不推荐使用,从了解的情况来看,线上业务的实际应用也并不多见
Codis:豌豆荚推出,无缝迁移Twemproxy、支持Java程序的HA、支持Pipeline。目前来说比较好的方案,推荐学习使用。
Codis 由四部分组成:
-
Codis Proxy (codis-proxy):是客户端连接的 Redis 代理服务
-
Codis Manager (codis-config): Codis 的管理工具, 支持包括, 添加/删除 Redis 节点, 添加/删除 Proxy 节点, 发起数据迁移等操作
-
Codis Redis (codis-server):Codis 项目维护的一个 Redis 分支, 基于 2.8.13 开发, 加入了 slot 的支持和原子的数据迁移指令. Codis 上层的 codis-proxy 和 codis-config 只能和这个版本的 Redis 交互才能正常运行
-
ZooKeeper:Codis 依赖 ZooKeeper 来存放数据路由表和 codis-proxy 节点的元信息, codis-config 发起的命令都会通过 ZooKeeper 同步到各个存活的 codis-proxy.
附一篇不错的链接:
http://www.wtoutiao.com/a/2288780.html
http://www.cnblogs.com/shanyou/p/4268896.html
3、mongodb:mongo 标准的nosql,实际项目应用也很广泛,为解决大数据而生,网上关于mongo的集群 大概分为三种
主从:官方 已经不推荐使用
Replica Set:副本集+仲裁节点,高可用,一般项目ok
sharing:也就是所谓的分片了
分为路由节点mongos、配置节点config server、副本集(主、副、仲裁 节点)
配置最复杂,功能最强大,包含副本集,一般的话,学习完这种集群方式后 另外两种肯定也都ok了。推荐学习。
附一篇不错的文章链接:http://blog.youkuaiyun.com/luonanqin/article/details/8497860?ticket=ST-80809-9gacsvnJdoQvry15eiIl-passport.youkuaiyun.com