티스토리 뷰
잡큐 - Gearman and Lambda (1) - Gearman
0. 잡큐를 왜 쓸까?
- 분산 처리.
- 빅데이터 처리.
- 본인 서버가 있으면 기어맨! AWS 유저라면 Lambda
- 예1) 동영상 인코딩
- 파일을 서버에 올리고 그걸 다시 인코딩프로세스로 넘길떄
- 1명이 올리면 총 11초
- 여러사람이라고 가정하면?
- n명이 올린거니까 n개 프로세스 동작...... 서버 사망 위험.
- 예2) 데이터 처리
- 1개 데이터 1개 워커 - 처리하는데 10초
- 1000개 데이터 5개 워커면 10 * 1000 / 5
- 워커만 늘려주면 무한 확장가능
1. 기어맨 설치.
- sudo yum install uuid-devel libuuid libuuid-devel uuid boost-devel libevent libevent-devel
- tar xvfz gearmand-1.1.7.tar.gz
cd gearmand-1.1.7
./configure
make -j
make test
make install
- http://gearman.org/getting-started/
- apt-get install gearman-job-server
2. 기어맨 사용. (NODEJS 이용)
- 워커
var hostname = "localhost"; var port = 4730; var gearmanode = require('gearmanode'); var worker = gearmanode.worker({ servers: [{ host: hostname, port: port }] }); worker.addFunction("gearman_test", function(job) { try { var payload = job.payload.toString(); var ret = JSON.parse(payload); console.log(ret); setTimeout(function() { job.workComplete("success_" + ret.id); }, 3000); } catch (e) { job.workComplete("Error"); } }); |
- 클라이언트
var hostname = "localhost"; var port = 4730; var gearmanode = require('gearmanode'); var client = gearmanode.client({ servers: [{ host: hostname, port: port }] }); var job = client.submitJob("gearman_test", JSON.stringify({ id: "529ca0dc847c397d5e000655" })); job.on("complete", function() { console.log(job.response); }); job.on("error", function() { console.log(job.Error); }); |
3. 후기
- 현재 프로젝트에 사용하고있는데 매우 잘됨.
- 클라이언트가 많아지면 상황에 따라 워커만 늘려주면 된다.
- 상황에 따라 급하면 클라우드서버 100대 늘려놓고 워커 실행하면 만사 OK
- 나는 Nodejs를 이용했지만 다른언어(Java Python PHP C..)등도 이용가능 하다.
- 물론 서로간의 통신으로도 이용해도 된다.
'AWS' 카테고리의 다른 글
AWS Elasticsearch 직접 구축기 (0) | 2016.04.22 |
---|---|
AWS EC2 처음시작. (1) | 2016.04.21 |
잡큐 - Gearman and Lambda (2) - Lambda (0) | 2016.04.10 |
AWS Load Balancer 처리 (0) | 2016.02.22 |
AWS EC2 서버 생성하기. (0) | 2016.02.18 |
- Total
- Today
- Yesterday
- puppeteer
- electron-updater
- AmazonMQ
- 자동업데이트
- 브라우저 제어
- bitbucket
- elasticsearch mapping
- 마리아
- 브라우저봇
- 오픈API
- ElasticSearch
- Restore
- maria
- 엘라스틱서치 복구
- 엘라스틱서치 백업
- electron
- AWS
- backup
- mqtt
- 팀룸
- activemq
- elasticsearch mapping change
- real
- 2FA
- MariaDB Galera
- 2factor
- Redis
- 봇
- auto update
- 네이트온
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |