NodeJS로 Membase 시작하기

다행히도 저는 최근에 여러 작업을 하나의 빠르고 통합된 프로젝트로 통합할 수 있는 교차점을 찾았습니다. 다음은 제 할 일 목록의 작은 부분입니다...

- 많은 수의 노드를 사용하여 자동화된 Membase/Moxi 클러스터 테스트를 구축합니다.
- 사람들이 멤베이스에서 TAP 스트림을 사용하여 좋은 일을 할 수 있는 방법을 보여줍니다.
- 또 다른 새로운 핫 트렌드인 NODEJS에 대해 자세히 알아보세요.
- 블로그 더 보기

분명히 별들은 제가 nodejs로 Membase 클러스터 연습기를 구축하고 그 과정에서 블로그에 포스팅할 수 있도록 정렬되어 있습니다. 이 작업을 통해 nodejs에 대해 많은 것을 배우고 싶고, Membase에 대한 실용적인 지식을 여러분께 전수해 드리고 싶습니다.

멤베이스는 사용자가 두 개의 멤캐시드 중 하나를 사용하여 연결할 수 있도록 합니다.
프로토콜: ASCII 또는 바이너리.

그러나 TAP 스트림은 멤캐시된 바이너리 프로토콜만 지원합니다. 따라서 첫 번째 단계는 nodejs가 원시 바이너리 TCP 통신을 지원할 수 있는지 확인하는 것입니다. 바이너리 버퍼 인코딩. 그러나 nodejs에는 바이너리 프로토콜 조작에 필요한 고전적인 ntohl 및 htonl 함수가 기본적으로 누락되어 있는 것 같습니다.

가볍게 시작하기 위해, 다음은 nodejs 세계에 대한 첫 번째 공헌으로 ntohl/htonl 함수의 nodejs 구현입니다...

———————————————————————–
/* 저작권 2010 Membase, Inc.
*
* Apache 라이선스 버전 2.0(이하 "라이선스")에 따라 라이선스가 부여됩니다;
* 라이선스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다.
* 라이선스 사본은 다음에서 구할 수 있습니다.
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* 관련 법률에서 요구하거나 서면으로 동의하지 않는 한, 소프트웨어
라이선스에 따라 배포되는 *는 "있는 그대로" 배포됩니다,
* 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건도 제공하지 않습니다.
* 권한에 적용되는 특정 언어에 대한 자세한 내용은 라이선스를 참조하세요.
* 라이선스에 따른 제한 사항.
*/
exports.htons = function(b, i, v) {
b[i] = (0xFF & (v >> 8));
b[i+1] = (0xFF & (V));
}
exports.ntohs = function(b, i) {
반환 ((0xff & b[i + 0]) << 8) |
((0xFF & b[i + 1]));
}
exports.ntohsStr = function(s, i) {
반환 ((0xff & s.charCodeAt(i + 0)) << 8) |
((0xff & s.charCodeAt(i + 1)); }
exports.htonl = function(b, i, v) {
b[i+0] = (0xFF & (v >> 24));
b[i+1] = (0xFF & (v >> 16));
b[i+2] = (0xFF & (v >> 8));
b[i+3] = (0xFF & (v));
}
exports.ntohl = function(b, i) {
반환 ((0xff & b[i + 0]) << 24) |
((0xff & b[i + 1]) << 16) |
((0xFF & b[i + 2]) << 8) |
((0xFF & b[i + 3]));
}
exports.ntohlStr = function(s, i) {
반환 ((0xff & s.charCodeAt(i + 0)) << 24) |
((0xff & s.charCodeAt(i + 1)) << 16) |
((0xff & s.charCodeAt(i + 2)) << 8) |
((0xff & s.charCodeAt(i + 3)); }
———————————————————————–
이 자바스크립트는 실제로 다른 곳에 사용될 수 있습니다. 위에서 "b" 매개변수는 옥텟의 배열이거나 nodejs 버퍼일 수 있습니다. "s" 매개변수는 JavaScript 문자열입니다. "i"는 배열/버퍼/스트링에 대한 0 기반 인덱스입니다.

다음 글에서는 nodejs에서 Membase에 대한 연결을 생성하고 바이너리 프로토콜 메시지를 인코딩 및 디코딩하는 방법을 보여드리겠습니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Steve Yen, 공동 창립자, Couchbase

Steve Yen은 Couchbase의 공동 창립자이자 수석 소프트웨어 엔지니어입니다. UC 버클리 컴퓨터 공학을 졸업했습니다. Steve Yen은 Kiva Software를 공동 설립했습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.