Design patterns 在服务结构服务之间移动大数据是一种反模式吗?
我正在使用服务结构开发一个web数据爬虫。 我已经将爬行过程划分为无状态服务管道。 第一个服务加载HTML。(S1) 第二个从中解析数据。(S2) 第三个将结果保存到数据库中并执行附加操作。(S3) HTML代码从S1移动到S2,而不是S3(根据设计,我需要在第三个服务中使用HTML)。 HTML本身就是一个大数据量的问题,我不得不设置Design patterns 在服务结构服务之间移动大数据是一种反模式吗?,design-patterns,azure-service-fabric,service-fabric-stateful,service-fabric-stateless,Design Patterns,Azure Service Fabric,Service Fabric Stateful,Service Fabric Stateless,我正在使用服务结构开发一个web数据爬虫。 我已经将爬行过程划分为无状态服务管道。 第一个服务加载HTML。(S1) 第二个从中解析数据。(S2) 第三个将结果保存到数据库中并执行附加操作。(S3) HTML代码从S1移动到S2,而不是S3(根据设计,我需要在第三个服务中使用HTML)。 HTML本身就是一个大数据量的问题,我不得不设置 [assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = 1073741824)]
[assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = 1073741824)]
这种设计是反模式吗?我是否应该在单个服务内使用HTML执行所有工作?在将单个任务划分为多个服务时,总会涉及带宽+延迟成本。因为有成本,你需要一个好的理由去做。你似乎没有,或者至少你没有提到 无缘无故地制造问题是一种反模式
如果您确实有一个很好的理由将此工作划分为服务,那么您可以证明发送所有这些HTML的成本是合理的。不过,更可能的情况是,您应该选择一个不需要的不同服务分解。在多个服务之间划分单个任务时,总会涉及带宽+延迟成本。因为有成本,你需要一个好的理由去做。你似乎没有,或者至少你没有提到 无缘无故地制造问题是一种反模式
如果您确实有一个很好的理由将此工作划分为服务,那么您可以证明发送所有这些HTML的成本是合理的。不过,更可能的情况是,您应该选择不需要的不同服务分解。好的设计总是伴随着对数据和需求的良好理解。 S1、S2、S3、S4之间是否存在依赖关系?如果有必要,它们将是独立的服务 服务和HTML之间是否存在依赖关系。这个HTML是否会被更改,如果更改会导致多个服务被更新
你所做的事有成本吗?传输所花费的时间以及传输过程所花费的时间。一个好的设计总是伴随着对数据和需求的充分理解。 S1、S2、S3、S4之间是否存在依赖关系?如果有必要,它们将是独立的服务 服务和HTML之间是否存在依赖关系。这个HTML是否会被更改,如果更改会导致多个服务被更新 你所做的事有成本吗?您花费了多少时间来传输,以及您的过程花费了多少时间