zoukankan      html  css  js  c++  java
  • Orleans学习入门(最近公司要用奥尔良,特此记录下学习过程,希望各大神多指教)

    介绍

    Orleans是一个可以直接构建分布式大型计算应用程序的框架,而无需学习和应用复杂的并发或其他可扩展的模式。

    背景

    云应用和服务本质上是并行和分布式的。他们也是互动和动态的; 通常需要几乎实时的云实体之间的直接交互。这样的应用程序今天很难构建。开发过程需要专家级程序员,并且通常需要昂贵的设计和架构迭代,随着工作量的增长。

    今天的大部分大型属性都构建为无状态n层服务的组合,大多数应用逻辑居于中间层。

    虽然该模型允许通过向中间层添加更多服务器来扩展,但是由于存储层的性能和可扩展性受到限制,因为大多数来自前端Web服务器的中间层请求需要从存储进行一次或多次读取,由于中间层服务器之间缺乏协调,更新更复杂,容易出现并发问题和冲突。它通常需要无状态层中的缓存来获得可接受的性能,增加复杂性并引入缓存一致性问题。无状态n层模式的另一个问题是它不支持由中间层暴露的各个应用实体之间的良好的横向通信,这使得难以实现复杂的业务逻辑与执行单个操作的多个实体作为处理的一部分请求。

    奥尔良作为有状态的中间层

    奥尔良提供了一种建立有状态中间层的直观方式,其中各种业务逻辑实体出现在跨服务器群集(孤岛)分布的不同应用程序定义类型的孤立的全局可寻址.NET对象(grain)的地方。grains类型是一个简单的.NET类,它实现一个或多个应用程序定义的grain 接口。单个grain 是应用程序定义的grain 类的实例,可以根据需要自动创建由服务器上的Orleans运行时,以处理对这些grain 的请求。Grains 自然地映射到大多数应用程序实体,如用户,设备,会话,清单,订单等,这使得构建面向对象但跨服务器集群透明化的业务逻辑非常容易。每个grain 在其应用逻辑选择的grain 类型内具有稳定的逻辑身份(密钥),例如用户电子邮件或设备ID或库存SKU代码。奥尔良保证每个grain 的单线程执行,从而保护应用程序逻辑免受并发的危害。在微服务领域,奥尔良被用作实现可由开发人员选择的微服务部署/管理解决方案部署和管理的微服务的框架。

    grain生命周期

    grain可以在存储或内存状态或两者的组合中具有持久状态。通过使用目标grain的逻辑身份,任何其他grain或前端(客户端)可以调用任何grain,无需创建或实例化目标grain。奥尔良编程模型使得grain看起来好像在记忆中一样。实际上,grain从现有的生命周期中只能作为存储中的持久状态,在内存中被实例化也就从内存中删除。

    奥尔良运行场景中实例化(激活)grain,当他们做的工作,并将其从内存(停用)中删除,以回收硬件资源,当它们空闲太久。运行时的这个grain生命周期管理工作对应用程序代码是透明的,并将其从复杂的分布式资源管理任务中解放出来。应用逻辑可以写入可用的grain的整个“地址空间”,而不需要具有硬件资源来同时保持所有的grain在存储器中,概念上类似于虚拟存储器在操作系统中的工作原理。此外grain的虚拟特性允许奥尔良大多数透明地处理服务器故障的应用程序逻辑,因为在故障服务器上执行的grain在检测到故障后会自动重新在其他服务器上重新实例化。

    Virtual Actors

    奥尔良的执行基于自20世纪70年代以来的Actor Model。然而,与更为传统的演员系统(如Erlang或Akka)的Actor不同,Orleans Grains是virtual actors。最大的区别是,粒子的物理实例被完全抽象出来,并且由奥尔良运行时自动管理。virtual actors模型更适合于云服务等大规模动态工作负载,是奥尔良的主要创新。

  • 相关阅读:
    host配置
    查看浏览器内核以及版本信息
    优化你的数据库索引
    密集索引和稀疏索引的区别
    Interview
    hadoop启动后,jps命令后发现nodename启动失败,检查日志报错:FSNamesystem initialization failed
    hadoop学习之hadoop完全分布式集群安装
    VMWare虚拟机下为Ubuntu 配置静态IP(NAT方式)ping通主机
    虚拟机突然无法使用NAT模式上网
    hadoop-0.20.2 & hbase-0.90.1 集群启动错误“org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientP
  • 原文地址:https://www.cnblogs.com/cmrcj/p/7512708.html
Copyright © 2011-2022 走看看