问题标签 [orleans]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 将特定的 Grain 设置为每个 Silo 最多有 n 个实例
我正在努力扩展现有的基于 Selenium 的 Web 应用程序测试系统的功能。系统目前一次只能执行一项测试。我想通过为测试执行添加一些并行性来增加系统的吞吐量。
为此,我一直在研究不同的技术,并对 Microsoft 的 Orleans 感兴趣。但是,在阅读了 Orlean 的文档一天后,我找不到该技术是否支持我需要在一台计算机上最多运行特定的可扩展 Actor 的场景。
在我的情况下,它将是执行测试的演员。通常使用 Selenium,测试执行需要创建一个 WebDriver 对象,然后打开并控制一个 Web 浏览器实例。这些网络浏览器都必须作为单独的进程打开,而不仅仅是同一进程的新窗口。没有上限,假设一个包含 3 个节点的集群和一个包含 60 个测试的测试计划,我将在每台机器上同时打开 20 个 Web 浏览器,这可能会导致性能大幅下降或完全崩溃。我希望系统每台机器的上限为 3 个测试执行参与者,并将其余测试存储在队列中,仅在另一个工作参与者完成测试后运行它们。
我将如何使用奥尔良技术来实现它?
asp.net-web-api2 - WebAPI 作为 Orleans Service 的前端不接收请求
我正在尝试为 Orleans 服务制作 WebAPI 前端,但我的 WebAPI 没有收到任何请求
我按照https://dotnet.github.io/orleans/Tutorials/Front-Ends-for-Orleans-Services.html中所述的教程进行操作。
还尝试运行 Orleans GPSTracker 示例,但我有同样的问题。
我在 VisualStudio 2015 4.5.2 上使用 Orleans 版本 1.3.0,并使用 Orleans 1.3.1 获得了相同的结果。
如果我使用控制台应用程序作为奥尔良客户端,它可以正常工作。
最近我尝试了 VisualStudio2017RC 4.6.2 并且我的 WebApi 客户端工作正常。
我错过了什么?
c# - 即时代码更新奥尔良
首先我是新来的奥尔良,但我已经阅读了一些文档,我不得不说这个项目看起来很有前途。我有一个关于如何在生产环境中更新 Silos 上的谷物代码的问题。
我知道 Erlang 有一个演员模型,并且在 Whatsapp 中他们可以执行代码的即时更新。这在奥尔良目前是否可行,还是我必须停止孤岛并部署新代码?如果是这样,这可以通过编程方式完成吗?
谢谢!
c# - Akka.net 与奥尔良的表现
嗨,我正处于为即将开始的项目选择演员框架的早期阶段。据我所知,Orleans 旨在以牺牲一些性能为代价,尽可能地减轻开发人员的痛苦。在 Akka.net 中,我知道 actor 大小是 400 字节如果我是对的,并且您必须去低级别处理集群连接和由 orleans 管理的事情,但会给您带来出色的性能。
我在互联网上为奥尔良找到的唯一性能指标是:
在 Microsoft Azure 上使用 X-Large VM(8 个 CPU 内核/14 GB RAM),每个 VM 一个接收器:
一个grain每秒最多可以处理1000个请求。silo 每秒最多可处理 10,000 个请求。一个筒仓将容纳 100,000 个活性谷物。
对于主页中的 Akka.net :
单台机器上 5000 万条消息/秒。内存占用小;每 GB 堆约 250 万演员。
我想知道在 Akka.net 场景中使用了哪些机器以及它们如何执行 Grain vs Actor(就每秒请求数以及您在 GB 的 RAM 中或多或少可以容纳多少个 grain/actors 而言)和一粒粒在记忆中的重量是多少。
根据 Orleans 和 Akka.net 的报价,看起来 Akka.net 的性能要好得多,但我想进一步比较两者的性能。
我发现了这个Akka.Net VS MS Orleans Comparison和Orleans and Akka Actors: A Comparison但没有解决性能问题。
谢谢!
c# - 添加 Serializable 会导致 Xslt 抛出 StackOverflowException
我正在努力让奥尔良与我们的网站合作。我已经启动了 Silos,我的网站也启动了,但是当我尝试调用 grain 时,我意识到我忘记将 [Serializable] 属性添加到我的类中。
这样做之后,我在一个没有引用奥尔良的单独文件中调用 XslCompiledTransform 上的 Load 而得到了 StackOverflowException。此 StackOverflowException 在网站启动时发生,并且该行在添加 Serializable 属性之前成功运行。
是否有任何我可能遗漏的不明显的原因可以解释这两件事是如何相关的?
azure - 在不使用云服务的情况下在 Azure 上托管 Orleans 的选项有哪些?
我想在 Azure 上托管一个奥尔良项目,但不想使用(经典)云服务模型(我想要一个 ARM 模板项目)。网络应用程序示例使用旧的网络/工作者模型 - 最佳选择是什么?有一个 Service Fabric 示例 - 这是最好的途径吗?与 web/worker 模型最接近的等价物是 VM Scale Sets - 这是一个经过良好测试的选项吗?
orleans - Orleans Grain - hold reference vs. use factory every time
If I have a grain (or a client) that is going to send messages to another grain often (several times per minute for hours on end), what is the best practice for accessing that grain? Do I get it from the factory, use it, and discard it - getting a new grain reference every time? Or in this case should I "hold" a reference to the grain, only getting it from the factory once?
orleans - 通过 Microsoft Orleans 中的 GUID 检查谷物是否存在
您如何检查特定 ID 是否已经存在颗粒?
GetGrain()
考虑到下面将创建一个新的玩家颗粒,如果它不存在,我传入的 Id ,我不知道如何检查一个是否已经存在。
c# - Npgsql 在异步环境中无限期锁定线程
我正在努力寻找我在使用 C# 流行的 Postgres 库 Npgsql 时遇到的问题的答案。我不确定这是否完全是 Npgsql 的问题,但我怀疑这是因为我的代码非常简单。我看到的问题是:当我有时而不是一直在 Npgsql 上调用异步方法时,线程会被锁定。据我所知,这个问题是随机发生的。结果,由于我在 Microsoft Orleans 环境中运行(这可能与寻找解决方案有关),线程无限期地锁定,从而使 Orleans 的一个工作线程无法处理工作。当我进行更多的 Npgsql 调用时,这些锁定的线程会堆积起来,最终奥尔良系统会因线程耗尽而窒息。
所以我真的不知道问题可能是什么,但是因为锁定总是发生在同一个方法中,而且因为它似乎发生在 Npgsql 的某些子例程中,所以我认为进一步调查 Npgsql 是公平的。
这是我在奥尔良存储提供程序中使用的代码(处理系统持久层的特殊类。)
这是 ProtobufSQL 类的源代码:
我真的不确定该怎么做。希望有人在那里有一些知识可以帮助我继续!谢谢。
orleans - Microsoft Orleans 集群的 Chaos Monkey 测试
我正在寻找一些有助于为奥尔良集群设计“混沌猴子”测试方法的指导。
我是新手,所以我能想到的是一个可以随机重新启动筒仓、停止/移动谷物以及执行其他破坏性操作的脚本。类似于Induce Controlled Chaos in Service Fabric Clusters 的东西。
我将非常感谢通过分享帮助我加快速度
- 关于奥尔良集群混沌测试的好文章、白皮书、博客文章
- 使用诸如 TestingSiloHost 之类的内置设施进行混沌测试的示例
- 相关的奥尔良 Contrib 项目
- 在虚拟机、AWS、Azure、谷歌云中托管时可以提供帮助的更高级别的工具/API
谢谢,