架构问题:集中式服务器v / s本地化服务器方法

时间:2009-10-02 23:41:26

标签: performance architecture distribution

我的问题与正在运行的应用程序架构有关。目前,我们在每个盒子上本地安装服务器,并且该服务器从客户端获取数据并对其进行某种处理,然后根据输出数据生成输出和接收,并且输出数据存储在集中式数据库中通过每小时从客户端盒上的本地服务器上传。

我担心在每个客户端盒上本地安装服务器或使用集中式服务器的最佳方法是一种好习惯。当被问及有人建议如果我们使用集中式服务器而不是延迟时,速度和带宽会考虑因为每个客户端请求都会到达服务器,从而增加执行时间,减少带宽和延迟也会受到严重影响。

注意:

应用业务线是运输和供应链物流,应用程序生成从源到目的地运送包裹所需的所有路线,评级和其他标签相关信息。防爆。苹果,戴尔出货数百万包,所以这台服务器完成了生成标签,路由和评级细节的所有工作......希望这会让图片更加清晰:)

这里客户处理数以百万计的交易,因此请求的点击率非常高。

感谢。

4 个答案:

答案 0 :(得分:0)

客户端 - 服务器环境(包括Web)具有优点和缺点,因此应用程序的上下文至关重要。在您的方案中,您具有分布式服务器,以便平衡工作负载。但是,在维护每台服务器(软件,操作,可靠性等)方面,您有一个噩梦。集中式服务器提供更好的维护/监控等,但也会增加工作量。

您的情况的答案在很大程度上取决于您的应用程序的需求。虽然数以百万计的交易听起来很多,但设计良好的应用程序可以非常合理地处理这种负载。但是,您可能会在这些事务请求中发送大量数据,这可能会使该过程繁琐且不可靠。同样,应用程序上下文非常重要。

根据您提供的注释,听起来好像有一些本地服务器处理处理实时事务,但异步处理/汇总数据按时间表加载到中央数据库。这当然不是一种糟糕的方法,尽管它确实增加了环境的复杂性。

如果您能提供有关申请的更多详细信息,我将很乐意编辑我的回复。

希望这有帮助。

答案 1 :(得分:0)

这取决于您拥有的系统类型以及您的要求。

集中式服务器模型的一个优点是,您可以独立扩展客户端数量和服务器数量,以充分利用您的硬件,并且还可以在您的某个服务器崩溃时实现冗余。例如,SOA环境中的Web服务适用于此模型。这确实伴随着延迟的增加,如果你有SLA的实时系统需要在几毫秒的范围内响应,这可能不是这样的。

因为看起来你的响应时间非常快,所以你现在所拥有的是非常合理的解决方案。

如果您正在寻找一种使其更接近实时的方法,则可能会以不同的方式将数据同步到数据库中,也许消息队列可以正常工作。这可能会使事情变得更简单。

答案 2 :(得分:0)

这两种方法都可以成功运作。

存储转发系统的缺点是您不会在发货站的中心位置获得最新信息。更完全连接的集中式系统的技术缺点不一定是带宽和事务吞吐量,因为这些可以通过更多资源来缓解(这是成本问题,而不是技术问题),但是完全连接的系统具有更多的故障点并且没有本地后备选项。

在成本方面,虽然较胖的客户端具有较低的带宽成本,但管理客户端会增加管理成本。通常情况下,管理成本虽然可以减轻,但是劳动力成本和支持成本往往超过商品技术成本。

答案 3 :(得分:0)

正如其他人所说,这完全取决于你在做什么。

然而,要注意的最重要的事情是你跨越机器边界的次数。如果你可以最小化它,你将处于相当不错的状态。一般来说,我会尽可能避免使用RPC机制,因为这将是两个机器边界交叉:)

在每台本地计算机上安装“服务器”的问题很简单 - 如何保持一致状态?

此外,您的网络拓扑将是一个重要因素。如果一切都在本地子网上(理想情况是在同一个交换机上),除非您拥有可怕的网络代码,否则延迟不会成为问题。如果你正在浏览云端,那就是另一回事了。