2012-05-31 3 views
1

저는 현재 memcachedrepcached을 나란히 사용하는 서버 그룹을 가지고 있습니다 (다른 포트에서 수신 대기). memcached 서비스는 공유 할 필요가없는 로컬 데이터를 저장하는 데 사용됩니다. repcached 인스턴스는 서버 쌍이 협업 할 수있게하는 데 사용됩니다. 내가 카우치베이스 주식회사를 발견했을 때 그것은 나에게 허용 할 것처럼 보이기 때문에Couchbase를 memcached + repcached 대체품으로 사용 하시겠습니까?

는 정말 흥분했다 :

  1. 가 두 개 이상의 노드와 일부 데이터 지속적
  2. 공유합니다
  3. 로 내 코드의 대부분을 남겨주세요 - 그것은 memcached API를 사용하기 때문에.

그래서 Couchbase를 설치했지만 문제가 발생했습니다. 같은 서버에 두 개의 클러스터를 설정하는 방법이없는 것처럼 보입니다. 다른 서버와 공유하지 않는 클러스터 하나와 다른 서버와 공유하는 두 번째 클러스터를 원합니다.

그래, 내가 다른 클러스터를 만들 Couchbase에 대한 전용 서버를 설정할 수 있지만 CPU를 많이 가지고있어 램 + 현재 그 memcached + repcached를 실행하는 서버에 여분의 그 서비스를 대체하는 것을 선호하고 싶습니다 Couchbase.

동일한 호스트에서 두 개의 Couchbase 인스턴스를 실행할 수 있습니까? 나는 몇몇 항구를 주변에 바꾸어야 할 것이라는 점을 알고있다. 나는이 같은 것을하는 것에 대해 이야기하는 사람을 보지 못했기 때문에 나는 대답이 "아니오"라고 생각하고있다. 그러나 Couchbase가 나의 요구에 완벽 할 것 같기 때문에 나는 물어야 만했다.

이것이 작동하지 않는다면 어떤 대안이든 제안 할 수 있습니다. 예를 들어, 내가 가진 한 가지 아이디어는 Memcached + MemcacheDB을 사용하여 지속적인 비공유 Couchbase 클러스터를 에뮬레이션하는 것입니다. 그러나 MemcacheDB가 만료되는 레코드를 지원하지 않는다는 것과 매월 수백만 개의 레코드를 삭제하는 루틴을 작성하지 않아도된다는 점 (그리고 성능이 시간이 지남에 따라 저하 될지 궁금합니다.)이 마음에 들지 않습니다.

의견을 보내 주시면 감사하겠습니다. :-)

답변

2

여기서 가장 좋은 해결책은 Couchbase의 단일 인스턴스를 실행하고 memcached 버킷 하나와 Couchbase 버킷 하나를 만드는 것입니다. memcached 버킷은 지속성이 없으며 memcached와 똑같이 작동합니다. 다른 버킷은 지속성을 가지며 memcached API를 지원합니다. 하나의 Couchbase 서버에서 원하는만큼 버킷을 생성 할 수 있습니다.

다른 옵션은 각 VM에서 Couchbase 서버를 가상화하고 실행하는 것입니다.

+0

잠시 시간을내어 의견을 보내 주셔서 감사합니다. memcached 버킷이 "memcached와 정확히 똑같이 작동합니다"라고 말하면 전체 클러스터에 걸쳐 있지 않을 것이라고 말합니까? 두 번째 Couchbase 서버를 별도의 VM에서 실행한다는 생각은 내가 생각했던 것보다 단순한 솔루션을 기대하고있었습니다. – Jeremy

+2

memcached 버킷은 사용자가 묻는 것이면 복제를 제공하지 않습니다. 하지만 클러스터에 다른 서버를 추가하면 memcached 버킷에 더 많은 메모리가 추가됩니다. 예를 들어 크기가 2GB 인 하나의 memcached 버킷이있는 서버가 3 대있는 경우 클러스터는 해당 버킷에 대해 6GB를 사용할 수 있습니다. 다른 서버를 추가하면 클러스터의 사용 가능한 공간이 8GB가됩니다. 또한, Couchbase SDK를 사용하면 클라이언트는 다른 서버가 즉시 추가 된 것을 인식합니다. – mikewied

관련 문제