[Diseño de arquitectura] Arquitectura de diseño del sistema de la aplicación de reserva de hotel (como Airbnb, OYO)

¿Cómo las aplicaciones de reserva de hoteles como Airbnb, Booking.com y OYO proporcionan un flujo fluido desde la lista de hoteles hasta la reserva y el pago? ¡Y todo sin fallas! En este blog, obtendrá una explicación detallada de esto.
Como son tan grandes, necesitan manejar una gran cantidad de tráfico de usuarios. Entonces, para administrarlos, debemos seguir la arquitectura de microservicios. Esto significa que tenemos que dividir el sistema en partes pequeñas para cada tipo de tarea.
Entendamos el proceso uno por uno. Lo he dividido en 4 partes:

  • Servicios de gestión hotelera

  • Atención al Cliente (Búsqueda + Reserva)

  • Ver servicios de reserva

Servicios de gestión hotelera

Este es el servicio que se le brindará al gerente/propietario del hotel. Aquí los gerentes pueden administrar información sobre su hotel. Aquí, los administradores tienen un único portal para acceder y actualizar los datos.

45b13fe303223874a19bb8d3afbc0eee.png

  • Arquitectura del Servicio de Gestión Hotelera

Cada vez que la API se activa desde la aplicación del administrador del hotel, la solicitud inicial se envía al balanceador de carga, que luego distribuye la solicitud al servidor deseado para su procesamiento. El clúster de Hotel Services tiene varios servidores que tienen contenedores para las API relacionadas con Hotel Services.
Ahora, el servicio del hotel interactúa con el clúster de la base de datos del hotel siguiendo la arquitectura maestro-esclavo para reducir la carga en la base de datos. Básicamente, en este enfoque, creamos una copia de la base de datos maestra, llamada esclava. La base de datos maestra se usa para operaciones de escritura y la base de datos esclava se usa solo para operaciones de lectura. Siempre que se realice una operación de escritura en la base de datos maestra, sincronizará los datos con la base de datos esclava.
Cada vez que se actualice cualquier dato en la base de datos, la API enviará los datos a CDN (red distribuida de contenido) y al sistema de cola de mensajes (como Kafka, RabbitMQ) para su posterior procesamiento. Una CDN es un grupo de servidores distribuidos geográficamente que trabajan juntos para proporcionar una entrega rápida de contenido de Internet.


Atención al Cliente (Búsqueda + Reserva)


Este es el servicio que se prestará al cliente. Aquí los clientes pueden buscar y reservar hoteles. Aquí, los clientes tienen un único portal para acceder y procesar datos.

ecee911b425d13b3a121401821829f63.png

  • Arquitectura de servicio al cliente

La aplicación CDN muestra contenido a los clientes, como hoteles cercanos, recomendaciones, ofertas, etc.
Como comentamos en la sección anterior, los datos del hotel se envían en un sistema de cola de mensajes para su procesamiento. Aquí tenemos un consumidor de cola de mensajes que obtiene datos de la cola y los almacena en una búsqueda elástica.
La aplicación cliente llega a la API y el balanceador de carga redirige y distribuye la solicitud al servicio apropiado para manejar la solicitud. Aquí tenemos dos servicios, uno es la búsqueda de hoteles y el otro es el servicio de reserva que se utiliza para reservar hoteles y el servicio de reserva también interactúa con el servicio de pago del servicio de terceros.
El servicio de búsqueda debe obtener datos de Elastic Search. Elasticsearch es una base de datos NoSQL más adecuada para sus capacidades de motor de búsqueda.
El servicio de suscripción se comunica con Redis y el clúster de base de datos de suscripción. Redis es un sistema de almacenamiento en caché, almacena datos temporales, por lo que no es necesario obtener los datos de la base de datos, lo que en última instancia reduce la carga en la base de datos y también reduce el tiempo de respuesta de la API.
Cualquier cambio realizado en la base de datos se enviará a la cola de mensajería. Luego, el consumidor tomará los datos de la cola y los pondrá en Casandra. Para archivar usamos Casandra porque con el tiempo crece el tamaño de los datos en la base de datos, lo que aumenta el tiempo de consulta. Es por eso que es posible que necesitemos eliminar datos antiguos de la base de datos. Y Casandra es una base de datos NoSQL que es buena para manejar grandes cantidades de datos.


Ver servicios de reserva


Todos los detalles de la reserva actual y anterior se muestran al usuario aquí. Tanto los gerentes como los clientes utilizan este servicio.

96345a9af98ae6a23e7c25aa95a5e9e9.png

  • Ver arquitectura de reservas

La aplicación Cliente/Administrador envía la solicitud al equilibrador de carga, que distribuye la solicitud a los servidores de administración de suscripciones. Luego, las solicitudes de servicio para los datos a través de Redis y Cassandra. Con Redis, solicita los datos más recientes ya que es un servidor de almacenamiento en caché. Esto reduce los tiempos de carga en el lado de la aplicación.


diseño final

295ab48cec9510c7c76595c19c124f2d.png

  • Diseño de sistema de reserva de hotel

Como puede ver en el diseño anterior, hay un consumidor de Kafka para notificaciones y el consumidor de notificaciones envía notificaciones. Esto podría ser para un cliente/gerente, por ejemplo, cada vez que un cliente reserva un hotel, se envía una notificación al gerente, o si llega una nueva oferta, se notifica al cliente.
El servicio Apache Streaming obtiene datos de la cola de mensajes y los almacena en Hadoop, que se puede utilizar para el análisis de big data con diversos fines. Tales como análisis de negocio, búsqueda de clientes potenciales, clasificación de audiencias, etc.

Este artículo: https://architect.pub/system-design-architecture-hotel-booking-apps-airbnb-oyo
Discusión: Knowledge Planet [Chief Architect Circle] o agregue la trompeta de WeChat [ca_cto] o agregue el grupo QQ [792862318]
sin publico
 
【jiagoushipro】
【Super Arquitecto】
Brillante explicación gráfica y detallada de la metodología de la arquitectura, la práctica de la arquitectura, los principios técnicos y las tendencias técnicas.
Te estamos esperando, por favor escanea y presta atención.
Trompeta WeChat
 
[ca_cea]
Comunidad de 50 000 personas, que discute: arquitectura empresarial, computación en la nube, big data, ciencia de datos, Internet de las cosas, inteligencia artificial, seguridad, desarrollo completo, DevOps, digitalización.
 

grupo QQ
 
[285069459] Intercambio en profundidad de arquitectura empresarial, arquitectura empresarial, arquitectura de aplicaciones, arquitectura de datos, arquitectura técnica, arquitectura de integración, arquitectura de seguridad. Y diversas tecnologías emergentes como big data, cloud computing, Internet de las Cosas, inteligencia artificial, etc.
Únase al grupo QQ para compartir valiosos informes y productos secos.

numero de video [Super arquitecto]
Comprenda rápidamente los conceptos, modelos, métodos y experiencias básicos relacionados con la arquitectura en 1 minuto.
1 minuto al día, la estructura es familiar.

planeta del conocimiento [Círculo de arquitectos en jefe] Pregunte a los grandes nombres, póngase en contacto con ellos o comparta información privada.  

Himalaya [Super arquitecto] Aprenda sobre la última experiencia de arquitectura e información de tecnología negra en la carretera o en el automóvil. [Momentos inteligentes, el Sr. Arquitectura les hablará de tecnología negra]
planeta del conocimiento Conoce más amigos, lugar de trabajo y chat técnico. Knowledge Planet【Lugar de trabajo y tecnología】
LinkedIn Harry https://www.linkedin.com/in/architect-harry/
grupo de LinkedIn Grupo de arquitectura de LinkedIn https://www.linkedin.com/groups/14209750/
Weibo‍‍ 【Súper Arquitecto】 momento inteligente‍
bilibili 【Súper Arquitecto】

Tik Tok 【cea_cio】Super Arquitecto

trabajador rapido 【cea_cio_cto】Super Arquitecto

pequeño libro rojo [cea_csa_cto] Súper Arquitecto  

sitio web CIO (director de información) https://cio.ceo
sitio web CIO, CTO y CDO https://cioctocdo.com
sitio web Arquitecto práctica compartida https://arquitecto.pub   
sitio web Compartir el desarrollo de la nube del programador https://pgmr.cloud
sitio web Comunidad de arquitectos jefe https://jiagoushi.pro
sitio web Plataforma de desarrollo y desarrollo de aplicaciones. https://apaas.dev
sitio web Red de información sobre el desarrollo https://xinxi.dev
sitio web súper arquitecto https://jiagou.dev
sitio web Formación técnica empresarial https://peixun.dev
sitio web Libro del programador https://pgmr.pub    
sitio web chat de desarrollador https://blog.developer.chat
sitio web Colección CPO https://cpo.trabajo
sitio web jefe de seguridad https://cso.pub‍
sitio web CIO genial https://cio.cool
sitio web información de CDO https://cdo.fyi
sitio web Información de CXO https://cxo.pub

Gracias por su atención, reenvío, me gusta y ver.

Supongo que te gusta

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