백엔드 개발 7

[RabbitMQ] RabbitMQ 구성요소와 용어 정리

용어 RabbitMQ의 클라이언트 브로커와 통신하는 모든 애플리케이션을 의미함 Producer 메세지를 생성하고 RabbitMQ 브로커로 전송함 Consumer RabbitMq 브로커로부터 메세지를 받아서 처리함 RabbitMQ의 브로커 중앙 메시징 시스템 브로커는 Producer로부터 메세지를 받아서 적절한 큐에 저장하고 그 큐의 메세지를 Consumer에게 전달함 구성요소 Exchange 메세지를 받아 적절한 큐로 라우팅하는 컴포넌트 direct, topic, fanout, headers등 타입을 가짐 각 타입에 따라 메세지를 다른 방식으로 라우팅함 Queues 메세지가 저장되는 곳 메세지를 컨슈머에게 전달하기 전에 일시적으로 저장하는 버퍼 역할 Blindings Exchange와 큐 사이의 연결을 ..

[RabbitMQ] RabbitMQ 공부 자료 모음

이번 주에 RabbitMQ에 대해서 알아보았다. 꽤나 재밌는 내용이 많았다. 단순히 producer, consumer만 있는게 아니라 exchange라는 개념까지? 그리고 클러스터링과 미러링, 성능에 대한 이야기도 모두 재밌게 보았다. AMQP라는 새로운 프로토콜에 대해서도 알 수 있었다. (디테일한 스펙은 내용이 너무 많아서 다 보지 못했다.) 공부하면서 보던 링크를 기록해둔다. RabbitMQ에 대해서 간략하게 학습하고 싶은 분이 계시다면 아래 링크를 참고하시기 바란다. RabbitMQ 공식 사이트 https://www.rabbitmq.com/ RabbitMQ 성능 가이드 https://chopstick-91.tistory.com/160 RabbitMQ internal https://github.co..

[RabbitMQ] vhost에 대한 이해

vhost는 무엇일까? vhost 즉 virtual host는 메시징 시스템 내에서 논리적으로 분리된 파티션 또는 네임스페이스임 vhost는 사용자, exchange, queue 및 binding 등 RabbitMQ 리소스에 대한 독립적인 네임스페이스를 제공 다양한 프로젝트나 환경에서 동일한 RabbitMQ 인스턴스나 클러스터를 공유하면서 리소스 간 충돌이나 권한 문제를 방지함 왜 vhost를 사용해야할까? 리소스 논리적 분리 vhost는 RabbitMQ 서버에서 논리적 분리를 제공함 각 vhost는 독립된 네임스페이스에서 exchanage, queue, binding등의 리소스를 관리함 이 점이 여러 애플리케이션, 프로젝트, 또는 팀이 동일한 RabbitMQ 인스턴스를 공유하면서도 각자의 리소스를 분리..

[RabbitMQ] RabbitMQ vs Kafka 성능 비교 논문

RabbitMQ에 대해 학습하는 도중 RabbitMQ와 Kafka에 대해 비교한 흥미로운 논문을 발견했다. 학사 학위 논문으로 보이는 이 논문을 읽어보고 간략하게 정리해보았다. 메세지 브로커에 대한 깊은 난이도라기보다는 두 오픈소스간 성능 비교를 해본 논문이다. 꽤 재밌다. RabbitMQ vs Kafka에 대해 재밌게 읽을 수 있다. 커피마시면서 읽기에 딱 좋다. 논문 링크 https://www.diva-portal.org/smash/get/diva2:1674316/FULLTEXT01.pdf 내용 요약 분산 시스템, MSA 구조는 컴포넌트의 결합도를 낮추는 방향임 그래서 각 디바이스로 컴포넌트가 분산되있을때,시스템 내 컴포넌트 간 통신을 위해 MOM이 필요하다. 메세지 브로커는 MOM의 핵심이다. (M..

[RabbitMQ] RabbitMQ에 대한 이해

최근 RabbitMQ를 사용할 일이 있었다. 이해가 부족해서 중간에 잘못된 코드를 사용해서 문제가 발생했다. 이번 기회에 RabbitMQ란 무엇인지, 왜 쓰는지, 어디에 쓰는지 학습해보고 간략하게 정리해보고자 한다. 메세지 드리븐? 서비스 사이에 비동기적으로 메세지를 전달하는 방식이다. 그래서 서비스들은 느슨한 결합 -> decoupling 된 의존성을 가지게 된다. -> 부하 관리, 탄력적인 흐름 제어가 가능함 이 메세지 드리븐의 장점을 얻기 위해 메세지 미들웨어를 쓸 수 있다. -> 그래서 MQ를 쓸 수 있다. 그런데 카프카는? RabbitMQ는 큐 카프카는 로그 큐 선입 선출 메세지는 소비되면 큐에서 삭제됨 일시적인 메세지 보관 생산자, 소비자가 독립적 비동기적으로 존재할 수 있다. 큐잉, 버퍼 역..

[Tech] 인증과 인가에 대한 이해

인증, 인가에 대해서 간략하게 정리해보고자 한다. 내용이 꽤 많고 사용해본 지 시간이 꽤 흘러서 간단하게 정리해보겠다. 인증과 인가 시스템의 자원을 적절하고 유효한 사용자에게 전달하고 공개하는 방법이다. 인증은 Authentication 즉 로그인이다. 인가는 Authorization 즉 인증 작업 이후 행해지는 작업이다. 인증된 사용자에 대한 자원에 대한 접근 확인 절차를 의미한다. 유저는 관리자 페이지에 접속할 수 없다. 왜냐면 관리자 페이지에 인가되어 있지 않기 때문이다. 세션 기반 인증 세션 기반 인증은 쿠키와 세션과 관련된 내용이다. 세션 기반 인가는 사용자 인증 정보가 서버 세션 저장소에 저장된다. 사용자가 로그인하면 인증 정보를 서버 세션 저장소에 저장하고 사용자에게 저장된 세션 정보인 Se..

반응형