首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用OLOR良实现分布式数据存储的分布式计算?

如何利用OLOR良实现分布式数据存储的分布式计算?
EN

Stack Overflow用户
提问于 2019-02-25 15:32:49
回答 1查看 1K关注 0票数 3

我对分布式计算和新奥尔良很陌生,最近对它们做了一些研究,但不确定新奥尔良是否可以用于新的任务。

这个任务就是,有很多项目属于不同的人,每个项目都有大量的数据。对于每个项目,以下步骤如下:

  1. 通过计算得到新的数据,将原始data.Raw数据存储在分布式数据库中,然后将新的数据存储回数据库。MQ或Redis可用于提高性能。
  2. 从新数据中计算摘要值,并将摘要值保存回数据库。

我的问题是:

  1. 服务器/谷物负载平衡:没有唯一id的 Grans。为了负载平衡,最好在所有服务器上运行多个粒度,每个粒度只从数据库获取数据并进行计算,不需要创建一个带有id的实例。对于新奥尔良来说,除了无国籍的谷物之外,没有唯一身份的谷物是不允许的,而无国籍的谷物只是在本地运行。
  2. 长期运行计算:计算和总结可能需要几秒钟或几分钟才能完成工作,建议使用谷物吗?在文件中似乎不推荐。
  3. 顺序执行:首先从原始数据计算新值,然后根据新值进行汇总。这意味着,在计算完所有的谷物之后,必须运行用于汇总的谷物。
  4. 数据缓存:谷物通过本地网络从数据库中获取数据并保存到数据库中,对新奥尔良是否有减少数据传输的建议?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 06:06:19

  1. 服务器/谷物负载平衡:无状态工人谷物很好地用于自动扩展。如前所述,呼叫将被路由到当前筒仓上的谷物(如果调用来自客户端,则路由到网关筒仓)。对于长期运行的任务,扩展实际上仅限于与CPU核心数量相匹配的多个粒度。但是,听起来似乎您可以/想要控制缩放。我建议使用Guid.NewGuid()路由到您自己的“无状态”谷物。或者,将工作发布到流中。流事件将由所有筒仓上的不同代理提取,并在整个集群中处理。
  2. 长期运行计算:--这取决于您的工作和代码的具体情况,但总的来说,我不认为新奥尔良的“转折”适合长期运行的任务。新奥尔良执行模型为集群中的每个CPU核心提供了一个线程。如果你的新奥尔良线程都被长期运行的谷物调用锁定,其他的谷物调用可能会开始失败/超时。你可以通过将长期运行的任务分解成更小的块来解决这个问题。或者,您可以在单独的线程中运行长期运行的任务(请参阅外部任务和粮食)。如果需要,一定要查看如何调整默认的谷物调用超时。
  3. 顺序执行:,您可以让计算原始数据值的谷物在作业完成时向计算摘要的粒度发送通知。如果可以/应该以增量方式计算摘要,那么只需计算每个通知的摘要即可。但是,如果您需要等待所有作业的完成,那么只需使用计算摘要的粒度就可以跟踪那些仍未完成的作业。然后,只在收到所有通知后计算汇总。
  4. 数据缓存:--您可以在一个谷物实例变量中缓存数据。这通常会减少所需的数据库调用数量,因为后续的谷物调用将在一段时间内路由到相同的激活状态(直到它处于空闲状态并停止活动)。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54869645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档