Este documento tiene como objetivo ayudarte a elegir entre Pub/Sub y Pub/Sub Lite. Para leer este documento, debes conocer los conceptos básicos de Pub/Sub, como los temas y las suscripciones. Si no conoces Pub/Sub, consulta primero ¿Qué es Pub/Sub?.
Pub/Sub y Pub/Sub Lite son servicios de mensajería gestionados y escalables horizontalmente. Estos servicios pueden gestionar grandes volúmenes y admitir requisitos de almacenamiento elevados. Pub/Sub suele ser la solución predeterminada para la mayoría de los casos prácticos de integración de aplicaciones y analíticas. Es una solución con muchas funciones y totalmente gestionada. Pub/Sub Lite se recomienda para aplicaciones en las que el rendimiento de mensajería es más estable, las cargas de trabajo pueden beneficiarse de un sistema basado en particiones y el coste es un factor importante.
Pub/Sub ofrece una gama más amplia de funciones, paralelismo por mensaje, enrutamiento global y escalado automático de la capacidad de los recursos. En cuanto a la replicación de mensajes, Pub/Sub garantiza la replicación síncrona.
Pub/Sub Lite es una solución basada en particiones que ofrece una buena relación entre la carga de trabajo operativa, la disponibilidad global y algunas funciones, y el coste. Pub/Sub Lite requiere que reserves y gestiones manualmente la capacidad de los recursos. En Pub/Sub Lite, puedes elegir temas de Lite zonales o regionales. Los temas de Lite regionales ofrecen el mismo acuerdo de nivel de servicio de disponibilidad que los temas de Pub/Sub.
Ten en cuenta las diferencias de fiabilidad entre los dos servicios en cuanto a la replicación de mensajes. Pub/Sub admite la replicación de datos síncrona y utiliza tres zonas. Los temas de Lite de región replican los datos en una zona secundaria. Los temas de Lite de zona replican los datos en una sola zona.
Lista de comprobación de requisitos empresariales
Las siguientes preguntas pueden ayudarte a elegir el servicio de mensajería de Pub/Sub adecuado:
¿La fiabilidad, el coste operativo mínimo y la facilidad de desarrollo son tus principales prioridades? Usa Pub/Sub.
¿Quieres asumir una sobrecarga operativa adicional en cuanto a la gestión de la capacidad de los temas, puedes trabajar con los riesgos de disponibilidad inherentes a los servicios zonales y necesitas un coste bajo? Usa temas de Lite de zona.
¿Necesitas protección contra fallos zonales, estás dispuesto a incurrir en una sobrecarga operativa adicional en términos de gestión de la capacidad del tema y necesitas el coste por rendimiento más bajo? Usar temas de Lite de región.
Para obtener más información sobre las diferencias de costes entre Pub/Sub y Pub/Sub Lite, consulta la página de precios.
Tabla de comparación de funciones
Función | Pub/Sub | Pub/Sub Lite |
---|---|---|
Transparencia de acceso | Sí | No |
Capacidad | Aprovisionado automáticamente | Aprovisionar antes de usar |
Idiomas de las bibliotecas de cliente | Java, Python, Go, Node.js, C++, C#, PHP, Ruby, SAP y ABAP | Java, Python y Go |
Suscripciones entre proyectos | Sí | No |
Claves de cifrado gestionadas por el cliente | Sí | No |
Temas de mensajes fallidos | Sí | No |
Entrega exactamente una vez | Sí | No |
Integraciones | ||
Filtrado de mensajes | Sí para los atributos de mensaje | No |
Replicación de mensajes | Sí | No |
Enrutamiento de mensajes | Global | Zonal o regional |
Validación del esquema de mensajes | Sí | No |
Varias zonas en una sola región | No | Una o dos zonas en una sola región |
Pedido a domicilio | Ordenación por clave | Ordenación por partición |
Seguimiento de confirmaciones de mensajes | Por mensaje | Cursor por partición |
Precios | Paga solo por lo que uses | Paga por la capacidad que aprovisiones |
Endpoints REST | Sí | No |
Espacio de nombres de recursos | Global | Zonal o regional |
Periodo de conservación | Hasta 31 días | Ilimitado |
Puntos finales de servicio | Globales y regionales | Regional |
Almacenamiento | Ilimitado | Ilimitado |
Suscripción |
Replicación de datos
Los temas de Pub/Sub replican los datos en tres zonas de una región. Para obtener más información sobre la replicación de datos de Pub/Sub, consulta el artículo Replicación de datos en un tema.
Los temas de Pub/Sub Lite de región replican los datos en dos zonas de una región. Los temas de Pub/Sub Lite de zona almacenan datos en una sola zona de una región. Para obtener más información sobre la replicación de datos de Pub/Sub Lite, consulta Replicación de datos en un tema Lite.
Enrutamiento de mensajes
Tanto Pub/Sub como Pub/Sub Lite pueden publicar y suscribirse desde todas las regiones, incluso desde fuera de Google Cloud.
Pub/Sub enruta los mensajes de forma global. Las aplicaciones alojadas en cualquier región pueden publicar mensajes en un solo tema. Los mensajes se procesan en la región más cercana permitida por las políticas de tu organización y se reenvían a los suscriptores independientemente de la fuente.
Pub/Sub Lite enruta los mensajes dentro de una región o una zona. Los suscriptores deben conectarse a la instancia del servicio en la región en la que se encuentra el tema. Por lo tanto, los editores y los suscriptores deben mantener la conectividad de red con la misma región para comunicarse. Los editores pueden publicar datos en cualquier tema desde cualquier lugar, pero esto puede requerir la conexión a una región remota, lo que añade latencia de red. Los suscriptores que necesiten que se publiquen datos agregados en temas de diferentes ubicaciones deben conectarse a cada instancia de servicio local pertinente para leer los mensajes.
Espacio de nombres de recursos
Los temas y las suscripciones de Pub/Sub son recursos globales. El servicio Pub/Sub puede almacenar mensajes en cualquier región que permita una política de almacenamiento de temas. Además, un tema y una suscripción a ese tema se pueden almacenar en proyectos diferentes, lo que permite un control de acceso y una facturación precisos. Por último, los suscriptores obtienen los mismos datos independientemente del punto final de servicio que utilicen para conectarse a Pub/Sub o del punto final de servicio que haya usado el editor de los datos.
Los temas y las suscripciones de Lite de zona son recursos de zona. Estos recursos deben estar en el mismo proyecto y zona de Cloud.
Los temas y las suscripciones de Lite regionales son recursos regionales. Estos recursos deben estar en el mismo proyecto y región de Cloud.
Para ver una lista de las regiones y zonas que admite Pub/Sub Lite, consulta Ubicaciones de Pub/Sub Lite.
Gestión de la capacidad
Pub/Sub se escala automáticamente. La capacidad de publicación de mensajes se aprovisiona automáticamente, por lo que puedes enviar y recibir mensajes a cualquier velocidad, hasta alcanzar las cuotas que configures para tu proyecto.
Pub/Sub Lite se aprovisiona manualmente. Debes configurar el número de particiones por tema de Lite. También debe aprovisionar almacenamiento y capacidad de procesamiento. La capacidad de rendimiento se puede aprovisionar mediante reservas de Lite.
Modos de envío
Pub/Sub admite varios modos de envío de mensajes. Entre ellos, se incluyen Pull (sondeo tradicional), Push (POST de HTTPS), StreamingPull (RPC bidireccional, para obtener la latencia más baja y la eficiencia más alta) y pull a través de HTTP REST y gRPC.
Pub/Sub Lite solo admite la entrega de mensajes de extracción de streaming de gRPC. Para solicitar mensajes, los suscriptores establecen conexiones de streaming bidireccionales con cada partición.
Paralelismo
Pub/Sub usa el paralelismo por mensaje. Esto permite procesar simultáneamente cualquier número de mensajes, desde uno o miles de clientes, para una sola suscripción.
Pub/Sub Lite usa el paralelismo basado en particiones. De esta forma, se obliga a un cliente a procesar cada partición de datos en orden lineal en una sola instancia de cliente. De esta forma, el número máximo de instancias de cliente será el número de particiones.
Flujos de procesamiento en streaming
Tanto Pub/Sub como Pub/Sub Lite están integrados con Dataflow para el procesamiento de streams y la integración de datos sin servidor. Pub/Sub permite que Dataflow se escale de forma más flexible y admite Dataflow SQL.
Para empezar a usar Dataflow y Pub/Sub o Pub/Sub Lite, prueba estos tutoriales: