본문 바로가기

작업일지/안동버스 API 연동

(5)
#5) 안동버스 API 적재 및 조회 프로그램 완성 적재API는 안동 버스정류장 별 버스 도착정보를 DB에 적재하는 역할 - 적재 프로세스 : 1. 안동버스 open api 호출 response 원문을 elasticSearch에 적재 2. http code 200이면 캐싱을 위해 redis에 적재 (타임아웃 10분) 3. kafka를 이용해서 데이터를 컨슈머에 넘김 4. 컨슈머는 kafka에 넣어진 데이터를 가져와서 JPA를 사용해 Mysql에 적재 5. 에러발생시, mongo에 exception 정보 적재 조회API는 적재된 버스 도착정보를 불러오는 역할 - 조회 프로세스: 1. Redis에 캐싱된 값이 있으면 redis에 적재되있는 값을 조회 2. Redis에 캐싱된 값이 없다면 mysql에 적재되어있는 최신 데이터을 조회 3. Redis, mysql..
#4) kafka로 데이터 발행(Publish)과 구독(Subscribe) 동작하기 카프카는 대용량의 실시간 로그처리에 특화되어 있는 솔루션이며, 데이터 유실없이 안정적으로 메세지를 전달할 수 있다. 분산환경에 특화되어 설계되어 있다는 특징이 있으며 다른 메세지 큐(ex.RabbitMQ)보다 성능적으로 뛰어나다고 한다. Publisher-Subscriber 모델 발행과 구독 모델을 사용한다. 발행과 구독이란 메세지를 특정 수신자에게 다이렉트로 전달하는 시스템이 아니다. Publisher는 메세지를 topic을 통해서 카테고리화하고 Subscriber는 그 topic을 구독함으로써 메세지를 읽어올 수 있다. Publisher는 topic에 대한 정보만 알고있고, Subscriber도 topic만 바라보기 때문에 발행자와 구독자는 서로 모르는 상태다. topic과 partition 메세지는..
#3) Redis(레디스)로 캐싱하기 Redis(레디스)는 메모리 기반의 “키-값” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 NOSQL 중 하나이다. 인메모리 기반이지만 삭제 명령을 하지않으면 영속성을 지원하는 인메모리 데이터 저장소이고 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다. 그래도 메모리 기반이기때문에 데이터 적재용으로 쓰기에는 무리가 있을 것으로 보인다. 출처 : 조대협님의 블로그 다음의 그림과 같이 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원한다. Redis와 Springboot 연동 1. pom.xml에 Redis dependency 추가 org.springframework.boot spring-bo..
#2) 엘라스틱서치(Elasticsearch)로 원문 데이터를 저장하기 엘라스틱서치는 JSON구조를 사용해 스키마가 동적으로 변화할 수 있는 특징을 가진다 그렇기 때문에 필요없는 데이터 컬럼은 빼서 저장할 수 있으므로 데이터 공간을 절약할 수 있다. 그리고 기본적으로 검색엔진이므로 검색 기능에 빠르고 강력한 기능이 탑재되어있다. 또한 다양한 프로그램 언어를 지원하고 REST API를 제공해 HTTP 형식으로 사용할 수 있다. RDBMS와 비교해보면 다음과 같다. RDBMS Elasticsearch Database Index Table type Row Document 키바나(Kibana)는 ELK에서 K를 맡고있는 솔루션이다. 엘라스틱서치와 연계하며 유저 인터페이스를 제공한다. 즉, 엘라스틱서치의 GUI툴이라고 쉽게 생각하면 될것같다. Elasticsearch와 springB..
#1) 안동버스 API 연동 계획 어느덧 입사한지 7개월이 지났다. 현재 유명 IT회사의 서비스의 고객센터에서 사용하는 솔루션을 개발 및 유지보수중인데 조만간 팀 프로젝트도 참여를 할 예정이다...(아마도) 지금 우리팀 프로젝트에서 사용되는 mongDB, Redis, ElasticSearch, Kafka, MSA 등등은 지금 내가 맡고있는 프로젝트에서는 사용하지 않아서 접해보지 못했다.. 팀 프로젝트 참여 전 공부하기 위해 안동버스 open api를 이용해서 간단한 토이프로젝트를 만들어보고자 한다! 안동버스 open api 가이드 홈페이지 bus.andong.go.kr/m01/s04.do?c=20400&i=20440&tab=2 안동시 버스정보시스템 안동시 버스정보시스템 bus.andong.go.kr 개발환경 - IDE : intelliJ..

반응형