일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 페이징
- feign
- retry
- SQL
- 운영체제
- Jenkins
- aws
- Kafka
- Spring
- 오라클
- 쿼리
- PL/SQL
- Spring Boot
- golang
- Spring Cloud Feign
- 자료구조
- 디자인 패턴
- MVC
- Intellj
- DP
- 클라우드
- 자바
- 코딩
- 데이터베이스
- MST
- 백준
- db
- JPA
- 알고리즘
- Spring Cloud
- Today
- Total
목록IT (131)
justgo_developer
XML Parsing 목차 JSON vs XML XML 사용 이유 XML Parsing 예제 XML 생성 예제 상세 1. JSON vs XML XML이란? XML은 EXtensible Markup Language의 약자입니다. XML은 HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)입니다. 이 언어는 사람과 기계가 동시에 읽기 편한 구조로 되어 있습니다. XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌습니다. 또한, XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있습니다. JSON이란? JSON은 JavaScript Object Notation의 약자입니다. 브라우저 ..
RabbitMQ 목차 RabbitMQ 개념 RabbitMQ 사용 이유 RabbitMQ 적용 예제 Kafka vs RabbitMQ 차이 상세 1. RabbitMQ 개념과 원리 RabbitMQ는 오픈 소스 메시지 브로커 소프트웨어로서, AMQP(Advanced Message Queueing Protocol) 프로토콜을 구현한 메시지 브로커입니다. AMQP란? : Advanced Message Queueing Protocol의 약자로 메세지 큐 오픈소스에 기반한 표준 프로토콜입니다. Producer가 Middleware Broker에 메세지를 발행하고 Consumer가 Broker의 Queue를 통해 메세지를 구독합니다. AMQP는 Producer, Consumer, Broker, Exchange, Bindi..
GraphQL(Graph + Query Language) with Spring-boot 목차 GraphQL 개념 GraphQL 배경 GraphQL 원리 GraphQL 구조 GraphQL 적용 예제 GraphQL 단점 개요 MSA 기반 프로젝트를 진행하면서, 한 서비스에 테이블 갯수가 50~60종이고 각 테이블 항목수가 500개 이상으로 관리되는 항목들이여서 실제 타서비스에서 요청하는 테이블, 항목 들이 모두 달랐다. 따라서, 타 서비스에 API를 제공하기에는 너무 많은 EndPoint를 개발하여야 했다. 이 문제를 해결하기 위해 GraphQL이라는 언어를 사용하여 개발을 진행했었다. 이직 성공 후 새로운 직장에 가기 전, 이전 직장에서 사용했던 GraphQL 언어에 대해서 다시 한번 복습해보며 적용해보려..
# Feign Configration 반영 안되는 현상 원인 및 해결 ## __개요__ Feign Header 넣는 Config를 따로 만들어 Feign Configuration에 적용하엿으나 반영이 안되는 현상이 발생. ___ ## __상세__ 원인 : 같은 FeignClient name이지만 다른 Configuration일때 반영 안됨. 해결 : FeignClient name 변경하니 정상 작동. -> KakaoOpenApiClient에서 KakaoFeignConfiguration가 반영되어야 하지만 KakaoTestConfig가 반영됨. Feign name 별로 Configuration이 설정됨 name 같은 걸로 안하게 주의해야 할듯. -> FeignClient name이 key라서 configu..
개요 Legacy를 MSA로 전환 중인데 모든 API를 Feign을 이용하여 전환하려고 개발중이다. Response Header를 가져와야 하는 경우도 있고, Http Status를 가져와서 처리해야 하는 경우도 있다. Feign은 Response 객체를 제공하고 있어 이 객체로 리턴 타입을 설정하면 가져 올 수 있는데 Response에 다른 값들도 존재하고 있어 한번 살펴보려고 한다. 상세 Feign.Response 객체를 FeignClient Interface 리턴 값으로 지정만 해주면 Response 객체에서 내가 원하는 HTTP Status, Header를 가져와 처리 할 수 있다. @FeignClient(name = "kakao-open-api", url = "https://dapi.kakao...
문제 Legacy를 MSA로 전환 중 특정 큐를 읽은 후 삭제하는 로직이 있었는데, 해당 API는 POST 방식의 HTTP 요청이지만 빈 body로 요청을 하는 경우였다. 하지만, 그 경우 Feign Client로 호출시 411 "Length Required" 에러가 발생하였다. Content-Length: 0으로 헤더를 세팅해도 동일. 해결방법 body에 빈 스트링을 줘서 처리 함 Feign Client에서 제공하는 Feign 종류는 Default, ApacheHttpClient, OkHttpClient 3가지가 있음. Default는 기본으로 Empty body여도 뭔가를 생성하는 Feign Client 버그인거 같다. 따라서 ApacheHttpClient, OkHttpClient 둘중 하나를 사용하..
Spring Cloud Feign retry customize 기본적으로 Spring Cloud Feign retry 대상은 IO Exception이다. IO Exception이란 입출력 동작 실패 또는 인터럽트 시 발생하는 Exception ErrorDecoder 인터페이스를 직접 구현하여 에러 코드별로 처리 할수 있다. retry 대상이 아닌 에러 코드를 retry 처리 하려면 아래와 같이 해당 코드에 RetryableException 예외를 발생시켜주면 된다. yml 설정에 feign.client.config.feignName.errorDecoder에 ErrorDecoder 인터페이스를 직접 구현한 클래스 경로를 추가해준다. package com.study.springcloud; import fei..
[문제] Feign과 hystrix 사용시 요청 시 실패하는 경우가 발생한다. Feign 문제는 아니고 hystrix 때문에 발생하는 문제이다. [해결] stackoverflow에서 같은 문제에 대한 답변을 찾아보니 htstrix default 요청에 대한 timeout 설정이 작아서 그렇다고 한다. 기본 값이 1초라 요청이 오래 걸리는 경우 반드시 수정이 필요 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds # 요청에 대한 Time Out 설정 이 설정은 Hystrix 가 적용된 메서드의 타임아웃을 지정한다. 따라서 보통 feign read timeout과 connect timeout 지정한 초를 포함하여 여유있게 설정하..
Feign client Timeout 설정 방법 [global] feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 loggerLevel: basic ※ feignClient 별로 처리도 가능 feign: client: config: feignName: #FeignClient에서 name 설정값으로 준 값 connectTimeout: 5000 readTimeout: 5000 loggerLevel: basic Feign logging : loggerLevel로 위에 예시처럼 Clinet별로 처리 가능 Feign logging은 DEBUG에서만 동작 logging.level.com.study.springcloud.KakaoOpenAp..
목차 Hystrix란? Feign fallback 예제 Feign fallback 테스트 시 에러 이슈 상세 1. Hystrix란? Hystrix란? netflix에서 만든 라이브러리로 마이크로 서비스 아키텍처에서 분산된 서비스간 통신이 원활하지 않은 경우에 각 서비스가 장애 내성과 지연 내성을 갖게하도록 도와주는 라이브러리다. Hystrix란? spring-cloud의 서비스 중 하나. Circuit Breaker Pattern을 사용. API 서버가 장애 발생 등의 이유로 일정 시간(Time window) 내에 여러번 오류 응답을 주는 경우(timeout, bad gateway 등) 해당 API 서버로 요청을 보내지 않고 잠시 동안 대체(fallback) method를 실행. 일정 시간이 지나서 다시..