Chinaunix首页 | 论坛 | 博客
  • 博客访问: 396459
  • 博文数量: 69
  • 博客积分: 1984
  • 博客等级: 上尉
  • 技术积分: 953
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-28 00:43
个人简介

学无所长,一事无成

文章分类

全部博文(69)

文章存档

2015年(19)

2014年(14)

2013年(9)

2012年(17)

2010年(10)

我的朋友

分类: Python/Ruby

2015-02-08 00:35:15

DCell 提供了一个可全局访问的目录(directory ),用于存放你希望存放的任意 Ruby 对象。全局数据可以用于节点间数据传输,包括 actors 句柄数据。这种方式可以让你全局性的注册一个 actor,这样当你从任意一个节点访问它时,就不需要首先定位自己在哪个节点上。

  1. >> actor = Celluloid::Actor[:dcell_server]
  2.  => #<Celluloid::Actor(DCell::Server:0xf2e) @addr="tcp://127.0.0.1:7777">

  3. >> DCell::Global[:sweet_server] = actor
  4.  => #<Celluloid::Actor(DCell::Server:0xf2e) @addr="tcp://127.0.0.1:7777">

  5. >> DCell::Global[:sweet_server]
  6.  => #<Celluloid::Actor(DCell::Server:0xf2e) @addr="tcp://127.0.0.1:7777">

DCell::Global 不适合用于写负荷较重的操作,比如存储仅存活于 HTTP request 生命期的数据。他倾向于用于存储较为持久的数据,如少量变更的配置数据,或硬件错误信息。如果你正在寻求一种用于短期数据的重度写操作的存储方案,那你该考虑下是不是该采用某种数据库来解决了。

阅读(855) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~