Cloud Foundry中的MongoDB服务

在Cloud Foundry中,支持很多服务平台,其中主流的要算MongoDB了,最流行的NoSQL数据库。它使用的语言是C++,保留了SQL一些友好的特性,比如查询和索引;支持自动错误恢复,可以使用sets复制;内建分片机制,支持 JavaScript表达式查询,可在服务器端执行任意的JavaScript函数。

其实,自关系型数据库出现以来,数据库领域已经产生了许多变化。现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL的出现足可以改变这一现状,目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型的数据库。

现今,由于信息量的增长,数据库可以应对数据量也同样在激增,但是数据量是一个棘手的问题,对于任何重要的数据库而言,分布式必不可少。而且,许多应用的后台数据库的数据速度远远快于处理数据查询的速度。

比如,在日志应用或者分布式传感应用数据库中,写入比查询频繁得多,因此对高速数据流的捕捉显得越来越重要。当然,还需要考虑灾难应急措施,如果应用系统架构中的任何一部分出现单点故障,都会导致灾难性的后果,数据库系统必须提供高可用性支持。

一个高可用性系统就是一个分布式系统。如果正在构建一个面向客户的应用,进行业务分析,那么可扩展性是一个大问题。垂直可扩展性已经近乎极限,那么水平可扩展性,也就是构建多节点分布式系统便成了唯一的途径。

在本地启动一个MongoDB,用VMC登录:

mongo@ubuntu:~$sudo gem install vmc

mongo@ubuntu:~$vmc target api.cloudfoundry.com

Succesfullytargeted to [http://api.cloudfoundry.com]

mongo@ubuntu:~$vmc login

Email:mingming@163.com

Password:********

Successfullylogged into [http://api.cloudfoundry.com]

配置MongoDB,用MongoDB记录客户端信息:

if(process.env.VCAP_SERVICES){

  var env =JSON.parse(process.env.VCAP_SERVICES);

  var mongo =env['mongodb-1.8'][0]['credentials'];

}

else{

  var mongo ={"hostname":"localhost","port":,"username":"",

   "password":"","name":"","db":"db"}

}

别忘记,还需要安装node.js的mongodb扩展:

$ npm install mongodb

启动服务后再次访问,就能在mongodb里找到对应的记录:

http.createServer(function (req, res) {

  record_visit(req,res);

}).listen(port, host);

MongoDB适用于需要动态查询支持,或者索引功能;适用于对大数据库有性能要求,或者需要使用CouchDB但因为数据改变太频繁而占满内存的应用程序。

使用以后,会发现MongoDB非常容易运行,而且可以很容易地和JSON类的数据结果映射起来,这对于程序开发人员来说,具有很大的感染力。当然,如果喜欢成熟技术的系统管理员,MongoDB具有成熟性和健壮性,也算是一个很不错的选择。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值