본문 바로가기

전체 글

(13)
mongoDB 설치 및 CRUD Operation Intro 이번 포스팅에서는 mongoDB를 docker를 통해 설치하고, mongo shell을 사용하여 몇가지 쿼리를 실행해보자. docker가 아닌 로컬에 설치하고 싶으면 docs.mongodb.com/guides/server/install/ 여기를 참조하자. 1. Install mongoDB 1-1. mongoDB 이미지 받아오기 아래 커맨드를 통해 dockerhub에서 mongoDB의 최신 이미지 파일을 다운받자. docker pull mongo 1-2. mongoDB Container 생성 다운받은 이미지를 통해 mongoDB 컨테이너를 아래 명령어를 통해 생성하자 docker run --name mongodb -p 27017:27017 -v /Users/user/mongoTest/data/d..
mongo DB란? Intro 이번 포스팅에서는 mongoDB가 무엇인지 이론적으로 접근해 보고, 추후에 mongoDB설치 및 golang client를 사용해보는 시간을 가져보자. mongoDB 공식문서에 정의된 mongoDB는 쉽게 개발 및 확장이 가능한 document database이다. 기존에 자주 접해왔던 Mysql과 같은 RDBMS가 아닌 NoSql기반의 document database가 무엇인지 알아보자. 1. Document Database MongoDB의 record(RDBMS에서의 row)는 document라고 부른다. document는 "field-value" 페어로 구성되어 있으며, MongoDB의 document는 JSON형식과 비슷한 모양을 갖고 있다. Document의 value는 값 array..
Zookeeper Golang Client Zookeeper Golang Client : github.com/go-zookeeper/zk go-zookeeper/zk Native ZooKeeper client for Go. Contribute to go-zookeeper/zk development by creating an account on GitHub. github.com Zookeeper에서 제공하는 Client Library는 Java와 C 두 종류 밖에 없는듯 하다. Zookeeper 앙상블을 구성하고, Golang으로 작성된 프로그램에서 Zookeeper를 사용하기 위해 Client Library를 검색해 보았고, 가장 Star가 많길래.. 한번 사용해 보았다. package zookeeper import ( "fmt" "log" "t..
Zookeeper 활용 시나리오 (Recipes And Solutions) ZooKeeper공식 문서를 보면 Recipes라고, zookeeper를 사용하는 방법에 대해 나와있는 문서가 있다. 이 포스팅에서 그 중 몇가지에 대해 알아보도록 하자. zookeeper.apache.org/doc/r3.6.2/recipes.html Barriers barrier는 분산시스템에서 클라이언트의 집합이 있을 때, 클라이언트가 진행할 수 있는 조건이 충족될때까지 클라이언트의 처리를 차단하는 것, 쉽게 말해서 클라이언트들은 barrier node를 생성하려고 시도하며, barrier node를 생성한 클라이언트만 작업을 수행할 수 있도록 구성하여, 클라이언트 집합에서 한번에 한 클라이언트만 작업을 할 수 있도록 막는 것이다. pseudo code Client 는 Zookeeper API인 ex..
zookeeper Replication (3 host clustering) 설정하기 이전 포스팅에서 zookeeper 설치 및 환경 설정을 해보았는데, 이번 포스팅에서 zookeeper를 3개 host에서 실행하고 keepalived를 사용하여 하나의 vip로 묶는과정까지 진행해보자. 1. zookeeper 설정파일 zoo.cfg파일 내용이다. 이전 포스팅에서 설정파일에 대한 설명이 나와있으니 자세한 설명을 생략! tickTime=2000 dataDir=/~~/~~/~~/zookeeperDataDir clientPort=2181 initLimit=5 syncLimit=2 server.1=10.113.78.147:2888:3888 server.2=10.113.79.117:2888:3888 server.3=10.113.97.243:2888:3888 * zoo.cfg파일의 dateDir에 m..
service, systemctl 란? 간단 설명 service와 systemctl을 이해하기 위해서, 데몬이라는 개념에 대해서 알고 있어야 한다. 데몬이란 사용자가 직접적으로 제어하지 않고, 백그라운드에서 여러 작업을 하는 프로그램을 말한다. 일반적으로 데몬 프로세스는 systemd, syslogd 처럼 프로세스 이름 마지막에 d가 붙는다. Linux는 OS가 부팅되면서 여러가지 데몬들이 실행된다. 부팅과 함께 실행되는 데몬은 네트워크 요청을 처리하는 데몬, 하드웨어 동작을 처리하는 데몬 등, 시스템단에서 필요한 작업을 백그라운드로 처리하는 데몬들이다. 이러한 데몬들을 Linux에서는 service 파일로 설정하여 실행하고 있으며, systemd라는 프로세스가 관리하고 있다. systemd는 1번 PID를 갖는 프로세스로 프로세스 트리에서 ..
systemd란 systemd 위키백과에 따르면, systemd는 일부 리눅스 배포판에서 init시스템 대신 사용자 공간을 부트스트래핑하고 최종적으로 모든 프로세스를 관리하는 init시스템이다. 실제 systemd의 PID는 1이다. 즉 init이 하던일을 대체하는 새로운 process라는 것을 알 수 있다. 즉 Systemd는 Linux 시스템이 부팅할 때 실행되는 프로세스를 제어하기 위한 표준 프로세스이다. 예전의 PID 1이었던 init은 현재로부터 수 십 년 전에 처음 소개된 프로그램인데 그 때의 구조를 거의 바꾸지 않고 계속 기능이 추가되며 날이 갈수록 복잡해지는 프로그램들로 인해 효율이 떨어졌습니다. 그리고 그 구조라는 것이 시작할 프로그램을 구동하는 쉘 스크립트를 특정 run-level의 rc 디렉토리에 추..
Zookeeper 설치 및 환경설정 1. jdk 설치 구글링해서 설치해봅시다. 2. zookeeper 설치 2-1. zookeeper 다운로드 여기에서 stable 버전 다운, 나는 3.6.2버전 다운 받았다. zookeeper.apache.org/releases.html wget https://downloads.apache.org/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz 2-2. 압축 풀기 tar xzf apache-zookeeper-3.6.2-bin.tar.gz 2-3. 설정파일 생성 설정 파일(zoo.cgf), zoo_sample.cfg가 있긴한데 zoo.cfg 만들자 vi zoo.cfg tickTime - zooKeeper에서 사용하는 기본 시간 단위 (밀리세컨드) ..