나는 클라이언트가 카산드라에 삽입 할 수 있도록 웹 서비스 API를 가지고있다. 나는 datastax (http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/Session.html) 페이지에서 응용 프로그램의 끝까지 세션과 클러스터 객체를 유지해야한다는 내용의 문서를 읽었습니다. 각 웹 API 호출 후에 session.close() 및 cluster.close()를 호출해야하는지 궁금 해서요. 아니면 웹 서버를 종료 할 때까지 세션을 유지해야합니까?session.close() 및 cluster를 호출해야합니까? close() 각 웹 API 호출 후
답변
요청을받을 때마다 Session
을 만들지 말 것을 권합니다. Cluster.connect
을 통해 Session
을 작성할 때마다 java 드라이버는 귀하의 Cassandra 클러스터에 대한 다수의 호스트에 대한 연결 풀을 작성합니다.
예를 들어 기본 설정을 사용하면 단일 데이터 센터에 8 개의 cassandra 노드가있는 경우 2.0.9 버전의 드라이버로 각 호스트에 8 개의 풀링 된 연결이 생성됩니다 (다음 버전에서는 2로 변경됨)). 이 경우 Session
을 만들 때마다 64 개의 연결이 만들어집니다.
웹 서버에서 사용할 수있는 Session
을 공유하는 것이 더 바람직합니다. 드라이버는 연결 당 여러 개의 요청 (2.0.x에서 기본적으로 연결 당 기본값 128)을 관리 할 수 있으므로 단일 Session
개체를 공유 할 때 경합을 걱정할 필요가 없습니다.
Andy가 설명하는 것 외에이 게시물은 http://www.datastax.com/dev/blog/4- 간단합니다. 캐스 산드라는 API를 최대한 활용할 수 있도록 기본적인 규칙을 제공합니다. –
조언을 해 주시면 세션과 클러스터를 만들고 유지하십시오. 웹 서버 수명이 끝날 때까지 생존하고 있습니까? 즉, 세션이 영원히 살아 있다는 것을 의미합니까? 세션의 수명 시간을 서버 측으로 밀어 넣습니다. 좋은 생각입니까? 너무 많은 클라이언트가 카산드라는 동시에? –
맞습니다. 카산드라에 연결할 클라이언트를 몇 명이나 계획하고 있습니까? 각각의 노드에 얼마나 많은 연결을 생성하는지에 신경 써야합니다. 많은 수의 고객이 카산드라에 연결하는 것에 대해 우려하는 경우 카산드라와 인터페이스하는 중간 서비스를 제공하는 것이 좋습니다. 이것에 대한 좋은 예는 모바일 앱입니다. 각 모바일 앱이 카산드라에 제대로 연결되는 것을 원하지 않습니까? 모바일 앱이 통신하는 백엔드 서버가있어 앱을 대신하여 cassandra에게 요청합니다. –
- 1. 오류 발생 후 URLLoader에서 close()를 호출해야합니까?
- 2. ManualResetEvent에서 Close()를 호출해야합니까?
- 3. Using 범위를 사용할 때 Close 메서드를 호출해야합니까?
- 4. GoogleCloudMessaging 인스턴스에서 close 메소드를 명시 적으로 호출해야합니까?
- 5. 각 호출 후 다른 웹 서비스 객체
- 6. 이 경우 QFile :: close()를 실제로 호출해야합니까?
- 7. python imaplib : .close()를 한 번만 호출해야합니까?
- 8. ContentProvider에서 사용하는 SQLiteOpenHelper에서 언제 close()를 호출해야합니까?
- 9. SqlDataReader가 삭제 될 경우 close()를 호출해야합니까?
- 10. 언제 안드로이드에서 SQLite 데이터베이스의 close 메소드를 호출해야합니까?
- 11. 모든 Sqlite3 트랜잭션에 대해 connect() 및 close()를 호출해야합니까?
- 12. 코드 및 웹 사이트에서 웹 API 호출
- 13. 사용 완료 후 HttpURLConnection.disconnect를 호출해야합니까?
- 14. 각 문서에서 빠른 API 호출
- 15. WPF Xbap 및 WCF 호출 ... 비동기 호출해야합니까?
- 16. ZipArchive :: close() 호출 - 필요합니까?
- 17. HibernateDaoSupport에서 Session.close() 호출하기
- 18. 코드 숨김에서 ASP.NET 웹 API 호출
- 19. 웹 API 호출 웹 서비스
- 20. 웹 API 메서드 호출
- 21. 어디에서 MessagePassing API 메소드를 호출해야합니까?
- 22. API 호출 및 논리가 모델이나 컨트롤러에 있어야합니까?
- 23. 클라이언트 기본 인증 및 웹 API
- 24. API 호출 후 각도 콜백
- 25. DocumentDB의 후 트리거에서 API 호출
- 26. (Hibernate) Session.close()와 releaseSession (Session)의 차이점
- 27. php - Location : 헤더를 호출 한 후 exit()를 호출해야합니까?
- 28. 새로운 FileInputStream을 사용합니까 (templateFile); 초기화 후 close()를 호출 하시겠습니까?
- 29. WebMatrix Database.Open ... Close() 및 Dispose()
- 30. 초기 프로세스 종료시 'using'문을 사용할 때 "Close"를 호출해야합니까?
포럼 사이트와 달리 "감사"또는 "모든 도움을 주셨습니다"또는 [그래서]의 서명을 사용하지 않습니다. "[안녕하세요, '고마워,'태그 라인 및 인사말을 게시물에서 삭제해야합니까?] (http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be 참조) - 게시물에서 제외되었습니다.) BTW, "고마워요"가 아닌 "미리 감사드립니다." –