안녕하세요. 모든 전문가에게 :)피드 처리기 또는 어댑터를 만드는 데 사용해야하는 스레딩 모델
여기 내 첫 번째 질문입니다.
문제 설명 :
나는 시장 데이터 피드 핸들러를 작성해야합니다. 이것은 Windows 서비스가 될 것이며, 두 개의 소켓을 사용하게 될 것입니다.
소켓 A : 구독 응용 프로그램과 피드 처리기 (피드 처리기에서 연결 요청 및 항목 요청을 수락 함) 간의 통신에 사용됩니다.
소켓 B : 피드 처리기와 외부 시장 데이터 공급자 (예 : 로이터/블룸버그) 간의 통신에 사용됩니다.
요청/응답 모두 동일한 포트를 사용합니다.
참고 : 외부 시스템에서 오는 데이터 양이 적습니다 (외부 시스템은 현재 가입 한 정보 만 전송합니다). 그러나 나중에는 규모를 조정하고 일부 공급자는 모든 데이터를 던지고 Feed Handler는 구독을 기반으로 로컬로 필터링해야합니다.
내 질문 :
- 내가 무엇을 사용해야 스레딩 모델?
- 어떤 I/O 전략을 사용해야합니까?
- 두 경우 모두를 염두에두면 별도의 요청/응답 스레드를 만들어야합니까?
편집 1 : Winsock에 대한 자습서를 읽은 후 비동기 동작을위한 이벤트 개체를 사용할 계획입니다.
여기서 주목할 점은 단일 스레드가 들어오는 클라이언트 연결 (수락)을 수신하고 다른 서버에 연결하고 두 개의 다른 포트에서/recv를 차례로 수신해야한다는 것입니다.
스레드 A 1) 수신 연결 듣기. (연속) 2) 연결된 클라이언트로부터 수신/수신 거부 요청 수신. (드물게) 3) 외부 서버에 연결하십시오 (한 번만). 4) 클라이언트에서 오는 요청을 외부 서버로 전달합니다. (드물게) 5) 외부 서버로부터 데이터를 수신합니다. (연속) 6)이 데이터를 연결된 클라이언트로 다시 보냅니다. (연속)
제 질문은 비동기 입출력 모델을 사용하여 단일 스레드가 클라이언트와 서버 모두에서 작동 할 수 있습니까? 사전에
감사합니다. Deepak