데이터를 처리하기 위해 여러 서버 중 하나에서 HTTP 스크립트를 호출하는 Java 라이브러리를 개발 중입니다. 핵심 기능이 잘 돌아가고 이제 구성 문제가 있습니다.Java에서 구성을 저장하는 모범 사례
라이브러리에 서버의 정보 (URL, 사용자 이름, 암호 등)가 필요하며 연결이 실패하면 응답을받을 때까지 다른 정보를 가져와야합니다 (단순 고 가용성). 그리고 여러 개의 다른 서버 집합이있을 수 있습니다 (예 : 표준 대 우선 순위가 높은 요청). 부하 분산을 위해 서버의 순서를 무작위로 지정할 수도 있습니다. 그리고 앞으로이 메커니즘에 일종의 서버 상태 모니터링을 구현할 수 있습니다.
나는 자바에 익숙하지 않아서 내 아이디어가 다른 언어의 솔루션에 편향 될 수있다. 내 첫 번째 아이디어는 단일 서버 구성 저장을위한 클래스를 작성한 다음 반복자가 될 일종의 구성 관리자 (서버 설정을 반복하는 iterator를 리턴)와 직렬화 가능한 일종의 구성 관리자를 작성하는 것이었다. 그렇게하면 라이브러리는 반복자를 가져 와서 유효한 응답을 얻을 때까지 (또는 서버가 부족할 때까지) 서버를 반복 할 수 있습니다. 그리고 우리 클래스의 사용자는 필요한 구성을 저장하기위한 메커니즘을 사용할 수 있습니다.
나는이를 구현하기 위해 노력하고 나는 몇 가지 질문에 달렸다 :접근 반복자 방법을 구성 관리자의 데이터 - 서버 구성 자신과 반복 관련 될 수있는 다른 데이터? 구성 관리자는 반복자를 만들 때 일종의 간단한 목록을 "렌더링"해야합니까? 또는 반복자 액세스 구성 관리자의 내부 필드를 사용해야합니까? 또는 configurationManager를 반복자로 사용해야합니까?
- 는 직렬화 가능하지 않은 필드를 사용할 필요가있는 경우 클래스의 직렬화를 확장하는 방법을 어떤 방법이 있나요 (아마 비 일어날 것입니다하지만 난 그게 않는 경우 준비 할)
이것이 가능한 접근법입니까, 아니면 오히려 라이브러리 (Commons 구성 또는 Java 등록 정보)를 사용해야합니까?
나는 그것을 분명히 말하지 않았을 것이다. 반복은 더 많은 구성에서 이루어집니다. 서비스를 제공 할 수있는 서버가 3 대 있고 각각에 대해 URL + 사용자 이름 + 암호를 저장해야한다고 가정 해 봅시다. 따라서 3 가지 구성 클래스 인스턴스를 갖게되며 "작동"클래스는 연결이 실패 할 경우 이러한 구성을 반복해야합니다. –
ArrayList에 저장된 여러 구성에 대한 단락을 추가했습니다. – Don
그리고 ArrayList 대신에 "inteligent"iterator를 추가하고 싶다면 어떻게해야할까요? 즉, cca 3-5 구성이 있지만 초당 약 50 건의 요청이있을 것이며 각 요청마다 "다른"반복자를 사용할 수 있습니다 (예 : 구성 순서를 임의로 지정하거나 연결할 수없는 서버를 건너 뜁니다.))? –