일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- AccessLog
- traceId
- Spring
- 회고
- nginx
- RestTemplate
- Elasticsearch
- EDA
- SpringBoot
- logstash
- filebeat
- Sleuth
- kafka
- Spring Integration
- MSA
- grafana tempo
- feignclient
- Distributed Tracing
- Today
- Total
목록전체 글 (4)
곰돌이형의 개발일지

들어가며 백엔드 서버를 운영하다보면, 보통 gateway서버로 nginx를 많이 사용하게 되는데, 사용자들이 어떻게 어디서 접속했는지, 그리고, 에러 발생시 어떤 API 호출로 인해 발생했는지를 파악하기 위해 AcessLog를 파일 형태로 남기는 경우가 많습니다. 하지만 운영하다보면 이슈가 발생할때마다 직접 Nginx에 들어가서 파일을 살펴보기는 쉽지가 않은데요 ㅎㅎ 이럴때 AccessLog 파일을 Filebeat, Logstash를 이용해서 쉽게 ElasticSearch에 내보내서 검색에 용이하게 만들 수 있습니다. 플로우 1. Nginx에서 AccessLog를 파일로 기록 2. Filebeat에서 AccessLog 파일을 tail하면서 Kafka로 Message를 발행 3. Logstash에서 Ela..

들어가며 MicroService 구조가 유행함에 따라 여러개로 쪼개져있는 구성요소들, aggregate 기준으로 쪼개진 배포 단위(kubernetes pod이나 vm), 그들 사이의 통신을 담당하는 카프카 같은 메세징 툴, DB 나 ElasticSearch 같은 인프라 요소들까지 백엔드 개발자들이 신경써주어야 할 부분들은 늘어만 가고 있습니다. 그리고 특히 MicroService에서는 서로 다른 컴포넌트들끼리의 비동기적 호출이나 통신으로 인해서 복잡도는 더더욱 늘어가는 추세이고, 이를 logging하거나 monitoring 하는 툴들은 많아지고 있고, 하나의 요청에 대해서 일어나는 모든일에 대한 tracing도 필요성이 늘어가기 시작하였습니다. 그리고 이러한 추세에 대응하는 하나의 솔루션이 Distrib..

이번 년 3월에 도입시작해서 4월쯤에 도입을 완료한 feignClient에 대해서 이야기해보려고 합니다. 하지만 도입한 지 얼마 안 되어서 spring 쪽에서 공식적으로 http interface client를 제공해 준다는 발표가 나와서 피눈물을 흘리게 만들기도 했었죠 ㅋㅋ (참고 : https://www.youtube.com/watch?v=A1V71peRNn0) 도입 이유- RestTemplate Deprecated 예정spring 5에 추가된 주석에 따르면 추후 버전 업그레이드를 위해서는 resttemplate을 전환할 필요가 있었습니다. 더보기NOTE: As of 5.0 this class is in maintenance mode, with only minor requests for change..

들어가며 Event Driven Architecture(EDA)로 개발을 하는 경우, event 전달 방식으로 가장 많이 쓰는 플랫폼 중 하나가 Kafka일 것입니다. 보통 한 도메인에서, 추가, 변경, 삭제가 일어나면 이러한 변화를 이벤트로 보내게 되고, 이것을 다른 도메인에서 받아서 이에 대한 처리를 하는 경우가 많을 것입니다. 이러한 처리는 비동기로 이루어지는 경우가 많고, 따라서 처리에 대한 실패도 당연히 있을 수 있습니다. 이런 이벤트 처리에 대한 실패가 있을 때 이것을 어떻게 처리해야 할까라는 고민이 항상 있어왔고, 부족하지만 저희 부서에서 처리했던 방식을 공유하고자 합니다. 이벤트를 받아서 처리하는 유형과 주된 처리 실패 원인 한 도메인의 변경을 내부의 다른 도메인에서 받아서 상태를 업데이트..