카테고리 없음

Open Feign VS Apache Kafka

류창 2023. 12. 18. 16:44
반응형

 

 

 

 

Open Feign과 Apache Kafka 간의 특징과 장단점을 소개시켜드리기 위해 이 글을 작성합니다.

 

 

 

두 기술의 공통점

 

1. MSA 환경에서  서비스간의 통신이 가능하게 한다.

 

2. 1번에 의하여 테스트를 하기 매우 까다롭다.

 

Open Feign만의 특징

 

Kafka와 비교하여 가장 뚜렷한 특징은    Response가 있는겁니다.

A서비스가  B서비스로 통신을 보낼때,   B서비스에서 다시 Response가 날아옵니다.

이 특징으로부터 오는 장단점이 있습니다.

 

장점:   Response가 오기 때문에 검증적으로 확실하다

이유 :  응답이 성공적이면 로직을 처리하고,  응답이 오류가 오면 재시도나  에러처리를 유도 할 수 있음.

 

단점:  코스트 (비용)이 많이든다.

 

이유: 여기서 말하는 코스트는  개발자의 노력,시간 비용과,  서버 비용 모두 포함하는 말입니다.

Open Feign은   하나의 서비스에서 다른 하나의 서비스만 처리해주기 때문에,  

다 대 다 서비스인 MSA환경에서  관리해줘야하는 OpenFeign의 수는 기하급수적으로 늘어날 가능성이 있습니다.

 

 

다른 서비스로 요청을 보내는 API

 

 

 

Apache kafka만의 특징

 

Kafka는  Open Feign과 다르게  Response가 없습니다.즉, 내가 요청을 보냈는데,  제대로 보내졌는지는 본인이 확인할 방도가 없습니다.

 

Kafka는  Producer서비스 에서 발행한 정보를  Consumer 서비스가 (Listen) 듣는 형식으로

일방적으로 데이터를 줍니다.

 

이 특징으로부터 오는 장단점 역시 소개해 드리겠습니다.

 

장점:   OpenFeign과 달리 코스트가 쌉니다.

이유 :  양방향 통신보다 단방향 통신이 훨씬 서버측에 부담이 덜합니다.

게다가,  카프카는 Producer와 Consumer관계를 잘 설정하면, 1대 다 데이터 통신도 가능하게 합니다.

 

 

단점:  Kafka를 너무 신뢰한다.

이유:  Kafka 가 만약 요청을 보냈을때 서버가 죽어버리면??

이럴경우  DLT (Dead Letter Topic)으로 어느정도 에러처리가 가능하지만 

역시 Kafka 에게 통신을 모두 일임하고 의존해야 합니다.   

 

 

카프카의 Producer의 발행 로직
카프카의 Consumer 서비스 로직

 

 

 

마무리

 

OpenFeign은  확실한 검증작업이 필요한곳을 적용,

그 외엔 Kafka로 데이터 통신을 적용 하는것이 바람직하다고 봅니다.

반응형