【问题标题】:querying multiple servers查询多个服务器
【发布时间】:2010-12-21 13:37:41
【问题描述】:

我正在构建一个 Web 服务,它需要查询 1 到 n 个文件服务器,并因此接收多个文件。有没有人有这样做的好主意? Threads 会做得很好吗? 如果与某些服务器的连接时间比其他服务器长怎么办?我如何知道我是否真的拥有所有查询的文件?

谢谢

【问题讨论】:

    标签: file


    【解决方案1】:

    你的问题很笼统,我的回答也是如此,无论如何我希望它会有用。

    我会说你有两个选择:

    1. 使用异步模型。您打开到 N 个文件服务器的连接,并设置一个回调(或一个事件),只要收到来自一个服务器的数据就会触发(通常这些回调将在新线程中调用,但请查看您的工作框架的文档)。您从传递给回调/事件的数据中获取连接标识符,并更新相应的文件。

    2. 使用同步轮询模型。打开到 N 个文件服务器的连接,然后进入一个循环,在其中轮询每个连接以获取新数据;当新数据可用时,您更新相应的文件。当所有文件下载完成后退出循环。

    根据您如何知道所有文件何时完成,没有自动的方法。您需要建立一个您和服务器都知道的约定,以了解如何知道文件已完全发送。选项包括:服务器在文件完成时关闭连接(不是很安全,因为连接可能会意外关闭),服务器在文件内容之前发送文件大小,文件结束由特殊字符序列表示(这在文件序列结尾的字节通常不会出现的文本文件上效果更好)。

    【讨论】:

    • 感谢您的回复。我正在使用 C#/VS2008。您是否有任何接收数据时触发的回调/事件的真实示例?
    • 查看这个答案的例子:stackoverflow.com/questions/686618/…
    猜你喜欢
    • 1970-01-01
    • 2014-10-13
    • 2013-02-03
    • 2022-06-10
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    相关资源
    最近更新 更多