[t:/]$ 지식_

seqgen, 고속 시퀀스 넘버 제네레이터

2016/11/11

며칠전에 김성박 님께서 고속 시퀀스 넘버 제네레이터가 필요하시다는 글을 보고 문득 예전에 libevent 살펴보던 생각이 나서 뚝딱뚝딱 만들어보았습니다..

https://github.com/dawnsea/seqgen/blob/master/README.md

C입니다.

신뢰성을 보장하지 않으므로 libevent 공부하시는 분들 참고만 하세영..코드의 대부분은 bsd 라이선스인 libevent 예제 코드에서 왔습니다.

libevent를 사용하여 멀티쓰레드, 비동기 처리를 합니다. 동접은 빌드 조건만 바꾸면 1000 정도는 그냥 되네요. 소켓 fd 기준입니다. 로컬에서 동접 조건 올리고 쏘고 받고 테스트 다 하면 fd 많이 먹어서 에러 날꺼에요.

http, tcp socket, memcached compatible을 지원합니다.. tcp는 그냥 http 헤더 없이 주고 받는다는 이야기고요, memcached compatible은 아유 귀찮아 하시면 memcached 인터페이스에 incr 명령어로 응답을 받을 수 있다는 뜻입니다..

http에서 keepalive를 지원하며 keepalive 싸이클은 1000으로 되어있는데 늘려두 될 겁니다..

http keepalive 1000에 동접 5정도면 5만콜/s는 그냥 나올 겁니다..

memcached 호환모드에서는 epoch 값을 지원하지 않습니다. 그 외 모드에서는 64비트 값이 다 차면 epoch가 1씩 증가합니다.

깃헙에 별 두개만 찍히면 이중화 기능 맹글렵니다만 그럴 일은 없겠죠.. 흑..









[t:/] is not "technology - root". dawnsea, rss