상태가 많은 웹 서비스를 사용하는 것이 잘못된 프로그래밍이 잘못되고 왜 허용됩니까?

StackOverflow https://stackoverflow.com/questions/988819

  •  13-09-2019
  •  | 
  •  

문제

우리 조직에 상태가 많은 웹 서비스가 필요합니다. 그러나 온라인에서 읽은 모든 곳에서는 상태가 많은 웹 서비스를 구축하는 것은 프로그래밍이 좋지 않지만 그 이유는 아무것도 말하지 않습니다. 나는 그것에 대해 무엇이 그렇게 나쁜지 이해하지 못한다고 생각합니다. 또한 왜 그들이 당신이 웹 서비스에 상태를 가질 수 있도록 주변을 주는지 이해하지 못합니다.

그래서 제 질문은 왜 상태가 많은 웹 서비스를 사용하는 것이 잘못된 프로그래밍입니까? 왜 허용됩니까?

도움이 되었습니까?

해결책

웹 서비스의 전체 목적은 확장 가능한 방식으로 한 트랜잭션에서 기능을 전달하는 것입니다. 이것은 물건을 단순하고 원자력을 유지하는 것을 의미합니다.

작업을 수행하기 위해 여러 번 전화를해야 할 때는 거래를 중단 할 수있는 잠재력이 큰 가능합니다. 클라이언트가 돌아오고 있습니까? 완료 되었습니까? 거래는 얼마나 오래 열려야합니까? 그들이 충돌 했습니까? 롤백을 어떻게 처리해야합니까?

이러한 질문에 대한 답변은 서비스를 실행하는 데 필요한 자원에 급격한 영향을 줄 수 있습니다. 그렇기 때문에 모든 사람이 한 번에 모든 작업을 수행하는 것이 좋습니다.

다른 팁

내가 생각할 수있는 몇 가지 이유는 다음과 같습니다.

  1. 상태를 유지하는 비용은 서버 측만 통행해야합니다. 서비스 소비자는 거의 웹 브라우저가 아니므로 쿠키가 없습니다. 이로 인해 서버 성능을 낮추고 설계 복잡성을 향상시킵니다.

  2. 서비스 소비자는 멍청한 브라우저가 아닌 지능형 프로그램입니다. 따라서 프로그램은 (거의 항상) 자체 상태를 유지합니다. 다시 말해, 서비스를 제공 할 때 소비자는 원하는 데이터를 정확하게 요청합니다. 서버에서 상태를 유지하는 것은 쓸모없고 불필요 해집니다.

  3. 거래 - 서비스는 클라이언트가 대부분 지능적이기 때문에 시스템의 매달려있는 지점이며, 상태의 변경 사항을 언제 알 수 있기 때문입니다. 즉, 상태를 유지하는 경우 서비스 호출 사이에 대기하여 거래 작업을 완료해야 할 수도 있습니다. 그리고 고객이 다음 서비스 호출을 할 것이라는 보장은 전혀 없습니다.

많은 이유가 있지만, 이것들은 내 머리 꼭대기에서 생각할 수있는 것들입니다. :)

나는 그것이 일종의 신화라고 생각합니다

Google이 상태의 웹 애플리케이션을 확장 할 수있게 할 수 있다면 왜 우리가 상태의 웹 서비스를 확장 할 수 없는가. 확장 성을 줄이는 것은 앱 서버에 관한 것입니다.

웹 사이트 나 웹 사이트 서비스를 사용하더라도 궁극적 인 목표는 더 나은 서비스를 제공하는 것입니다. "Stateful"이 서비스를 개선하는 경우 주저하지 마십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top