Tag: mongodb

谈谈项目的重构与测试

背景这几个月我开发了公司里的一个restful webservice,起初技术选型的时候是采用了flask框架。虽然flask是一个同步的框架,但是可以配合gevent或者其它方式运行在异步的容器中(测试链接),效果看上去也还可以,因此就采用了这种方式。 后面阅读了tornado的源码,也去了解了各种协程框架以及运行的原理。总感觉flask的这种同步方式编程不够好,同时对于这种运行在容器里的模式目前还缺乏了解。但至少现在对于tornado的运行原理有了一定的了解,如果用tornado写的话,是很可控的,而且可以保证运行是高效的。因此就决定把原来基于flask的项目用tornado重构了。

mongodb集群(一)——搭建

1.前言之前有一篇博客是介绍了搭建mongodb的replica set集群的。这次系列将会对mongodb做一个更为详细的介绍,这篇主要讲的是mongodb数据分片集群的搭建。 分片(sharding)、副本集(replication)与分布式文件系统(比如 hbase)的区别: 副本集集群中的每一个节点的数据都是相同的,有一个primary,1~7个secondary,数据写入primary节点后会同步给所有的备份节点,可以很方便地作读写分离。还有一个可选的arbitary节点,当primary节点宕机后,由arbitary节点从secondary中选出新的primary节点。如果没有arbitary,则由所有secondary节点共同决定下一个primary节点。 数据分片集群中,每一个数据节点存的数据都是不同的,互作补充。由预先定义的字段或者组合字段作为分片的依据。往集群中新增分片节点,数据库会自动作数据迁移,使得存储负载尽可能平均。(某个节点挂了,部分数据访问不了怎么办,如何作数据的高可用?) 分布式文件系统是文件系统,数据库是一种定义的数据存储格式。数据库的数据在文件系统中也是以多个文件的形式存储的,而文件就是存储在文件系统中的。

mysql mongodb性能测试

对mysql和mongodb做一个简单的调研。 测试环境数据库版本mongodb: 3.0.5 无任何优化,单机测试mysql: 5.6.26 无任何优化,单机测试 环境CPU: 2.2 GHz Intel Core i7内存: 16G DDR3操作系统: OS X Yosemite 10.10.5python: 3.5.0 数据库接口驱动mongodb: PyMongo 3.0.3mysql: PyMySQL 0.6.6

mongodb 构建 replset 实现高可用

上周遇到了digital ocean服务器厂商主机崩溃的事情。当时我只是单点部署了mongodb,数据全在美国服务器。这下直接导致数据库不能用,如果主机就此起不来或者是其它原因导致数据丢失的话,哭也来不及了。为了防止下次遇到类似的事情,决定为数据库部署一个副本集架构(replica set)