文档章节

关于分布式计算的一些概念

Mr_zebra
 Mr_zebra
发布于 2018/06/04 15:10
字数 861
阅读 9
收藏 0

整理自《架构解密从分布式到微服务》第七章——聊聊分布式计算.做了相应补充和修改。

[TOC]

前言

不管是网络、内存、还是存储的分布式,它们最终目的都是为了实现计算的分布式:数据在各个计算机节点上流动,同时各个计算机节点都能以某种方式访问共享数据,最终分布式计算后的输出结果被持久化存储和输出。 分布式作为分布式系统里最重要的一个能力和目标,也是大数据系统的关技术之一。经过多年的发展与演进,目前业界已经存在很多成熟的分布式计算相关的开源编程框架和平台供我们选择。

一 不得不说的Actor模型

1.1 Actor模型的诞生与发展

Carl Hewitt于1970年发明Actor模型,当时Actor模型的概念远远领先于那个时代,知道Erlang这样基于Actor模型设计的面向并发编程的新语言横空出世之后,Actor模型才真真火了起来。

1.2 Actor模型是什么?

Actor是计算机科学领域中的一个并行计算模型,它把Actor当做通用的并行计算原语:一个Actor对接收到的消息做出响应,进行本地决策,可以创建更多的Actor(子Actor),或者发送更多的消息;同时准备接收下一条消息。

在Actor理论中,一切都被认为是Actor,这和面向对象语言里一切都被看成对象很类似。但包括面向对象语言在内的软件通常是顺序执行的,而Actor模型本质上则是并发的。Actor之间仅通过发送消息进行通信,所有的操作都是异步的,不同的Actor可以同时处理各自的信息,使整个系统获得大规模的并发能力。

1.3 Actor模型原理简单介绍

Actor模型简单原理图:
Actor模型原理简单介绍

根据上图,每个Actor都有一个Mailbox(邮箱),Actor A 发送给消息给Actor B,就好像Actor A 给Actor B写了一封邮箱地址为Actor B的邮箱地址的邮件(消息)一样,随后平台负责投递邮件。当邮件Actor B之后,平台就会通知Actor B收取邮件并做出回复,如果有多封邮件,则Actor B按顺序处理。很简单和容易理解的技术,但是蕴含了强大的力量。Actor B收到消息后可能会做那些处理呢?

  • 创建其他Actor
  • 向其他Actor发送消息
  • 指定下一条消息到来的行为,比如修改自己的状态

在什么情况下一个Actor会创建子Actor呢?

通常情况是为了并行计算,比如我们有10G的文件要分析处理,我们可以在根Actor里创建10个子Actor,让每个Actor分别处理一个文件,为此根Actor给每个子Actor发送一个消息,消息里包含分配给它的的文件编号(或位置),当子Actor完成处理后,就把处理好的结果封装为应答消息返回给根Actor,然后根Actor在进行最后的汇总与输出,下面是这个过程的示意图。

本文转载自:http://click.aliyun.com/m/51458/

Mr_zebra
粉丝 29
博文 1375
码字总数 4194
作品 0
私信 提问
Storm官方帮助手册翻译(下)

使用其他语言编写Bolt Bolt可以使用任意语言编写。用另外一种语言编写Bolt来作为子进程运行。Storm会在标准输入输出的基础上使用Json来与子进程通信。通信协议之需要一个100行的适配器库,S...

am_danger
2016/01/14
78
0
微软下一代云计算编程模式--Orleans

关于自家的云计算平台,微软最大的一个卖点就是开发人员可以使用.NET、Visual Studio和其它编程工具来编写Azure应用程序。不过这并不是事情的全部,微软研究人员正在研发下一代云计算编程模式...

匿名
2010/08/19
6.4K
0
存储风云变幻,它却一直坚守

从2000年开始,中国的存储行业兴起。SAN存储形态在2015年达到顶峰,迎来分布式存储形态的变革,以及固态存储介质的釜底抽薪。在这期间,一批又一批厂商起来又倒下,收购与被收购。国产SAN存储...

tv8mbno2y2rfu
2017/11/21
0
0
观后有感

缘起 有个据说很NB的家伙写了一篇关于要设计一个超越Unix哲学的操作系统的博客!然后,我就很郁闷了!然后就花了一个晚上无聊的给他发了一封邮件! 由于他没说文章能转,那就不转了.贴上连接,有无...

方小葱
2014/02/12
2.4K
27

缘起 王垠大大写了一篇关于要设计一个超越Unix哲学的操作系统的博客!!然后就花了一个晚上无聊的给他发了一封邮件! 博客: http://www.yinwang.org/blog-cn/2013/04/14/os-design/ ----------...

方小葱
2014/02/12
1K
28

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
12分钟前
1
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
3
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
12
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
13
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部