BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

使用ActorFx进行MapReduce

| 作者 Jonathan Allen 关注 530 他的粉丝 ,译者 赵震一 关注 0 他的粉丝 发布于 2013年6月24日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

ActorFx发布最新预览版,增添了对MapReduce类型算法的支持。ActorFx是一种“非规范性的、独立于语言的动态分布式对象模型。它陆续提供了一套框架和基础设施,用户可以在其上实现高度可用的数据结构和其他逻辑实体。”官方通过单词统计这个例子对ActorFx的MapReduce功能进行了演示。该演示依赖于三种类型的actor:mapper、reducer和一个聚合器(aggregator)。每个mapper都会对文件进行处理,将原始文本文件转换成数据字典(dictionary)。这些字典文件将为reducer提供数据。由reducer从序列化的字典文件中读取信息,并将这些信息合并到一个运行中的字典中,reducer通过该字典来跟踪全部单词的统计。当每个reducer从为它提供数据的mapper中接收到“完成”的消息时,它便会将运行中的字典序列化到一个文件中,并将该文件名传给聚合器。而聚合器会负责生成最终的报告。

ActorFx 0.5的一个关键特性就是支持内部Actor可编程性(Inter-Actor Programmability)。这将允许actor创建并删除其他actor。而在前一版本中,我们不得不借助外部客户端来管理actor的生命周期。

像微软其他最近的代码库一样,现在可以通过Event Tracing for Windows (ETW) 基础设施来对ActorFx进行应用诊断。

包括最近的StatelessActorApp在内,目前已经有四种开箱即用(out-of-the-box)的actor应用可被选用。

  • EmptyActorApp:该actor应用允许你开启“空的”actor服务,这些actor服务没用任何内建的智能。可以通过将包含了程序集的ActorMethod传递给这些actor来提供相关智能。
  • ListActorApp:该actor应用允许你开启列表actor服务,这些actor服务将具有内建的支持列表操作的相关智能。
  • DictionaryActorApp:该actor应用允许你开启字典actor服务,这些actor服务内建了对键值存储操作的相关智能。
  • StatelessActorApp:事实上对该actor应用的命名有些用词不当。因为该应用的服务其实是可以保持状态的,只是状态的持久化并不是由Actor运行时进行负责的。所以从Actor运行时的角度来看,该应用的服务是无状态的。该应用及其关联的服务是在Actor运行时之外为ActorFx提供存储机制的前提。

更多的信息可以从Actor运行时管理器的文档获取。

查看英文原文:MapReduce with ActorFx

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT