나는 함대 추적 회사에서 일하는데,이 질문은 구체적으로 어떻게 보고서를 작성할 계획인지에 관한 것입니다. 우리 환경에 대해 설명하겠습니다. 우리는 1x Database, 1x Load Distributing 프로세스, 3x Report Processing 서버를 보유하고 있습니다. 고객이 보고서를 요청하면 해당 보고서의 모든 매개 변수가 데이터베이스에 저장됩니다. 현재 데이터베이스에서 보류중인 보고서를 가져 와서 보고서를 작성하고 이메일로 전송하는 3 개의 보고서 처리 서버에 응용 프로그램을 배포하는 부하 분산 작업을하고 있습니다. 서버가 보고서를 완료하거나 오류가 발생하면 부하 분산 응용 프로그램에 알립니다. 1 대의 차량에 대해 1 일간의 GPS 데이터에서 수백 대의 차량에 대해 3 개월의 GPS 데이터까지 모든 규모의 보고서가 제공 될 수 있습니다.로드 균형 조정 가중치 보고서?
로드 균형 조정을 수행하는 몇 가지 방법을 생각해 볼 수는 있지만 실제로 만족스럽지 않습니다. 각 서버는 최대 5 개의 보고서 만 가질 수 있지만, 1 개의 서버는 5 개의 작은 보고서를 얻을 수 있고 다른 하나는 5 개의 큰 보고서를 얻을 수 있습니다. "Round Robin"접근법을 사용하여 보고서를 서버 전체에 순차적으로 전달할 수는 있지만 서버의 오버로드를 막을 수는 없습니다.
지금 당장 생각한 가장 좋은 생각은 각 보고서 (필요한 쉬운 작업)에 GPS 데이터가 얼마나 필요한지 계산하는 것입니다. 보고서를 각 서버에 할당 할 때마다 각각에 대해 누적 합계를 유지합니다 섬기는 사람. 서버가 보고서를 완료하고로드 밸런서에이를 알리면 해당 서버의 누적 합계에서 해당 보고서의 GPS 데이터 양을 뺍니다. 이렇게하면 가장 작은 양의 GPS 데이터가있는 서버에 다음 보고서를 할당 할 수 있습니다. 서버가 작동하지 못하도록 최대 값을 설정할 수도 있습니다.이 문제는 우리가 전체 보고서 프로세스를 리펙토링하도록하는 원인이됩니다. 모든 서버가 최대치에 도달했을 때 더 많은 보고서가 있으면 서버가 대기열에 넣고 서버가 보고서를 끝내면 나중에 시도 할 수 있습니다.
나는 가능한 한 빨리 보고서를 마무리하는 것이 최선의 방법이라고 확신하지 않습니다. 이것들은 제가 지금까지 생각해 낸 최선입니다.
여러 서버에서 다양한 크기의 보고서를로드 균형 조정하는 방법을 어떻게 최적화 할 수 있습니까?