이것저것(독후감같은거)

마이크로서비스아키텍쳐환경에서 개발하고 있다. bson 통신용패킷

혜룐 2018. 2. 8. 15:08


몇달전인가.. 어쩌다 보니 지금 개발하고 있는 서비스의 시스템구성을 발표(?)하는 자리가 있었다.

마이크로서비스아키텍쳐환경에서 개발하고 있다. 라는 챕터를 만들고 어떤 얘기를 하면 좋을까 하다

  • restAPI, 부분적 배포 , 부분적 스케일업or 스케일아웃, 부분적 성능개선 등...


각  service는 restapi로 통신을 하는데 json 형식이겠거니.. 그러다 문뜩.. 

header content_type 에 bson과 msgpack으로 요청을 한 서비스레이어가 생각났다.. 

그래서 .. 기록한다...


json 특징은
  • 프로젝트 특성상 텍스트데이터가 많다. (게시글성 서비스를 운영하고있다..)
  • 대부분의 언어별 lib가 지원된다.
  • xml대비 불필요한 text없어 패킷용량이 감소..
  • json의 경우 텍스트기반이라 패킷이 그대로 노출된다는 단점 (암호화..하던지)
  • 숫자형 변수도 모두 텍스트로 전송되기 때문에 패킷의 크기가 커진다는 단점..

bson 특징으로는
  • json binary format..말그대로 .. 바이너리형태로 json을 인코딩
  • 그래서 텍스트기반인 json보다 패킷용량감소..  속도가 빠르고, 크기가 작다.
    • 현재 나는 mongo를 쓰고있고, mongodump커맨드를 이용해서 덤프 하게되면  bson, mongoexport하게 되면 json  으로 떨어진다.
    • mongodump로 이용하면 bson 형태로 저장해서 속도가 빠르다. 그러고 다시 import해서 백업하면 됨.. 여튼 http://lyhyun.tistory.com/26 <- 배열을 포함한 문서의 변환과정을 설명해 놓은 글도 있더라.. 나신분..

msgpack

  • json보다 훨 빠른 속도란다. bson 보다 빠드다고
  • 커넥션 풀 지원으로 단순 메시지서버 구현 가능..