
Orleans
闫辉_13510215218
这个作者很懒,什么都没留下…
展开
-
Orleans 2.0 官方文档 —— 5.2 集群和客户端 -> silo的生命周期
silo的生命周期概述Orleans silo使用可观察的生命周期(参见Orleans Lifecycle),来有序地启动和关闭Orleans系统以及应用程序层组件。阶段Orleans Silo和Cluster Client使用一组通用的服务生命周期阶段。public static class ServiceLifecycleStage{ public const ...翻译 2019-01-22 16:06:30 · 898 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.2 实现细节 -> Orleans生命周期
Orleans生命周期概览一些Orleans行为足够复杂,需要有序地启动和关闭。具有此种行为的一些组件包括grain、silo和客户端。为了解决此问题,引入了一个通用的组件生命周期模式。这个模式包含一个可观察的生命周期,负责在组件的启动和关闭阶段发出信号,以及生命周期观察者,它负责在特定阶段执行启动或关闭操作。另请参阅Grain Lifecycle和Silo Lifecycle。可...翻译 2019-02-03 21:17:48 · 657 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.3 实现细节 -> 消息传递保证
消息传递保证默认情况下,Orleans消息传递保证最多一次。也可以选择,如果配置为在超时时重试,则Orleans消息传递保证最少一次。更多细节: Orleans的每条消息都有自动超时(可以配置精确的超时时间)。如果答复没有按时到达,则返回的Task会中断,并带有超时异常。 可以将Orleans配置为在超时时自动重试。默认情况下,它不会执行自动重试。 应用程序代码当...翻译 2019-02-03 22:43:49 · 673 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.4 实现细节 -> Scheduler
SchedulerOrleans Scheduler是Orleans运行时内的一个组件,负责执行应用程序代码和部分的运行时代码,以确保单线程执行语义。它实现了一个自定义的TPL(Task Parallel Library) Task Scheduler。Orleans Task Scheduler是一个两层级结构的调度程序。第一级是全局的OrleansTaskScheduler(OTS),...翻译 2019-02-06 10:23:11 · 527 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.5 实现细节 -> 集群管理
Orleans的集群管理Orleans通过内置的成员资格协议,提供了集群管理,我们有时将其称为Silo 成员资格 (Silo Membership)。该协议的目标是让所有silo(Orleans服务器)就当前活动的silo集合达成一致、检测故障silo,并允许新的silo加入集群。该协议依赖于外部服务,来提供MembershipTable的抽象。MembershipTable是一个平面的(...翻译 2019-02-09 11:10:45 · 1164 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.5.11 集群和客户端 -> 配置指南 -> 启动任务
启动任务在许多情况下,一旦silo可用,就需要自动执行某些任务。启动任务提供此功能。一些用例包括但不限于:启动后台计时器,以执行周期性的"家务"式的任务 使用从外部的后备存储下载的数据,预加载一些缓存的grain启动期间从启动任务抛出的任何异常,都会报告在silo日志中,并停止silo。这种快速失败的方法是Orleans处理silo启动问题的标准方法,旨在允许在测试阶段,轻松检...翻译 2019-01-30 09:57:51 · 542 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.5.12 集群和客户端 -> 配置指南 -> 关闭Orleans
本文档介绍了如何在应用程序退出之前,优雅地关闭Orleans Silo,首先是控制台应用程序,然后是Docker容器应用程序。优雅地关闭 —— 控制台应用程序下面的代码显示了如何优雅地关闭Orleans silo控制台应用程序,来响应用户按Ctrl + C(生成Console.CancelkeyPress事件)。通常,当该事件处理程序返回时,应用程序将立即退出,导致灾难性的Orlean...翻译 2019-01-30 11:28:08 · 582 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.6.1 集群和客户端 -> 监控 -> 运行时监控
运行时监控Orleans通过ITelemetryConsumer接口输出运行时的统计信息和度量。应用程序可以为其silo和客户端,注册一个或多个遥测消费者(telemetry consumer),来接收Orleans运行时定期发布的统计数据和度量。这些可以是流行的遥测分析解决方案的消费者,也可以是任何其他目标和目的的自定义消费者。Orleans代码库目前包含三个遥测消费者。它们作为单独的N...翻译 2019-01-30 12:00:16 · 523 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.6 实现细节 -> 流的实现
Orleans 流的实现细节本节提供了Orleans 流实现的高级概述。它描述了在应用程序级别上不可见的概念和细节。如果您只打算使用流,则不必阅读本节。术语:我们用“队列”一词,来指可以吸收流事件的、并允许拉取事件或提供基于推送的机制来消费事件的、任何的持久存储技术。通常,为了提供可伸缩性,这些技术提供分片/分区队列。例如,Azure队列允许创建多个队列,Event Hubs有多个hu...翻译 2019-02-09 14:52:44 · 611 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.6.3 集群和客户端 -> 监控 -> 客户端错误代码监控
客户端错误代码监控组 日志类型 记录代码值 阈 描述 Azure问题 警告或错误 100800 - 100899 任何错误或警告 读取或写入Azure表存储的暂时性问题将记录为警告。暂时性读取错误将自动重试。最终的错误日志消息,表示连接到Azure表存储的确存在问题。 网关连接问题 警告或错误 1009...翻译 2019-01-30 12:45:24 · 485 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.1 实现细节 -> 概述
实现细节概述Orleans生命周期一些Orleans的行为足够复杂,需要有序的启动和关闭。为了解决此问题,引入了一个通用的组件生命周期模式。消息传递保证默认情况下,Orleans消息传递保证最多一次。也可以选择,如果配置为在超时时重试,则Orleans消息传递保证最少一次。SchedulerOrleans Scheduler是Orleans运行时内的一个组件,负责执行应用程...翻译 2019-02-03 20:43:11 · 364 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 7.5 流 -> 流提供程序
流提供程序流可以有不同的形状和形式。有些流可以通过直接TCP链接传递事件,而另一些流可以通过持久队列传递事件。不同的流类型可以使用不同的批处理策略、不同的缓存算法或不同的反压程序。我们不希望将流应用程序限制为这些行为选择的一个小的子集。相反,流提供程序是Orleans流运行时的可扩展点,允许用户实现任何类型的流。这个可扩展点在本质上与Orleans存储提供程序类似。Orleans目前附带许多流...翻译 2019-02-03 20:26:12 · 438 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.5.10 集群和客户端 -> 配置指南 -> 序列化
序列化和编写自定义序列化程序Orleans有一个高级的、可扩展的序列化框架。Orleans序列化grain请求和响应的消息中传递的数据类型,以及grain的持久化状态对象。作为此框架的一部分,Orleans会自动为这些数据类型生成序列化代码。除了为已经.NET可序列化的类型生成更有效率的序列化/反序列化之外,Orleans还尝试为不可.NET序列化的grain接口中使用的类型生成序列化程序。该...翻译 2019-01-30 00:02:08 · 870 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 5.3 集群和客户端 -> PowerShell 客户端模块
PowerShell客户端模块Orleans PowerShell客户端模块是一组PowerShell Cmdlet,它将GrainClient包装在一组方便的命令中,这样不仅可以与ManagementGrain进行交互,还可以与任何IGrain交互,就像使用Powershell脚本与常规的Orleans应用程序进行交互一样。这些Cmdlet通过利用Powershell脚本实现了一系列场景...翻译 2019-01-23 00:22:23 · 458 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.8.3 部署 -> 多集群支持 -> gossip 通道
多群集通信必须以这样的方式配置网络:任何Orleans silo都可以通过TCP/IP连接到任何其他的Orleans silo,无论它位于何处。究竟如何实现这一目标,并不在Orleans的范围之内,因为它取决于如何部署silo、以及在何处部署silo。例如,在Windows Azure上,我们可以使用VNETs,来连接到区域内的多个部署,以及跨不同区域连接VNETs的网关。集群ID...翻译 2019-02-02 08:15:21 · 427 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.8.4 部署 -> 多集群支持 -> silo的配置
Orleans silo的配置为了快速了解到概貌,我们将在下面的XML语法中,显示所有相关配置参数(包括可选配置参数):<?xml version="1.0" encoding="utf-8"?><OrleansConfiguration xmlns="urn:orleans"> <Globals> <MultiClusterN翻译 2019-02-02 08:35:13 · 752 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.8.5 部署 -> 多集群支持 -> Global-Single-Instance
grain协作的属性开发人员可以指示集群,何时以及如何针对特定的grain类,协调它们的grain目录。[GlobalSingleInstance]属性意味着,我们需要与在单个的全局集群中运行Orleans时相同的行为:即,将所有调用路由到单个激活的grain。相反,该[OneInstancePerCluster]属性指示每个集群可以具有其自己的独立激活。如果不想要集群之间进行通信,这是合适的...翻译 2019-02-02 10:34:50 · 466 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 7.1 流 -> 概述
Orleans流Orleans v.1.0.0增加了对编程模型流扩展的支持。流扩展提供了一组抽象和API,使得考虑和使用流更简单、更健壮。流扩展允许开发人员以结构化的方式,编写对一系列事件进行操作的响应式应用程序。流提供程序的可扩展性模型,使编程模型与各种现有的队列技术兼容并可移植,例如Event Hub,ServiceBus,Azure Queues和Apache Kafka。无需编写特殊代...翻译 2019-02-02 13:37:40 · 732 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 7.2 流 -> 快速入门
Orleans Streams快速入门本指南将向您展示设置和使用Orleans Streams的快速方法。要了解有关流功能详细信息的更多信息,请阅读本文档的其他部分。必需的配置在本指南中,我们将使用基于简单消息的Stream,它使用grain消息传递,将流数据发送给订阅者。我们将使用内存存储提供程序,来存储订阅列表,因此对于实际的生产应用程序来说,这不是明智的选择。在silo上,h...翻译 2019-02-02 14:56:42 · 665 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 7.3 流 -> 为什么需要Orleans流
为什么需要Orleans流?已有多种技术可用于构建流处理系统。这些包括用于持久存储流数据的系统(例如,Event Hubs和Kafka),和流数据上表达计算操作的系统(例如,Azure Stream Analytics,Apache Storm和Apache Spark Streaming)。这些都是很棒的系统,可以帮助您构建高效的数据流处理管道。现有系统的局限性但是,这些系统不适用于...翻译 2019-02-02 21:13:12 · 889 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 7.4 流 -> 流编程API
Orleans 流编程API应用程序通过API与流进行交互,这些API与众所周知的.NET的Reactive Extensions(Rx)非常相似。主要的区别在于,Orleans流扩展是异步的,以使Orleans的分布式和可扩展的计算fabric中的处理更加高效。异步流应用程序首先使用流提供程序来获取流的句柄。您可以在此处阅读有关流提供程序的更多信息,但是现在您可以将其视为流的工厂,它...翻译 2019-02-03 18:34:23 · 1286 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.1 部署 -> 运行程序
Orleans应用程序典型的Orleans应用程序,由一组Grain所在的服务器进程(silo)和一组客户端进程(通常是Web服务器)组成。客户端进程接收外部请求,将它们转换为grain方法调用,然后返回结果。因此,运行Orleans应用程序需要做的第一件事就是启动一个silo集群。出于测试目的,集群可以由单个silo组成。为了实现可靠的生产部署,我们显然希望集群中有多个silo用于容错和扩展...翻译 2019-01-30 14:14:09 · 507 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.7 实现细节 -> 负载均衡
负载均衡从广义上讲,负载均衡是Orleans运行时的支柱之一。Orleans运行时尝试使一切均衡,因为均衡允许最大限度地利用资源,并避免热点,从而提高性能,并有助于弹性。Orleans的负载均衡适用于多个地方。下面是运行时执行均衡的地方(非详尽列表): 默认的actor放置策略是随机的 —— 新的激活体被随机放置在silo中。这样可以实现平衡的放置,并防止大多数情况下出现热点。 ...翻译 2019-02-09 15:47:34 · 788 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 8.8 实现细节 -> 单元测试
单元测试本教程介绍如何对grain进行单元测试,以确保它们的行为正确。有两种主要方法可以对grain进行单元测试,您选择的方法取决于您正在测试的功能类型。该Microsoft.Orleans.TestingHostNuGet包可以用来为您的grain创建测试silo,也可以使用模拟框架(例如Moq),来模拟与你的grain交互的Orleans运行时部分。使用TestClusterMic...翻译 2019-02-09 16:10:39 · 553 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.5.2 迁移-> 在Azure云服务中,从Orleans 1.5 迁移到2.0
使用Azure时,从Orleans 1.5迁移到2.0在Orleans 2.0中,silo和客户端的配置发生了变化。在Orleans 1.5中,我们曾经有一个整体式的对象来处理所有配置文件,提供程序也被添加到该配置对象中。在Orleans 2.0中,配置过程是围绕着SiloHostBuilder组织的,类似于在ASP.NET Core中使用WebHostBuilder。在Orleans 1...翻译 2019-02-10 11:19:13 · 331 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.5.1 迁移-> 从Orleans 1.5 迁移到2.0
从Orleans 1.5迁移到2.0Orleans 的大部分API在2.0中保持不变,或者这些API的实现保留旧版类中,以实现向后兼容。同时,新引入的API提供了一些新功能或更好的方法,来完成这些任务。在.NET SDK工具和Visual Studio支持方面,还有一些更多细微的差别,这有助于大家了解它。本文档提供了将应用程序代码迁移到Orleans 2.0的指导。Visual Studi...翻译 2019-02-10 14:07:49 · 606 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.3.4 部署 -> Grain版本管理 -> 版本选择器策略
版本选择器策略当集群中存在同一个grain接口的多个版本,并且必须创建新的激活体时,将根据GrainVersioningOptions.DefaultVersionSelectorStrategy中定义的策略,选择兼容版本。开箱即用的Orleans,支持以下策略:所有兼容版本(默认)使用此策略,将在所有兼容的版本中,随机选择新激活体的版本。例如,如果我们给定的grain接口有两...翻译 2019-01-30 21:00:20 · 286 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.3.5 部署 -> Grain版本管理 -> 部署grain的新版本
部署grain的新版本滚动升级在此方法中,您可以直接在您的环境中部署较新的silo。这是最简单的方法,但是很难中断正在进行的部署并回滚。推荐配置:DefaultCompatibilityStrategy 设置成 BackwardCompatible DefaultVersionSelectorStrategy 设置成 AllCompatibleVersionsvar silo...翻译 2019-01-30 22:00:00 · 368 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.4 部署 -> 将Azure Web Apps与Azure云服务配合使用
将Azure Web Apps与Azure云服务配合使用如果您希望从Azure Web应用程序,而不是从同一个云服务中承载的Web角色,连接到Azure云服务silo,您可以这样做。为了安全地工作,您需要将Azure Web App和托管Silo的工作者角色,分配给一个Azure虚拟网络。首先,我们将设置Azure Web App,您可以按照本指南,创建虚拟网络,并将其分配给Azure...翻译 2019-01-30 22:38:08 · 223 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.5 部署 -> Azure云服务部署疑难解答
部署故障排除本页提供了一些有关解决部署到Azure云服务时出现的任何问题的一般指导原则。这些是非常常见的问题,需要加以注意。请务必查看日志,以获取更多信息。获取SiloUnavailableException在尝试初始化客户端之前,首先检查并确保实际启动了silo。有时silo需要很长时间才能启动,因此尝试多次初始化客户端是有益的。如果它仍然抛出异常,那么silo可能会有另一个问题。...翻译 2019-01-31 08:11:38 · 259 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 1.5 概览 -> Orleans更新历史
Orleans有何更新?v2.1.0 2018/9/28主要变化 新调度程序(#3792) 承载的客户端(#3362) 分布式事务管理器(#3820,#4502,#4538,#4566,#4568,#4591,#4599,#4613,#4609,#4616,#4608,#4628,#4638,#4685,#4714,# 4739,#4768,#4799,#4781,#4810,#...翻译 2019-02-10 22:39:55 · 559 阅读 · 0 评论 -
Orleans 2.0 官方文档中文版 (闫辉)
目录第一章 概览1.1 概览 -> 介绍1.2 概览 -> 优点1.3 概览 -> 常见问题1.4 概览 -> Orleans 2.01.5 概览 -> Orleans更新历史第二章 入门教程与示例2.1 入门教程与示例 -> 概览2.2 入门教程与示例 -> 入门教程1:Orleans基础2.3 入门教程与示例 -...原创 2019-02-10 16:35:30 · 7247 阅读 · 8 评论 -
Orleans 2.0 官方文档 —— 6.6 部署 -> Consul部署
使用Consul作为会员身份提供程序Consul简介Consul是一个分布式、高可用性和数据中心感知的服务发现平台,包括简单的服务注册、健康检查、故障检测和键/值存储。它建立在这样的前提下:即数据中心中的每个节点都运行一个Consul代理,该代理充当服务器或客户端,通过可扩展的gossip协议进行通信。这里有一个非常详细的Consul介绍,包括与类似的解决方案比较。Consul是用...翻译 2019-01-31 09:59:05 · 931 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.5.3 迁移-> 代码生成
Orleans 2.0中的代码生成Orleans 2.0中的代码生成得到了改进,缩短了启动时间,并提供了更具确定性、可调试性的体验。与早期版本一样,Orleans提供构建时和运行时代码生成。 在构建期间 - 这是推荐的选项,仅支持C#项目。在此模式下,每次编译项目时都会运行代码生成。构建任务将注入到项目的构建管道中,代码将在项目的中间输出目录中生成。要激活此模式,请将Microsoft....翻译 2019-02-10 11:05:54 · 322 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.7 资源 -> 博客
解决事务性能之谜Reuben Bond 12/7/2018 10:08:58 AM在抵达雷德蒙德并完成强制性的新员工入职培训后,我在Orleans团队的第一项任务,就是协助进行一些持续的性能调查,以确保Orleans的交易支持为内部用户做好准备,从而发布。我们在针对测试集群的压力/负载测试中发现了重大的性能问题和大量事务故障。很大一部分事务一直拖延到超时。 Dmitry Vak...翻译 2019-02-10 10:42:05 · 397 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.1 资源 -> 资源概览
资源贡献为那些想要为Orleans做出贡献的开发人员,提供一些注意事项和指南。学生项目我们为学生建议两种类型的项目。第一类包括探索性、开放式、面向研究的项目,旨在实现Orleans的新功能。第二类包括学生教育的想法。文档指南Orleans文档是在Markdown中构建的。我们使用一些简单的约定,来确保整个文档集中的风格是一致的。链接链接到Orleans团队成员和其他...翻译 2019-02-09 16:20:18 · 307 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.2 资源 -> 学生项目
学生项目我们为学生建议两种类型的项目: 第一类包括探索性的、开放式的、面向研究的项目,旨在实现Orleans的新功能。这些项目通常具有广泛的范围,适合硕士生或博士生或学生或最后一年学习的高级本科生。这些项目的最终目标是为Orleans贡献思想和设计。我们不指望这些项目中生成的代码能直接贡献给此代码库,但是若能贡献是再好不过的了。 第二类包括学生教育的想法。这些要么是可以构建在O...翻译 2019-02-09 17:22:26 · 513 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 9.3 资源 -> 文档指南
文档指南Orleans文档是在Markdown中构建的。我们使用一些简单的约定,来确保整个文档集中的风格是一致的。这些标准正在被引入。如果您对这些指南有疑问,请提出问题或拉取请求。如果您发现文档不符合指导原则,请进行修复,并提交一个拉取请求。此外,如果您使用的是Windows 10,您可以去应用商店找到例如这样免费的MarkDown编辑器。结构语言文档遵循美国英语的拼写。htt...翻译 2019-02-09 22:46:59 · 455 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.2 部署 -> 处理故障
处理故障注意:本文档中的所有以下指南均作为示例和思考。您不应该将它们视为解决问题的规范性解决方案,因为故障处理是一个特定于应用程序的主题。这些模式和其他模式,只有在充分了解正在使用的具体案例的情况下才有用。在分布式系统编程中,最困难的事情是处理故障。Actor模型及其工作方式,使得处理不同类型的故障变得更加容易,但作为开发人员,您要负责考虑可能的故障,并以适当的方式处理它们。故障的...翻译 2019-01-30 16:01:47 · 479 阅读 · 0 评论 -
Orleans 2.0 官方文档 —— 6.3.1 部署 -> Grain版本管理 -> 概览
grain版本管理警告本页介绍如何使用grain接口版本管理。Grain状态的版本管理不在此范围。概览在给定的集群上,silo可以支持不同版本的grain类型。 在此示例中,客户端和silo {1,2,3}使用grain接口A的版本1进行编译,silo 4使用A的版本2 进行编译。限制:无状态工作者无版本控制 流(Streaming)接口无版本控制启用版本控制默...翻译 2019-01-30 16:24:05 · 371 阅读 · 1 评论