2013-10-18 3 views
0

내 앱은 모든지도가 바뀐 후에 ajax (및 데이터베이스) 요청을 통해 위치 (또는 마커)가 동적으로로드되는지도를 보여줍니다.동적으로로드 된 마커 : DDOS 방지

저는이 솔루션이 확장 성이 없다고 확신합니다. 현재 유럽 지역에는 총 10 개의 마커가 있습니다.
데이터베이스가 커지고 인스턴스가 1000 개 위치 인 경우 1000 개의 행이 사용자에게 반환됩니다.

MarkerCluster 플러그인을 사용하기 때문에 JS/UI가 아니기 때문에로드 된 위치의 마커를 다시 그리지 않습니다.

나는 약간의 개조하면 되겠 어를 만든 :
- 유휴 gmaps 이벤트
로 Ajax 요청의 감사를 지연 - 전 세계가 표시되지 않을 수 있으므로, 최소한의 줌 레벨을 높입니다.

하지만 충분하지 않습니다.

답변

1

이 방법에 접근 할 수있는 방법이 많이 있지만 여기에 두 가지를 넣어 두겠습니다. 귀하의 질문에서 가장 적절하다고 생각합니다.

첫 번째는 웹 앱에서 어떤 정보가 언제 요청되는지를 실제로 제어하는 ​​것입니다. 자바 스크립트에서이 모든 것을 직접 작성하고 캐싱 기술을 구현할 수 있습니다. 이 라이브러리에는 대부분이 작업을 수행하는 라이브러리가 많이 있습니다. 나는 다음 중 하나를 추천 할 것입니다 :

이 모든 데이터를 얻는 방법, 제어 로컬 캐싱 방법을 가지고 어떤 데이터가 서버에서 수집되는지. 대부분의 기능을 확장하여 누락 된 기능을 추가 할 수도 있습니다. 내가 아는 2 대 google maps (뿐만 아니라 다수의 다른 사람)도 지원합니다.

데이터를 로컬에서 더 제어해야한다면 PouchDB과 같은 것을 구현할 수도 있습니다. 네트워크 연결이 실제로 느리거나 간헐적 인 모바일 애플리케이션 또는 인스턴스에 더 적합하다고 생각합니다.

이러한 종류의 솔루션은 100 명에서 10000 명까지의 기능을 쉽게 처리 할 수 ​​있어야합니다.

사용자가 100에서 1000 사이 인 100,000에서 1000000까지의 기능을 실제로 확장하려면 타일 서버를 위의 soloution에 추가하는 것이 좋습니다. 타일 ​​서버는 웹 응용 프로그램과 데이터베이스 사이에 위치합니다. 그들 중 대부분은 대규모 데이터 세트를 처리하고이를 클라이언트에 푸시하기위한 많은 캐싱 설정과 낙관을 가지고 있습니다. 그들은 기능보다는 타일을 밀어 내기 때문에 기능의 수가 증가하더라도 데이터 출력은 비교적 일정하게 유지됩니다.제가 위에서 언급 한 OpenGeo SDK 및 Openlayers 라이브러리는 다음과 같은 타일 서버 중 하나에 정말 잘 작동 할 수 있습니다

당신이 꺼리는 경우 코딩을 수행하려면 엔터프라이즈 환경에서 즉시 사용할 수있는 몇 가지 오퍼가 있습니다. 그들은 모두 비싸고 당신의 질문에 나는 그들이 당신이 찾고있는 것이 아닐 것이라고 생각합니다.

+0

맞습니다. 스케일링 문제를 설명하는 서버 측 솔루션을 고려해야합니다. – younes0

관련 문제