Introducció a Cloud Pub/Sub
Cloud Pub/Sub és un servei de missatgeria asíncron que permet la comunicació entre aplicacions mitjançant la publicació i la subscripció a missatges. És ideal per a sistemes distribuïts i microserveis, ja que facilita la transmissió de dades en temps real i la integració de components desacoblats.
Conceptes Clau
- Publicador (Publisher): L'entitat que envia missatges a un tema.
- Tema (Topic): Un canal de comunicació al qual els publicadors envien missatges.
- Subscriptor (Subscriber): L'entitat que rep missatges d'una subscripció.
- Subscripció (Subscription): Una configuració que permet als subscriptors rebre missatges d'un tema.
Configuració de Cloud Pub/Sub
Pas 1: Crear un Tema
- Aneu a la consola de GCP.
- Navegueu a "Pub/Sub" al menú de navegació.
- Feu clic a "Crear tema".
- Introduïu un nom per al tema i feu clic a "Crear".
Pas 2: Crear una Subscripció
- Seleccioneu el tema que acabeu de crear.
- Feu clic a "Crear subscripció".
- Introduïu un nom per a la subscripció.
- Seleccioneu el tipus de subscripció (Push o Pull).
- Feu clic a "Crear".
Exemple Pràctic
Publicar un Missatge
from google.cloud import pubsub_v1 # Inicialitzar el client de Publisher publisher = pubsub_v1.PublisherClient() topic_path = publisher.topic_path('el-teu-projecte', 'el-teu-tema') # El missatge que vols enviar message = "Hola, món!" # Publicar el missatge future = publisher.publish(topic_path, message.encode('utf-8')) print(f'Missatge publicat: {future.result()}')
Subscriure's a un Tema
from google.cloud import pubsub_v1 # Inicialitzar el client de Subscriber subscriber = pubsub_v1.SubscriberClient() subscription_path = subscriber.subscription_path('el-teu-projecte', 'la-teva-subscripció') def callback(message): print(f'Rebut missatge: {message.data}') message.ack() # Subscriure's al tema streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback) print(f'Esperant missatges a {subscription_path}...') # Manté el procés en execució per rebre missatges try: streaming_pull_future.result() except KeyboardInterrupt: streaming_pull_future.cancel()
Exercicis Pràctics
Exercici 1: Crear i Publicar en un Tema
- Crea un tema anomenat
test-topic
. - Escriu un script en Python per publicar un missatge "Test Message" en aquest tema.
Exercici 2: Crear una Subscripció i Rebre Missatges
- Crea una subscripció anomenada
test-subscription
per al tematest-topic
. - Escriu un script en Python per rebre i imprimir missatges de
test-subscription
.
Solucions
Solució Exercici 1
from google.cloud import pubsub_v1 publisher = pubsub_v1.PublisherClient() topic_path = publisher.topic_path('el-teu-projecte', 'test-topic') message = "Test Message" future = publisher.publish(topic_path, message.encode('utf-8')) print(f'Missatge publicat: {future.result()}')
Solució Exercici 2
from google.cloud import pubsub_v1 subscriber = pubsub_v1.SubscriberClient() subscription_path = subscriber.subscription_path('el-teu-projecte', 'test-subscription') def callback(message): print(f'Rebut missatge: {message.data}') message.ack() streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback) print(f'Esperant missatges a {subscription_path}...') try: streaming_pull_future.result() except KeyboardInterrupt: streaming_pull_future.cancel()
Errors Comuns i Consells
- Error de permisos: Assegura't que el compte de servei tingui els permisos necessaris per accedir a Pub/Sub.
- Missatges no rebuts: Verifica que la subscripció estigui correctament configurada i que el callback estigui processant els missatges adequadament.
- Codificació de missatges: Recorda codificar els missatges en
utf-8
abans de publicar-los.
Conclusió
En aquesta secció, hem après els conceptes bàsics de Cloud Pub/Sub, com crear temes i subscripcions, i com publicar i rebre missatges. Aquest servei és essencial per a la comunicació asíncrona en aplicacions distribuïdes, permetent una integració fluida i en temps real entre diferents components del sistema.
Curs de Google Cloud Platform (GCP)
Mòdul 1: Introducció a Google Cloud Platform
- Què és Google Cloud Platform?
- Configurar el teu compte de GCP
- Visió general de la consola de GCP
- Comprendre projectes i facturació
Mòdul 2: Serveis bàsics de GCP
Mòdul 3: Xarxes i seguretat
Mòdul 4: Dades i analítica
Mòdul 5: Aprenentatge automàtic i IA
Mòdul 6: DevOps i monitoratge
- Cloud Build
- Repositoris de codi font al núvol
- Funcions al núvol
- Monitoratge de Stackdriver
- Gestor de desplegament al núvol
Mòdul 7: Temes avançats de GCP
- Híbrid i multi-núvol amb Anthos
- Computació sense servidor amb Cloud Run
- Xarxes avançades
- Millors pràctiques de seguretat
- Gestió i optimització de costos