https://www.youtube.com/watch?v=ALaQ642ZACg
Monolithic -> Microservices
**Microservices Architecture 개념의 등장**
- 서비스 단위로 별도의 프로세서 또는 어플리케이션으로 독립적으로 운용
- 자기가 필요한 데이터나 서비스는 통신의 개념으로 요청받고 제공한다 (REST ful API)
계정 보안 서비스를 만든다...
- 다른 지역에 로그인이 되었을때 알림, kick out, 계정 잠금
필요한 서비스를 정의하고 각각들이 참조할 수 있는 REST ful 플라스크? 에 맞춰 정의했지만..
- 이 서비스들이 제공하는 서비스에 따라 조건에 따라 처리를 해줘야하는 중앙 제어부가 생김
- 다른 서비스들이 수정되었을때 중앙 제어부도 수정되어야 한다
- 마이크로 서비스들의 상호 의존성을 좀 개선하려고 하다가 kafka를 사용하여 구현하게됨
버스 형태 메세지 flow 구현
- 최초 로그인에 대한 정보가 생기면
- IPChecker가 가장 먼저 소비하고
- 그 다음 Logger에 대해 기록이 되고
- 그 다음 Security Module에서 보안에 대한 동작이 취해진다
- 중간에 생성되는 Event를 다른 Service가 같이 가져갈 수도 있다.
이런 구현에 왜 kafka를 사용했냐
- 이런 queue 서비스들 중에서 가장 빠르다
- 구조가 간단해서 설치 운용이 편리
- 분산된 환경에서 운용이 가능, 특정 노드 fail시 안전성
kafka를 업데이트 하려면, 클라이언트 모듈과의 디펜던시가 존재
- 별도의 Publisher, Consumer App을 둬서 한 계층 분리
자신의 서비스의 정보에 관심이 있는 Service들에게 동시에 message를 전달할 수 있고
특정 서비스 endPoint에서 해당 flow가 끝난다면 message를 굳이 전달하지 않는 것으로 flow 통제 가능
Consuming configuration
- 어떤 topic을 받을건지, endpoint는?, streaming or단방향 등등의 설정
'Conference, 강연' 카테고리의 다른 글
SLASH21 #테스트 커버리지 100% (0) | 2021.05.16 |
---|---|
우아한테크 세미나 #우아한 객체지향 (0) | 2021.05.14 |
SLASH21 #토스 서비스를 구성하는 서버 기술 (0) | 2021.05.07 |
댓글