c# - Orleans 应用程序如何从容器中获益?

标签 c# docker docker-swarm orleans

Microsoft Orleans 框架提供了一种无需太多复杂性即可构建分布式、大规模系统的方法。

缩放对于奥尔良来说是自然的;如果主机出现故障,则该主机上的事件颗粒会在其他地方重新激活,因为它们的状态会持久保存在存储中。

考虑到这一点,像 Docker 这样的容器服务如何应用于生产中的 Orleans 应用程序?如果 Orleans 已经默认缩放,为什么我们需要编排容器服务来进行缩放?

最佳答案

在主机出现故障时重新激活 grains 不是缩放 - 它是应用程序可靠性(自动修复)。

扩展适用于添加更多服务器和应用程序自动调整自身以使用此额外硬件的能力。 Orleans 提供应用程序自动缩放:如果您添加更多服务器,Orleans 将通过在新服务器上放置新 Cereal 来自动开始使用这些服务器。 但是仍然需要有人决定添加更多服务器。 Orleans 不会自动执行此操作。必须有一些(在 Orleans 外部)控制循环来测量 CPU 或吞吐量或其他一些指标,并决定添加更多服务器。 容器集群编排可以做到这一点。

容器的另一个好处是更易于管理 - 与直接使用软件相比,将包含所有软件的整个容器“提升并转移”到另一个云提供商或本地更容易,因为容器可以捕获所有软件依赖项。这与 Orleans 完全无关,只是容器的一般优势。

关于c# - Orleans 应用程序如何从容器中获益?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251584/

相关文章:

docker - 在 Minikube 中运行本地 docker 镜像

Docker 多个相同端口问题

docker - 在 docker swarm 上搭建多节点 Kafka 集群

c# - 覆盖 RichEditBox 上的键盘快捷键?

c# - 关于流的一些事

user-interface - Spark Docker - 无法访问资源管理器的 Web UI - Mac PC

docker - 我可以在不使用 bash 脚本的情况下使用 docker-compose 来检查容器,然后将文件从容器复制到主机吗?

c# - MVVM 交替事件模式

c# - 为什么我不能创建这个隐式类型数组?

docker - 如何列出ubuntu:16.04 docker容器中的文件?