의 데이터를 제공하여 내 문제의 해결 방법을 찾지 못했습니다.Netty, 연결된 클라이언트에게 mongo db
mongo db 데이터베이스에 저장되는 데이터 (정보)를 생성하는 백엔드 서버가 있습니다.
추가 서버 (실행중인 Netty)가 연결된 클라이언트 (10k 클라이언트)를 지원해야합니다.
모든 클라이언트가 동일한 정보에 관심이있는 것은 아니기 때문에 어디에서 데이터베이스 쿼리를 배치해야합니까?
나는 다음과 같은 아이디어를 내놓았다 : 데이터베이스 쿼리를 수행하고 연결된 모든 클라이언트를 통해 루핑 및 전송, 그물코 서버를 호스팅하는 응용 프로그램에서 별도의 스레드를 갖는
- # 1 (channel.writeAndFlush (정보)) 정보 (클라이언트가 관심이 있다면).
첫 번째 문제점은 모든 클라이언트에게 서비스를 제공하는 스레드가 하나 밖에 없다는 것입니다. 둘째, 데이터베이스에서 많은 정보를 검색하고 관련 클라이언트가 연결되어 있지 않은 경우에도 응용 프로그램에 맞춰집니다. 나는 이것이 성능 문제로 이어질 수 있다고 생각한다.
- # 2 (어쩌면 idlestatehandler?) 채널 스레드 내에서 훨씬 더 자세한 쿼리를 수행하고 모든
내가 더 나은 될 것이라고 개념을 알고 관심이 다시 클라이언트로 수신 된 데이터를 전송 확장 성과 성능.
이것은 일반적인 사용 사례입니다. 하지만 해결책을 찾지 못했습니다. 사전에
많은 감사
귀하의 아이디어는 나에게 잘 들립니다. 어쩌면 채널 목록 대신 루프를 반복하지 않아도되는 간단한 데이터 목록 대신에 일부 데이터 구조를 유지할 수 있습니다. 당신의 아이디어에 어떤 다른 문제가 있습니까? – trustin
@trustin, 나는 대신 하나의 큰 스레드가 데이터베이스를 쿼리하여 채널 스레드를 사용하고 필요한 데이터 만 쿼리 할 수 있다고 생각했습니다. 그러나 그 코드를 어디에 두어야합니까? – Vincenzo
@ user3211074 mongoDB에서 netty를 어떻게 사용했는지 알 수 있습니까? 사소한 질문으로 미안해, 나는 망할 놈이야? 또한 책이나 참고 자료를 더 잘 이해할 수 있도록 안내해 줄 수 있습니까? 미리 감사드립니다! – elgolondrino