212
이벤트 기반 마이크로서비스 구축
컨슈머 그룹과 스트림 이름을
context
매개변수에 담아 전달하면 클라이언트가 생성되고 이
벤트를 소비/처리한 이후에는 이벤트 브로커에 오프셋을 커밋합니다.
FaaS
프레임워크에 성공
결과를 반환하는 것으로 함수는 종료됩니다.
랙 트리거가 함수를 너무 자주 트리거한다면 마지막 실행 이후로 아직 함수가 웜한 상태일 가
능성이 높습니다. 이벤트 브로커 클라이언트에 연결하는 오버헤드는 원인이 아닐 것입니다. 물
론 클라이언트 및 이벤트 브로커에 설정된 타임아웃에 따라 상황은 달라집니다. 함수가 아무
일도 안 하는 시간이 길어질수록 컨슈머 그룹 리밸런스와 클라이언트의 콜드 스타트 때문에 함
수 인스턴스가 처리하는 작업량은 조금씩 줄어들 것입니다.
9.5.3
스케줄에 따라 트리거
일정 주기마다, 그리고 지정된 날짜에 함수가 시작되도록 스케줄링할 수도 있습니다. 이렇게
스케줄링된 함수는 주기적으로 시작되고 소스 이벤트 스트림을 폴링해서 새 이벤트를 가져오
며, 요건에 따라 이벤트를 처리하거나 그대로 종료시킵니다.
SLA
를 유지하려면 폴링 주기는
짧아야 하지만 폴링을 너무 자주 하면
FaaS
프레임워크, 이벤트 브로커 모두 과도한 부담이 될
수 있습니다.
시간 기반 트리거를 응용한 클라이언트 코드는 컨슈머 그룹 랙 트리거 예제와 똑같습니다.
9.5.4
웹훅에 반응해 트리거
당연히 함수를 직접 호출해서 트리거할 수도 있습니다. 이렇게 하면 모니터링 프레임워크, 스
케줄러, 기타 서드파티 애플리케이션과 맞춤 연계가