상태가없는 프로토콜을 사용하는 것이 더 나은 것으로 간주됩니까?

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

  •  06-07-2019
  •  | 
  •  

문제

나는 상태의 프로토콜이 쿠키와 같은 '에뮬레이션 된 상태'를 덜 덜어 준다는 것을 알 수 있습니다.

그러나 구현이 정확하고 다시 연결되도록 테스트가 훨씬 어려워지고 세션 연속이 처리하기가 매우 어려울 수 있습니다.

항상 무국적 프로토콜을 사용하는 것이 더 나은 관행으로 간주됩니까, 아니면 실제로 도메인에 구체적입니까?

상태가 높은 프로토콜을 다룰 때 인증이 더 쉬워 지지만 상태가 많은 프로토콜을 사용해야하는 다른 이유가 있습니까?

도움이 되었습니까?

해결책

응용 프로그램에 상태가 얼마나 중요합니까? 다른 기계간에 일정한 데이터 흐름이 필요합니까, 아니면 버스트를하는 것이 더 유용합니까? IP Telepony 유형 응용 프로그램을 작성하는 경우 상당히 상태가 많은 것을 원할 것입니다. Sationeless로 도망 갈 수 있다면 저렴하고 쉽게 할 수 있습니다. 연결의 끝이 삭제되거나 연결 자체가 다운되면 데이터 손실의 위험이 높아지는 반면, 무국적 연결을 사용하면 잠시 기다려야 할 가능성이 높아지고 시도하면됩니다. 다시.

그것들은 실제로 다른 작업을위한 다른 도구이지만, 온라인에서 Sationeless Technologies의 편의성과 편리함을 감안할 때 옵션이있을 때 그 방향으로 보는 것이 논리적입니다.

다른 팁

무국적 장점 :

  1. 높은 확장 성 (모든 노드에 요청을 보낼 수 있고 언제든지 노드를 추가 할 수 있습니다).
  2. 고 가용성 (하나의 노드가 실패하면 손실 된 상태가 없으며 다른 노드에 대한 요청을 재현합니다).
  3. 고속 (상태가 없으므로 결과는 캐시 가능합니다)

나는 그것을 도메인을 구체적으로 고려할 것이다. 핑과 같은 도덕적 동등한 글을 쓰는 경우 무국적 프로토콜이 올바른 선택입니다. 반면에, VNC를 쓰고 있다면, Stateful은 확실히 갈 길입니다.

언제 선택 해야하는지에 대해서는 두 가지를 염두에 두어야합니다. 첫째, 구현 선택은/또는 문제 공간이 연속체입니다. 모든 실제 작업에는 적어도 약간의 상태가 있습니다. 문제는 양쪽 끝에서 그것을 추적 할 수있는 번거 로움의 가치가있는 가치가있는 오버 헤드입니다. 둘째, 당신은 일반적으로 단일 프로토콜이 아닌 프로토콜 스택을 다루고 있습니다. 모든 것이 올바른 수준으로 살리되도록하면 사물을 엄청나게 단순화 할 수 있습니다.

상태는 후속 요청에 따라 상태가 1 서버에서 다른 서버로 전송 될 필요가 없기 때문에 무국적 프로토콜이 클러스터링하기가 더 쉽습니다.

나는 Stateful과 Sationeless의 모든 설계 문제에 대해 개인적으로 익숙하지는 않지만, NFSV4는 15 년 동안의 이전 버전의 NFS가 무국적자 인 후에 상태가 많다는 것을 알고 있습니다.

몇 분의 인터넷 검색은 NFSV4의 상태에 대해 이야기하는 여러 기사와 블로그를 공개합니다. 이것은 관련된 일부 디자인 문제에 대한 흥미로운 독서 여야합니다.

무국적 프로토콜의 또 다른 좋은 점은 서버 장애 조치 상황 및/또는 클러스터링/로드 밸런싱 상황을 처리하는 것이 더 쉽다는 것입니다.

상태가 더 좋습니다. 그러면 항상 상태를 보낼 필요가 없습니다. 그런 다음 프로토콜이 더 간단 해집니다.

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