8월, 2021의 게시물 표시

Apache Kafka 사용기

이미지
 안녕하십니까. 이번 포스팅에서는 제가 사용하였던 아파치 카프카 에 대하여 간략하게 리뷰하려고 합니다.  Apache Kafka 아파치 카프카란? 아파치 카프카란 오픈소스 기반 확장 가능한 분산 스트리밍 플랫폼 입니다. 이에 대하여 각각 살펴봅시다. 아래에서의 모든 예시는 광고 노출 데이터로 가정하겠습니다.  확장 가능 분산 수평 확장이 가능하다는 말은 kafka에 트래픽이 몰리면 이를 위해 클러스터에 리소스를 더 투입할 수 있다는 말입니다. 스트리밍 pub sub 구조 스트리밍이라는 말은 데이터가 흐름과 같이 오면 이를 받아서 처리한다는 것과 비슷합니다. 예를 들어서 자료구조의 Queue를 생각하시면 편합니다. 이와 같은 구조를 펍 섭 구조라고 합니다. 데이터를 계속 넣어주는 부분을 publish 이라고 합니다. 이를 받아서 처리하는 부분을 subscribe 라고 합니다. pub sub은 디자인 패턴 중 하나로써 중간 플랫폼을 카프카가 담당을 하게되고, pub sub 부분은 개발자가 직접 디자인 해야 합니다.  Producer : 카프카에 데이터를 넣어주는 역할을 합니다. 예를 들어서 광고 노출이 직접 노출되는 클라이언트 코드에서 노출 데이터를 Producing하여 카프카에 전송 합니다.  Consumer : 카프카에 있는 데이터를 받아서 처리하는 역할을 합니다. 예를 들어서 광고 노출 데이터를 받아서 과금을 하는 등의 처리를 할 수 있습니다.  Partition Group Topic 카프카의 이해를 쉽게하기 위해서 다음과 같이 도식화 하였습니다. 카프카의 파티션 도식화 Message : 카프카 데이터의 가장 작은 단위 입니다. 예를 들어서 광고 노출 데이터라고 할 시에 노출 데이터 한건으로 볼 수 있습니다. Topic : 데이터의 그룹 중 가장 큰 단위 입니다. 예를 들어서 광고 노출 Topic으로 볼 수 있습니다. Partition : 토픽을 나누는 단위 입니다. 예를 들어서 광고 노출 토픽을 파티션 ...

티맥스 입사 후 팁

이미지
 안녕하십니까.  개인적으로 많은 분이 티맥스에 붙으시고 연락 주시는 분이 정말 많은데요. 궁금하신 것들을 모아서 포스팅 하려고 합니다. 1인실 관련 정말로 1인실을 쓰는지 문의가 있는데요. 정말로 1인실 쓰는게 맞습니다. 1인실이 무한정 있는건 아니라 자리가 없으면 2인실에 들어갈 수 있습니다. 하지만 처음에 1인실에 들어가지 못하였다고 하더라도 점차적으로 1인실로 바꿀 기회는 언제라도 있습니다.  1인실이라는게 사장실처럼 완전히 다른사람들과 분리된건 아닙니다. 6인실에 큰 벽을 세워서 1인실로 만든거라 에어컨을 잘못 틀면 누군 추울수도 있는 구조입니다. 1인실  업무 분위기 업무 분위기는 꼰대가 적고 수평적인 편입니다. 이게 그럴수 밖에 없는게 1인, 2인실 이다 보니 온전히 자기 업무에 집중할 수 있는 시간이 많기 때문입니다. 사택 관련 내용 연구원인 경우 사택 관련해서 문의 주신 분이 좀 있습니다.  티맥스 사택은 티맥스 건물 근처에 있는 아파트에 자리를 줍니다. (예 : 트리폴리스)  트리폴리스가 평수가 많이 넓은 편으로 알고 있는데, 방 하나에 두명이서 살게 됩니다. 사람이 비어있으면 그사이에 혼자 거주할 수도 있습니다.  회사 근처라 시간도 절약되고 그외 몇몇 비용에 대하여 회사에서 지불해주는 부분도 있습니다.  처음 입사하시게 되면 아마 인사팀에서 사택 들어갈거냐고 물어보는데요. 만약 고민되고 당장 급한게 아니면 나중에 결정하셔도 됩니다. 입사후에 회사 내부 사이트에서 신청이 가능합니다.  식비 관련 티맥스 식비에 대하여 질문도 많습니다. 티맥스 식비는 거주하는 회사의 건물에 따라 다릅니다. 일단 공통적으로는 아침 천원, 점심 3천원, 저녁 7천원을 받을 수 있습니다. 저녁은 야근을 해야되는 점은 있습니다. 주말에는 8천원을 두번 제공해줍니다.  티맥스 미금 본사의 경우는 구내식당을 사용하게 되는데, 할인 금액을 제외하고 2천원, 3천원, 0원을 추가로 지불해...

logstash 도커 이미지 사용하기

이미지
안녕하십니까. 현재 저는 현업으로 엘라스틱 서치를 사용하고 있습니다.  엘라스틱 서치를 테스트 하는 도중 테스트 디비의 데이터를 indexing할 필요성이 생기게 되었는데요. 직접 DB 쿼리를 통해서 데이터를 조회하여 데이터를 입력하기에는 번거로움이 많습니다. 그래서 logstash를 사용하기로 결정 하였습니다.  logstash를 로컬에 설치하기도 또한 귀찮은 점이 있기도 하여서 도커를 통해서 사용을 하였고 이번에는 간략하게 사용 방법을 리뷰 해보려고 합니다.  Logstash Docker Image 다운로드 logstash 이미지는 엘라스틱 서치 공식 홈페이지에서 찾을 수 있습니다. https://www.docker.elastic.co/r/logstash  자신의 컴퓨터와 맞춰서 실행하시면 되고, 또한 ES 버전도 잘 맞아야 합니다.  저같은 경우는 ES 버전 6.6.0을 사용하였고, logstash는 최신 버전을 사용하였습니다. 이후 아래와 같은 오류를 보게 되었는데요, ES 공식 페이지의 글 에서는 ES의 버전을 올리라고 하였습니다. [ERROR] 2021-07-26 05:09:18.379 [[.monitoring-logstash]>worker0] elasticsearchmonitoring - Encountered a retryable error (will retry with exponential backoff) {:code=>400, :url=>"http://192.168.153.77:9200/_monitoring/bulk?system_id=logstash&system_api_version=7&interval=1s", :content_length=>1369}  가능하면 최신 ES를 사용하는게 좋을 듯 합니다. CONFIG 설정 이후에는 컨피그를 설정해주어야 합니다. 공식 페이지는 여기서 확인하실 수 있습니다. default ip는 elasticsearch 라는 ...