gpt4 book ai didi

orleans - 实际上分布在奥尔良的哪一部分?

转载 作者:行者123 更新时间:2023-12-05 01:29:29 24 4
gpt4 key购买 nike

文档中有几个令人困惑的地方,让我很难理解在 Orleans 中跨集群的分布究竟是如何发生的。因此,问题。

问题#1

Orleans 声称有一个内置的 distribution跨多个服务器分布的能力。在我看来,Orleans 本身可以充当负载均衡器,并且可以自动横向扩展。因此,如果我将 Orleans 应用程序部署到多个服务器,那么服务发现和负载管理应该会自动发生,对吗?

在这种情况下,为什么有些文档和文章建议使用其他 tools ,像 Ocelot 或 Consul,作为 Orleans 集群的单一入口点?

问题#2

我想在多个服务器(如 Redis 或 Apache Ignite)上使用简单但分布式的内存存储,我想知道是否可以使用简单的粒度作为这种数据存储?

假设,一个 grain 将存储一系列餐厅,而另一些 grain 将跟踪所选餐厅的最后 1000 名访客。我能否将这 2 个 grains 作为单例集合仅激活一次,向每个集合添加或删除记录,并将这 2 个 grains 用作内存存储,均匀地供集群中的所有节点使用?另外,如果答案是肯定的,我是否需要为这些集合添加锁,或者每个 grain 总是存在于一个线程中?

最佳答案

  1. 服务发现和负载管理确实是自动发生的。领事不是强要求。唯一的外部需求是 Membership 表提供者——Orleans Clustering 内部使用的东西。 Orleans 已经内置了许多内置的 Membership 表提供程序。例如,Azure 表存储。您所需要的只是配置 Orleans 以使用它,当然还有 Azure 存储帐户。 Consul 是 Membership 表提供程序的另一种替代方法,而且还有更多。

另一个没有内置的东西是基础设施扩展。如果你的服务需求增加,有些东西需要要求基础架构提供商(Cloud Provider)添加更多的Servers。添加服务器后,Orleans 也会自动调整新服务器之间的工作负载和负载平衡。但是弄清楚需要更多的服务器并添加它们并不是由 Orleans 自己完成的(可能有一些外部贡献的工具可以做到这一点。也许 K8 可以配置来做到这一点?我对此并不完全确定)。

  1. 是的,您可以将这 2 个 Cereal 用作内存存储,就像您写的那样。不,你不需要使用锁。所有 Cereal 都是单线程的。

关于orleans - 实际上分布在奥尔良的哪一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67756387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com