【问题标题】:Multiple dedicated web services or one centralized web service?[.net]多个专用 Web 服务还是一个集中式 Web 服务?[.net]
【发布时间】:2017-10-11 23:54:59
【问题描述】:

解释场景:我们目前的任务是创建一个 Web 服务架构和设计方法来处理企业级业务。试想一下,我们的一个数据库中只有一个集中式网站系统,其中包含数千个页面和 300 多个表(总共超过 500 个 dbo)。 因此,我们正在考虑将这种结构模块化,并将其用于多种设备(多平台)的 Web 服务方法。 我已经详细阅读了其他问题:

Data Access Layer as a web service -- Is this a good idea?

Web Service or WebServices

One web service per module, or one web service overall?

等等。但我需要准确地做出这个决定,因为这是一个企业级问题。因此,我需要根据以下一些软件“-ilities”主题来比较这两个选项:

1-可扩展性

2-可维护性

3-安全性**

4-可扩展性

最后但同样重要的是:性能**(这是至关重要的)

如果有人在真实事实和以前的经验方面有更好的想法,我愿意接受除此方法之外的建议。我也想听详细的解释(我不介意阅读太多)

【问题讨论】:

    标签: .net web-services wcf architecture


    【解决方案1】:

    我建议使用微服务架构。它更接近于“每个模块一个 Web 服务”解决方案。如果您拥有可靠的 CI 流程,微服务将简化您的开发流程。这种架构是可扩展的、可维护的、安全的、可扩展的和高性能的。但是,所有这些都应该构建到您可以为您的企业级解决方案构建的框架中。现在的问题是如何实施?这取决于平台的选择。

    微软 Azure: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices

    亚马逊网络服务: https://aws-de-media.s3.amazonaws.com/images/AWS_Summit_Berlin_2016/sessions/pushing_the_boundaries_1300_microservices_on_aws.pdf

    我在这里尽量保持简短,因为我不知道您打算在哪个平台上实施您的解决方案,而且您可以阅读很多关于微服务的信息,只有 google 微服务。如果您对实施有具体问题,请告诉我,我可以提供帮助。

    【讨论】:

    • 我正在阅读这两篇文章,这似乎是一种很有前途的方法,这种架构非常先进,但是如何在硬件方面资源有限的独立 Windows Server 中处理这个问题(不是那么糟糕但有限) .以及使用 ADO.Net 和数据实体以及相同的业务类域在那些微服务上进行通用消费的 DAL 的设计呢?这是一个正确的方法还是我们应该改变整个设计?我的意思是,如果这些服务在使用相同 DLL 的同一台服务器上运行是否正确,因为这在我看来是一个非常独立的架构。
    • 我认为这甚至可以在独立的 Windows 服务器上工作,通过虚拟化这不是不可能实现的。但这可能是费力的。使用 Azure 或 AWS 会更容易。我会根据项目预算、现有服务器数量、应用程序必须支持的负载以及开发团队的结构(小团队效果最好)来做出这个决定。我不会将 DAL 作为单独的微服务,我相信作为服务的 DAL 层将成为一个太大而无法管理的宏服务,并且每个服务都会依赖它,我会避免它。
    • 因此您建议为每个服务实施 DAL。常见或类似的 CRUD 任务呢?假设我正在尝试获取信息以从模块构建一个对象,但可以从一个 GET DAL 进程中检索此信息。您是否建议调用具有不同 DAL 层的两个或多个服务?
    • 是的。部署后,每个服务都应该有自己的 DAL 层。 DAL 中的所有 CRUD 操作都可以使用泛型在 DAL 基本实现(排序框架)中编写。如果任何微服务需要任何专门的 DAL 操作,可以将它们写入相应微服务的 DAL 层。
    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多