일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- 자바
- Spring Cloud
- SQL
- retry
- MVC
- 디자인 패턴
- JPA
- PL/SQL
- 페이징
- 운영체제
- aws
- feign
- 알고리즘
- Spring Cloud Feign
- Spring
- 자료구조
- 백준
- 데이터베이스
- 오라클
- 코딩
- DP
- MST
- Kafka
- 클라우드
- Intellj
- golang
- db
- 쿼리
- Jenkins
- Today
- Total
목록feign (9)
justgo_developer
Json File Download(HttpURLConnection, FeignClient) 목차 HttpURLConnection 이용한 파일 다운로드 FeignClient 이용한 파일 다운로드 상세 1. HttpURLConnection 이용한 파일 다운로드 InputStream : 파일 데이터를 읽거나 네트워크 소켓을 통해 데이터를 읽거나 키보드에서 입력한 데이터를 읽을 때 사용 read(byte[] b): 배열 b의 크기만큼 데이터를 읽어와서 b에 저장한다. read(byte[] b, int off, int len) : len의 크기만큼 데이터를 읽어와서 배열 b의 off 위치부터 저장한다. FileOutputStream : 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용한다. 주어진 이름의 파일..
# 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를 실행. 일정 시간이 지나서 다시..
Spring Cloud Feign 목차 Feign Client 정의 Feign Client 예제 Feign Client 추가 설정(심화) 1. Feign Client 정의 Feign은 넷플릭스에서 개발한 웹 서비스 Client Binder 도구. 어노테이션을 붙이고, interface를 선언하여 쉽고 편하게 사용할 수 있다. 2. Feign Client 예제 spring-cloud-starter-openfeign maven 추가 1.8 Finchley.RELEASE org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} po..