分布式应用程序中的决策

Posted

技术标签:

【中文标题】分布式应用程序中的决策【英文标题】:Decision making in distributed applications 【发布时间】:2008-08-30 05:41:38 【问题描述】:

对于分布式应用程序,您有很多客户端和一个主服务器,您应该:

让客户端变笨,让服务器变聪明:客户端快速且非侵入性。仅在 1 个地方需要业务规则 让客户端聪明而服务器愚蠢:尽可能多地从服务器上卸下负载

附加信息:

客户端收集大量关于他们所在计算机的数据。服务器必须分析所有这些信息以确定这些计算机的运行状况 客户端计算机的所有者脾气暴躁,如果客户端开始消耗过多资源,就会关闭客户端(从而否定分布式应用程序帮助诊断问题的目的)

【问题讨论】:

【参考方案1】:

您应该尽可能多地进行客户端处理。这将使您的应用程序能够比处理服务器端更好地扩展。为了解决您喜怒无常的用户问题,您可以考虑让您的客户端进程以非常低的优先级运行,这样用户的性能不会明显下降。

【讨论】:

【参考方案2】:

在客户端-服务器设置中,如果您关心安全性,您应该始终假设客户端可能已受到威胁而进行编程。即使没有,也总是存在有人使用旧版本的客户端、使用竞争或修改版本的客户端,或者只是网络连接有点问题的风险。

因此,当您在客户端上做尽可能多的工作、处理并将信息编组为正确的形式时,服务器需要对客户端提供的任何内容进行彻底的完整性检查。

所以我猜的答案是“两者”。

【讨论】:

【参考方案3】:

服务器必须分析所有这些 确定这些健康状况的信息 电脑

这可能是迄今为止解释您的应用程序的最大线索。您能否就该应用程序在此分布式环境中寻求实现的目标提供更详细的简报?我们甚至不知道客户端处理是磁盘 I/O 还是处理器密集型。您如何设计解决方案取决于需要做什么来帮助用户/企业完成他们的工作和目标。

【讨论】:

以上是关于分布式应用程序中的决策的主要内容,如果未能解决你的问题,请参考以下文章

中科大教授吴锋:多智能体的分布式在线决策 | 腾讯AI Lab学术论坛演讲

springcloud

Spring Cloud构建微服务架构——服务注册与发现

Spring Cloud构建微服务架构服务注册与发现

Spring Cloud主要组件应用实例

Spring Boot/Spring CloudESBDubbo