[Design de arquitetura] Arquitetura de design do sistema do aplicativo de reserva de hotel (como Airbnb, OYO)

Como os aplicativos de reserva de hotéis, como Airbnb, Booking.com e OYO, fornecem um fluxo suave desde a listagem do hotel até a reserva e o pagamento? E tudo sem falhas! Neste blog, você terá uma explicação detalhada sobre isso.
Como são muito grandes, precisam lidar com muito tráfego de usuários. Portanto, para gerenciá-los, precisamos seguir a arquitetura de microsserviços. Isso significa que temos que quebrar o sistema em pequenos pedaços para cada tipo de tarefa.
Vamos entender o processo um por um. Dividi em 4 partes:

  • Serviços de gestão hoteleira

  • Atendimento ao Cliente (Pesquisa + Reserva)

  • Ver serviços de reserva

Serviços de gestão hoteleira

Este é o serviço que será prestado ao gerente/proprietário do hotel. Aqui os gerentes podem gerenciar informações sobre seu hotel. Aqui, os gestores têm um único portal para acessar e atualizar os dados.

45b13fe303223874a19bb8d3afbc0eee.png

  • Arquitetura de Serviços de Gestão Hoteleira

Sempre que a API é acionada a partir do aplicativo do gerente do hotel, a solicitação inicial é enviada ao balanceador de carga, que então distribui a solicitação ao servidor desejado para processamento. O cluster de Hotel Services tem vários servidores que possuem contêineres para APIs relacionadas a Hotel Services.
Agora, o serviço do hotel interage com o cluster de banco de dados do hotel seguindo a arquitetura mestre-escravo para reduzir a carga no banco de dados. Basicamente, nesta abordagem, criamos uma cópia do banco de dados mestre, chamada de escravo. O DB mestre é usado para operações de gravação e o DB escravo é usado apenas para operações de leitura. Sempre que uma operação de gravação for executada no banco de dados mestre, ela sincronizará os dados com o banco de dados escravo.
Sempre que algum dado no banco de dados for atualizado, a API enviará os dados para CDN (Content Distributed Network) e sistema de enfileiramento de mensagens (como Kafka, RabbitMQ) para processamento posterior. Um CDN é um grupo de servidores distribuídos geograficamente que trabalham juntos para fornecer entrega rápida de conteúdo da Internet.


Atendimento ao Cliente (Pesquisa + Reserva)


Este é o serviço que será prestado ao cliente. Aqui os clientes podem pesquisar e reservar hotéis. Aqui, os clientes têm um único portal para acessar e processar dados.

ecee911b425d13b3a121401821829f63.png

  • Arquitetura de atendimento ao cliente

O aplicativo CDN exibe conteúdo para os clientes, como hotéis próximos, recomendações, promoções, etc.
Conforme discutimos na seção anterior, os dados do hotel são enviados em um sistema de enfileiramento de mensagens para processamento. Aqui temos um consumidor de fila de mensagens que busca dados da fila e armazena os dados na pesquisa elástica.
O aplicativo cliente acessa a API e o balanceador de carga redireciona e distribui a solicitação ao serviço apropriado para lidar com a solicitação. Aqui temos dois serviços, um é a busca de hotéis e o outro é o serviço de reservas que é usado para reservar hotéis e o serviço de reservas também interage com o serviço de pagamento do serviço terceirizado.
O serviço de pesquisa deve buscar dados do Elastic Search. O Elasticsearch é um banco de dados NoSQL mais adequado para seus recursos de mecanismo de pesquisa.
O serviço de assinatura se comunica com o Redis e o cluster de banco de dados de assinatura. O Redis é um sistema de cache que armazena dados temporários, de modo que os dados não precisam ser buscados no banco de dados, o que reduz a carga no banco de dados e também reduz o tempo de resposta da API.
Quaisquer alterações feitas no banco de dados serão enviadas para a fila de mensagens. O consumidor então pegará os dados da fila e os colocará no Casandra. Para arquivamento usamos Casandra porque com o tempo o tamanho dos dados no banco de dados cresce e isso aumenta os tempos de consulta. É por isso que podemos precisar excluir dados antigos do banco de dados. E o Casandra é um banco de dados NoSQL, bom para lidar com grandes quantidades de dados.


Ver serviços de reserva


Todos os detalhes da reserva atual e antiga são exibidos para o usuário aqui. Tanto os gerentes quanto os clientes usam esse serviço.

96345a9af98ae6a23e7c25aa95a5e9e9.png

  • Ver Arquitetura de Reservas

O aplicativo Cliente/Gerenciador envia a solicitação ao balanceador de carga, que distribui a solicitação aos servidores de gerenciamento de assinaturas. Em seguida, atenda às solicitações de dados por meio do Redis e do Cassandra. Com o Redis, ele solicita os dados mais recentes, pois é um servidor de cache. Isso reduz os tempos de carregamento no lado do aplicativo.


design final

295ab48cec9510c7c76595c19c124f2d.png

  • Projeto do sistema de reservas de hotéis

Como você pode ver no design acima, há um consumidor Kafka para notificações e o consumidor de notificação envia notificações. Isso pode ser para um cliente/gerente, por exemplo, sempre que um cliente reserva um hotel, uma notificação é enviada ao gerente ou se uma nova oferta está chegando, o cliente é notificado.
O serviço Apache Streaming busca dados da fila de mensagens e os armazena no Hadoop, que pode ser usado para análise de big data para várias finalidades. Como análise de negócios, localização de clientes em potencial, classificação de público, etc.

Este artigo: https://architect.pub/system-design-architecture-hotel-booking-apps-airbnb-oyo
Discussão: Knowledge Planet [Chief Architect Circle] ou adicionar trompete WeChat [ca_cto] ou adicionar grupo QQ [792862318]
Sem público
 
【jiagoushipro】
【Super Architect】
Brilhante gráfico e explicação detalhada da metodologia de arquitetura, prática de arquitetura, princípios técnicos e tendências técnicas.
Estamos esperando por você, por favor digitalize e preste atenção.
WeChat trompete
 
[ca_cea]
Comunidade de 50.000 pessoas, discutindo: arquitetura corporativa, computação em nuvem, big data, ciência de dados, Internet das Coisas, inteligência artificial, segurança, desenvolvimento full-stack, DevOps, digitalização.
 

Grupo QQ
 
[285069459] Intercâmbio aprofundado de arquitetura empresarial, arquitetura de negócios, arquitetura de aplicativos, arquitetura de dados, arquitetura técnica, arquitetura de integração, arquitetura de segurança. E várias tecnologias emergentes, como big data, computação em nuvem, Internet das Coisas, inteligência artificial, etc.
Junte-se ao grupo QQ para compartilhar relatórios valiosos e produtos secos.

número do vídeo [Super Arquiteto]
Entenda rapidamente os conceitos básicos, modelos, métodos e experiências relacionadas à arquitetura em 1 minuto.
1 minuto por dia, a estrutura é familiar.

planeta do conhecimento [Chief Architect Circle] Pergunte a grandes nomes, entre em contato com eles ou obtenha o compartilhamento de informações privadas.  

Himalaia [Super Arquiteto] Aprenda sobre a mais recente experiência em informação e arquitetura de tecnologia negra na estrada ou no carro. [Momentos inteligentes, o Sr. Arquitetura falará com você sobre a tecnologia negra]
planeta do conhecimento Conheça mais amigos, local de trabalho e bate-papo técnico. Planeta do conhecimento【Local de trabalho e tecnologia】
LinkedIn atormentar https://www.linkedin.com/in/architect-harry/
grupo do LinkedIn Grupo de arquitetura do LinkedIn https://www.linkedin.com/groups/14209750/
Weibo‍‍ 【Super Arquiteto】 momento inteligente‍
Bilibili 【Super Arquiteto】

tik tok 【cea_cio】Super Arquiteta

trabalhador rápido 【cea_cio_cto】Super Arquiteto

livrinho vermelho [cea_csa_cto] Super Arquiteto  

local na rede Internet CIO (Diretor de Informação) https://cio.ceo
local na rede Internet CIOs, CTOs e CDOs https://cioctocdo.com
local na rede Internet Compartilhamento prático do arquiteto https://architect.pub   
local na rede Internet Compartilhamento de desenvolvimento de nuvem do programador https://pgmr.cloud
local na rede Internet Arquiteto Chefe Comunidade https://jiagoushi.pro
local na rede Internet Desenvolvimento de aplicativos e plataforma de desenvolvimento https://apaas.dev
local na rede Internet Rede de Informação de Desenvolvimento https://xinxi.dev
local na rede Internet super arquiteto https://jiagou.dev
local na rede Internet Treinamento técnico empresarial https://peixun.dev
local na rede Internet livro do programador https://pgmr.pub    
local na rede Internet bate-papo do desenvolvedor https://blog.developer.chat
local na rede Internet Cobrança CPO https://cpo.work
local na rede Internet chefe de segurança https://cso.pub ‍
local na rede Internet CIO legal https://cio.cool
local na rede Internet Informações do CDO https://cdo.fyi
local na rede Internet Informações CXO https://cxo.pub

Obrigado pela atenção, encaminhamento, curtidas e observação.

Acho que você gosta

Origin blog.csdn.net/jiagoushipro/article/details/131618590
Recomendado
Clasificación