솔루션 개발을 위한 모범 사례 > HA 응용 프로그램을 위한 모범 사례
HA 응용 프로그램을 위한 모범 사례
JavaScript를 올바르게 작성하고 ThingWorx Platform으로의 라운드 트립을 줄이면 항상 성능 개선에 도움이 됩니다. ThingWorx 9에서는 고가용성 클러스터 모드를 지원하기 위해 모델의 스토리지 및 용도가 변경되었으며 서버 간에 데이터를 동기화된 상태로 유지하기 위한 공유 상태 메커니즘이 구현되었습니다. 이러한 변경으로 인해 특정 API는 동일한 정보를 검색하기 위해 이전보다 많은 작업을 수행하므로 API의 성능에 영향을 줍니다. 이전에 성능에 최적화되지 않은 코드는 ThingWorx 9에서 훨씬 느려질 수 있으며 클러스터링 환경에서는 이 현상이 더 심화될 수 있습니다.
모델 정보가 더 이상 사물에 저장되지 않으며, 시스템은 매번 모델 트리를 탐색해 모델 정보를 가져옵니다. 사물 정보를 검색하는 모든 API가 영향을 받습니다.
이제 JavaScript 서비스 상태가 모두 캐시 레이어에 저장됩니다.
단일 서버 모드에서 실행할 때는 속도가 꽤 빠른 메모리 내 캐시이지만 사물 객체에 저장할 때보다 오버헤드가 훨씬 많습니다. 클러스터 모드에서 실행할 때는 캐시가 분산되고 각 호출 시 원격 호스트로의 라운드 트립이 수행됩니다. 이로 인해 호출에 대한 대기 시간이 늘어날 수 있으며 쉽게 제어할 수 없습니다.
캐시 레이어는 로컬 또는 원격일 수 있습니다. 새 시스템은 JavaScript 객체에서 원본 객체로의 단방향 프록시를 작성합니다. 따라서 JavaScript 객체를 변경할 때마다 원래 객체의 속성에 대한 전체 업데이트가 트리거됩니다. 그리고 원본 객체에 대한 변경 사항은 JavaScript 객체에 반영되지 않습니다.
모든 것이 원격 객체로 처리되어야 합니다. 원격 객체를 사용할 경우 원격 간격에서 가능한 한 적은 호출을 수행하여 대기 시간을 제거합니다. 서버에서 API를 호출하는 경우에도 동일한 접근 방식을 취해야 합니다. 호출 횟수가 적을수록 좋습니다.
도움이 되셨나요?