낮은 대기 시간 메시징에 대한 휴식.
문제
클라이언트 서버 시스템에 대한 REST 아키텍처를 사용하는 사람들이 더 보이지 않는 이유는 무엇입니까? 소켓, TIBCO RV 또는 EMS 또는 MQ를 사용하는 사람들이 보이지만 기본적인 REST 아키텍처를 많이 보지 못했습니다.
풋 / 낮은 대기 시간을 통해 클라이언트 / 서버 통신을 위해이 아키텍처를 사용하지 않는 이유를 아는 사람이 있습니까?
해결책
나는 반드시 그것을 피할 것이라는 것을 모르겠지만, 높은 지연 시간이 적은 대기 시간 서비스를 위해 그것을 선택하지 않을 수있는 몇 가지 이유를 생각할 수 있습니다. 먼저, 귀하의 서비스에 메시지를 받으려면 전체 웹 스택을 처리해야합니다. 이것은 메시지를 지연시키는 많은 불필요한 계층과 서비스를 소개 할 수 있습니다. 사용자 정의 서비스는 서비스 자체가 요구하는 프로토콜 계층 만 지원하면됩니다.
둘째, 서비스가 웹 서버에서 호스팅되는 유일한 서비스가 아닌 한, 메시지를위한 다른 요청과 경쟁 할 것입니다. 서비스에 대한 사용자 정의 엔드 포인트가 있으면 모든 자원 경합 문제를 해결하지는 않지만 적어도 다른 서비스에서 엔드 포인트로 액세스하기 위해 경쟁 할 필요는 없습니다.
셋째, 사용자 정의 프로토콜은 실제 서비스 관련 프로토콜 정보 만 지원하면 추가 HTTP 프로토콜 오버 헤드를 지원할 필요가 없기 때문에 패킷 크기가 더 작을 수 있습니다. 이것은 특히 헤더 정보가 메시지 크기의 더 큰 비율이 될 것이므로 작은 메시지를 교환하는 프로토콜에 영향을 미칩니다.
다른 팁
휴식은 모든 문제에 적합하지는 않습니다.
휴식이 가장 좋습니다 자원 관리. 클라이언트-서버 시스템과 마찬가지로 웹 서비스를 작성하는 경우 언어-비기능 데이터 표현, 인수 검증, 클라이언트/서버 코드 생성, 오류 처리, 액세스 컨트롤과 같은 것을 원합니다. 휴식은 기본적으로 직접 코딩해야합니다.
반면에 HTTP 층을 추가합니다. 프록시, 캐싱 등의 원활한 통합이 발생하지만 HTTP 헤더, 웹 서버 프론트 엔드 등으로 인해 약간의 속도가 손실됩니다.