EIP - Introduction

Eungho won·2022년 12월 24일
0

필요성

대부분의 애플리케이션은 독자적으로 실행되지 않고, 여러 애플리케이션과 연계되어 동작한다

따라서 시스템 간의 연동에서, 몇 가지 어려움이 있는데 이는 다음과 같다

  1. network are unrealiable : 시스템 간의 네트워킹 간 무슨일이 발생할지 모른다
  2. network are slow : 병목현상 등으로, 단일 어플리케이션과 같은 설계로는 분산시스템를 설계한다면 안된다
  3. Any tow applications are different : 각 각의 어플리케이션은 각기 다른 언어와 시스템 환경을 가지고있다. 따라서 적절한 인터페이스가 필요하다
  4. Change is inevitable : 어플리케이션은 항상 변하므로, 변화에 있어서 dependency를 최소화 할 수 있어야한다

해결책

개발자들은 이런 이슈들을 해결하기 위하 다음 4가지 접근법을 사용했다

  1. File Transfer : 파일을 통한 데이터 교환으로, 이를 위해서는 파일이름과 위치, 포멧, 생성 및 제거 날짜에 대한 시스템 간 합의가 필요하다

  2. Shared Database : 공통의 DB를 공유하는 방법으로, 데이터 전송이 불필요하다

  3. Remote Procedure Invocation : 애플리케이션의 함수를 노출하여 다른 애플리케이션이 사용하도록 하는 방식으로, 실시간/동기적으로 일어난다

  4. Messaging : 한 애플리케이션이 채널에 메세지를 publish 하는 방식으로, 수신하는 애플리케이션은 나중에 이를 consume하는 방식이다. 포맷에 대한 합의가 필요하고, 비동기적인 방식이다

카멜은 위의 Messaging 방식을 사용한다

profile
kill to code

0개의 댓글

Powered by GraphCDN, the GraphQL CDN