【问题标题】:Optimal architecture solution最优架构解决方案
【发布时间】:2010-01-29 09:42:51
【问题描述】:

我正在构建一个应用程序,它(当前)由一个 Web 应用程序 (ASP.NET MVC) 和两个控制台应用程序组成。

Web 应用程序只是用户界面。第一个控制台应用程序是以指定时间间隔运行的服务,它会抓取多个网页。第二个控制台应用程序负责通过邮件从我的“下载器”发送信息。我的控制台应用程序在不同的计算机上运行。 UI 只显示下载器的结果。

过程是这样的:

当用户在 UI 中添加要抓取的 URI 时,该 uri 将保存到 SQL Server 表中。我的“下载器”然后选择所有 uris 并将它们刮掉并将其插入结果表和邮件队列表。我的“邮件发件人”然后从邮件队列表中选择所有行并将信息发送给用户。

这是“最佳”解决方案,还是我可以以任何方式对其进行优化?我觉得现在很难维护。也许我可以使用 WCF 在我的应用程序之间直接通信?

控制台应用程序在不同计算机上运行的原因是“下载器”需要连接到 VPN,我无法从中发送邮件。

【问题讨论】:

  • 哪些维护任务很难或很耗时?
  • 我不知道“最佳”,但它似乎是一个合理的解决方案。正如 vincebowdren 所建议的那样,如果某些方面给您带来麻烦,那么如果您向我们指出它们可能会有所帮助。

标签: c# optimization n-tier-architecture


【解决方案1】:

您可以使用 NServiceBus 在服务和 Web 应用程序之间发送消息。

【讨论】:

  • 我投票赞成并加入 RabbitMQ rabbitmq.com 只是因为它比 nServiceBus 更容易启动。
  • NServiceBus 看起来很吓人,但是...我只是使用它,它可以工作而且...很容易上手。
  • 感谢您的回答,+1。我将研究 NServiceBus。
【解决方案2】:

在下面构建一个带有 RabbitMQ 消息队列的 WCF 服务器。 http://www.rabbitmq.com/dotnet.html

如果需要,这可以为您提供卓越的性能和消息持久性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2011-05-15
    • 2015-07-27
    • 1970-01-01
    相关资源
    最近更新 更多