[완] 개인서버 개발/공통 서비스 개발(완)

#1 데이터 스트리밍 시스템 구축 기획

북극곰은콜라 2023. 3. 14. 18:10
반응형

 


개요

데이터 스트리밍에 대한 공부를 어느정도 진행했습니다. 배운걸 써서 재밌는걸 만들어보고 싶어서, 홈 서버에 해당 서비스를 구축해보려합니다. 계획은 Confluent Platform을 통해서 kafka의 메시지 큐를 활용해서 데이터를 스트리밍 하고, 해당 정보를 db 같은 저장소에 쌓은 뒤 API 서비스를 제공해서 client에 제공합니다.

컨텐츠로는 지인의 요청으로 선택된 블리자드 developer API를 활용해서 특정 게임의 경매장 정보를 client에게 제공하는 것입니다. reference가 되는 사이트도 참조해 보려합니다.

기본적으로 서버에 개발환경 세팅부터 구축하는 경험을 포스팅에 담을 예정입니다.

 


Plan

간단하게 설계해본 구성입니다. 구축하면서 변할 가능성이 높습니다.

기본 구현 사항

  1. blizzard developer: 게임 속 경매장 데이터 소스
  2. batch service: spring boot와 spring batch를 이용해서 데이터를 긁어서 kafka에 publish 하는 서비스
  3. confluent platform: kafka를 내장하고 있으며, 각종 커넥터 및 어드민 페이지등 종합 플랫폼을 제공. 서버에 설치해서 구동
    1. kafka: 메시지 큐
    2. DB sink connector: 데이터를 적제하는 sink connector
  4. API Service: 사용자에게 db에 적제된 데이터를 client에게 제공, spring boot webflux를 통해 구현
  5. OAuth Server: 사용자의 인증 및 인가를 담당하는 서버, 사용자 인증정보는 nextCloud의 사용자 데이터를 사용
  6. client: 미정, 현 계획은 플러터를 이용한 앱 및 웹페이지

추가 구현 사항

  1. 도커 등 컨테이너 서비스 설치
  2. jenkins를 통한 CI / CD 구현
  3. logstash를 통해 log 수집, Elastic Search 및 kibana를 통한 로그 모니터링 시스템 구축

 


REFERENCE

https://developer.confluent.io/?_ga=2.249628098.576674167.1678710257-1360731436.1678710257

https://develop.battle.net/access/clients/create

https://hackmd.io/s/codimd-oauth-nextcloud

 

 

 

반응형