0

Service Fabric을 사용하여 웹 데이터 크롤러를 개발 중입니다. 저는 Stateless 서비스 파이프 라인으로 크롤링 프로세스를 분리했습니다. 첫 번째 서비스가 HTML을로드합니다. (S1) 두 번째 것은 데이터를 파싱합니다. (S2) 세 번째 결과를 DB에 저장하고 추가 작업을 수행합니다. (S3) HTML 코드가 S3에서 S2로 이동합니다 (의도적으로 세 번째 서비스에서 HTML 필요). HTML 자체가 데이터의 큰 금액이며, 내가서비스 패브릭 서비스간에 대용량 데이터를 반 패턴으로 이동합니까?

[assembly: FabricTransportServiceRemotingProvider(MaxMessageSize = 1073741824)] 

설정을 강요하고 있다는 문제는이 디자인 안티 패턴인가? HTML로 모든 작업을 단일 서비스에서 수행해야합니까?

답변

3

단일 서비스를 여러 서비스로 나눌 때 항상 대역폭 + 대기 시간 비용이 있습니다. 비용이 있기 때문에이를 수행 할 정당한 이유가 필요합니다. 너는 하나도 갖고 있지 않은 것 같아, 적어도 너는 하나도 언급하지 않았다.

아무런 이유없이 문제를 만드는 것은 안티 패턴입니다.

할 경우이 작업을 서비스로 나눌 수있는 좋은 이유가 있다면이 HTML을 보내는 데 드는 비용을 정당화 할 수 있습니다. 하지만 더 이상 필요하지 않은 다른 서비스 분해를 선택해야 할 가능성이 큽니다.

1

좋은 디자인은 항상 데이터와 요구 사항을 잘 이해하게됩니다. S1, S2, S3, S4간에 어떤 종속성이 있습니까? 그들에게 별도의 서비스가 필요하다면.

서비스와 HTML간에 종속성이 있습니까? 이 HTML은 변경 될 것이며 변경되면 여러 서비스가 업데이트 될 것입니까?

현재 수행중인 작업에 IO 비용이 있습니까? 전송하는 데 얼마나 많은 시간을 할애하고 프로세스에 걸리는 시간을 정하십시오.