[아키텍처 설계] 호텔 예약 애플리케이션(예: Airbnb, OYO)의 시스템 설계 아키텍처

Airbnb, Booking.com 및 OYO와 같은 호텔 예약 앱은 어떻게 호텔 목록에서 예약, 결제까지 원활한 흐름을 제공합니까? 그리고 결함없이 모두! 이 블로그에서 이에 대한 자세한 설명을 얻을 수 있습니다.
크기가 너무 크기 때문에 많은 사용자 트래픽을 처리해야 합니다. 따라서 이를 관리하려면 마이크로서비스 아키텍처를 따라야 합니다. 즉, 각 작업 유형에 대해 시스템을 작은 조각으로 나누어야 합니다.
프로세스를 하나씩 이해해 봅시다. 나는 그것을 4 부분으로 나누었습니다 :

  • 호텔 관리 서비스

  • 고객센터(검색+예약)

  • 예약 서비스 보기

호텔 관리 서비스

호텔 관리자/소유주에게 제공되는 서비스입니다. 여기에서 관리자는 호텔에 대한 정보를 관리할 수 있습니다. 여기에서 관리자는 데이터에 액세스하고 업데이트할 수 있는 단일 포털을 갖게 됩니다.

45b13fe303223874a19bb8d3afbc0eee.png

  • 호텔 관리 서비스 아키텍처

호텔 관리자 애플리케이션에서 API가 트리거될 때마다 초기 요청이 로드 밸런서로 전송된 다음 처리를 위해 요청을 원하는 서버로 분배합니다. 호텔 서비스 클러스터에는 호텔 서비스 관련 API용 컨테이너가 있는 여러 서버가 있습니다.
이제 호텔 서비스는 마스터-슬레이브 아키텍처에 따라 호텔 데이터베이스 클러스터와 상호 작용하여 데이터베이스의 부하를 줄입니다. 기본적으로 이 접근 방식에서는 슬레이브라고 하는 마스터 데이터베이스의 복사본을 만듭니다. 마스터 DB는 쓰기 작업에 사용되고 슬레이브 DB는 읽기 작업에만 사용됩니다. 마스터 데이터베이스에서 쓰기 작업이 수행될 때마다 데이터를 슬레이브 데이터베이스에 동기화합니다.
데이터베이스의 데이터가 업데이트될 때마다 API는 추가 처리를 위해 데이터를 CDN(Content Distributed Network) 및 메시지 대기열 시스템(예: Kafka, RabbitMQ)으로 보냅니다. CDN은 인터넷 콘텐츠를 빠르게 전달하기 위해 함께 작동하는 지리적으로 분산된 서버 그룹입니다.


고객센터(검색+예약)


고객에게 제공되는 서비스입니다. 여기서 고객은 호텔을 검색하고 예약할 수 있습니다. 여기에서 고객은 데이터에 액세스하고 처리할 수 있는 단일 포털을 갖게 됩니다.

ecee911b425d13b3a121401821829f63.png

  • 고객 서비스 아키텍처

CDN 애플리케이션은 주변 호텔, 추천, 거래 등과 같은 콘텐츠를 고객에게 표시합니다.
이전 섹션에서 설명한 것처럼 호텔 데이터는 처리를 위해 메시지 대기열 시스템으로 전송됩니다. 여기에는 대기열에서 데이터를 가져와 탄력적 검색에 데이터를 저장하는 메시지 대기열 소비자가 있습니다.
클라이언트 애플리케이션이 API에 도달하면 로드 밸런서가 요청을 리디렉션하고 적절한 서비스로 배포하여 요청을 처리합니다. 여기에는 두 가지 서비스가 있습니다. 하나는 호텔 검색이고 다른 하나는 호텔 예약에 사용되는 예약 서비스이며 예약 서비스는 타사 서비스의 결제 서비스와도 상호 작용합니다.
검색 서비스는 Elastic Search에서 데이터를 가져와야 합니다. Elasticsearch는 검색 엔진 기능에 가장 적합한 NoSQL 데이터베이스입니다.
구독 서비스는 Redis 및 구독 데이터베이스 클러스터와 통신합니다. Redis는 임시 데이터를 저장하는 캐싱 시스템이므로 데이터베이스에서 데이터를 가져올 필요가 없으므로 궁극적으로 데이터베이스의 부하가 줄어들고 API의 응답 시간도 줄어듭니다.
데이터베이스에 대한 모든 변경 사항은 메시징 대기열로 전송됩니다. 그런 다음 소비자는 대기열에서 데이터를 가져와 Casandra에 넣습니다. 아카이빙의 경우 시간이 지남에 따라 데이터베이스의 데이터 크기가 커지고 이로 인해 쿼리 시간이 증가하기 때문에 Casandra를 사용합니다. 그렇기 때문에 데이터베이스에서 오래된 데이터를 삭제해야 할 수도 있습니다. 그리고 Casandra는 많은 양의 데이터를 잘 처리하는 NoSQL 데이터베이스입니다.


예약 서비스 보기


모든 현재 및 이전 예약 세부 정보가 여기에서 사용자에게 표시됩니다. 관리자와 클라이언트 모두 이 서비스를 사용합니다.

96345a9af98ae6a23e7c25aa95a5e9e9.png

  • 예약 아키텍처 보기

고객/관리자 애플리케이션은 구독 관리 서버에 요청을 배포하는 로드 밸런서로 요청을 보냅니다. 그런 다음 Redis 및 Cassandra를 통해 데이터에 대한 서비스 요청을 수행합니다. Redis를 사용하면 캐싱 서버이므로 가장 최근의 데이터를 요청합니다. 이렇게 하면 애플리케이션 측의 로드 시간이 줄어듭니다.


최종 디자인

295ab48cec9510c7c76595c19c124f2d.png

  • 호텔 예약 시스템 설계

위 디자인에서 볼 수 있듯이 알림을 위한 Kafka 소비자가 있고 알림 소비자가 알림을 보냅니다. 이것은 클라이언트/매니저를 위한 것일 수 있습니다(예: 클라이언트가 호텔을 예약할 때마다 관리자에게 알림이 전송되거나 새로운 제안이 오는 경우 클라이언트에게 알림이 전송됨).
Apache Streaming 서비스는 Message Queue에서 데이터를 가져와 Hadoop에 저장하여 다양한 목적의 빅데이터 분석에 사용할 수 있습니다. 비즈니스 분석, 잠재 고객 찾기, 청중 분류 등

이 문서: https://architect.pub/system-design-architecture-hotel-booking-apps-airbnb-oyo
토론: Knowledge Planet [Chief Architect Circle] 또는 WeChat 트럼펫 추가[ca_cto] 또는 QQ 그룹 추가[792862318]
공개 없음
 
【jiagoushipro】
【Super Architect】
건축 방법론, 건축 실습, 기술 원리 및 기술 동향에 대한 뛰어난 그래픽과 자세한 설명.
우리는 당신을 기다리고 있습니다. 스캔하고주의를 기울이십시오.
위챗 트럼펫
 
[ca_cea]
50,000명의 커뮤니티, 토론: 엔터프라이즈 아키텍처, 클라우드 컴퓨팅, 빅 데이터, 데이터 과학, 사물 인터넷, 인공 지능, 보안, 전체 스택 개발, DevOps, 디지털화.
 

QQ 그룹
 
엔터프라이즈 아키텍처, 비즈니스 아키텍처, 애플리케이션 아키텍처, 데이터 아키텍처, 기술 아키텍처, 통합 아키텍처, 보안 아키텍처의 심층 교환. 그리고 빅데이터, 클라우드 컴퓨팅, 사물인터넷, 인공지능 등 다양한 신기술이
QQ 그룹에 가입하여 귀중한 보고서와 건조물을 공유하십시오.

비디오 번호 [슈퍼 아키텍트]
건축과 관련된 기본 개념, 모델, 방법, 경험을 1분 안에 빠르게 이해합니다.
하루 1분, 구조가 익숙하다.

지식 행성 [Chief Architect Circle] 거물에게 물어보고, 연락하거나, 개인 정보 공유를 받으세요.  

히말라야 [슈퍼 아키텍트] 도로나 차 안에서 최신 블랙 테크놀로지 정보와 건축 체험을 알아보세요. [지능적인 순간들, 미스터 건축이 당신에게 블랙 테크놀로지에 대해 이야기할 것입니다]
지식 행성 더 많은 친구, 직장 및 기술 채팅을 만나십시오. Knowledge Planet【직장과 기술】
링크드인 괴롭히다 https://www.linkedin.com/in/architect-harry/
링크드인 그룹 LinkedIn 아키텍처 그룹 https://www.linkedin.com/groups/14209750/
웨이보‍‍ 【슈퍼 아키텍트】 스마트한 순간‍
빌리빌리 【슈퍼 아키텍트】

Tik의 톡 【cea_cio】슈퍼 아키텍트

재빠른 일꾼 【cea_cio_cto】슈퍼 아키텍트

작은 빨간 책 [cea_csa_cto] 슈퍼 아키텍트  

웹사이트 CIO(최고정보책임자) https://cio.ceo
웹사이트 CIO, CTO 및 CDO https://cioctocdo.com
웹사이트 아키텍트 실용나눔 https://architect.pub   
웹사이트 프로그래머 클라우드 개발 공유 https://pgmr.cloud
웹사이트 수석 건축가 커뮤니티 https://jiagoushi.pro
웹사이트 애플리케이션 개발 및 개발 플랫폼 https://apaas.dev
웹사이트 개발 정보 네트워크 https://xinxi.dev
웹사이트 슈퍼 건축가 https://jiagou.dev
웹사이트 기업 기술 교육 https://peixun.dev
웹사이트 프로그래머의 책 https://pgmr.pub    
웹사이트 개발자 채팅 https://blog.developer.chat
웹사이트 CPO 수집 https://cpo.work
웹사이트 최고 보안 책임자 https://cso.pub ‍
웹사이트 CIO 쿨 https://cio.cool
웹사이트 CDO 정보 https://cdo.fyi
웹사이트 CXO 정보 https://cxo.pub

많은 관심과 포워딩, 좋아요, 시청 부탁드립니다.

추천

출처blog.csdn.net/jiagoushipro/article/details/131618590