다음의 Qwiklabs 과정을 거치면서 모르던 내용들 그리고 배웠던 내용들에 대해 써보았다:
- Cloud Cloud Pub/Sub - Qwik Start (Console / Command Line / Python)
우선, 저 과정을 거치면서 모르거나 새로 배운 내용들에 대한 정의를 써보도록 하겠다. 나름 나의 해석도 들어가 있는 것이라 정확하지는 않을 수도 있으나, 최대한 찾아본 내용을 토대로 썼다:
- Google Cloud Pub/Sub: Is an asynchronous global messaging service
- Topic: Topic in Google Cloud is a shared string that allows applications to connect with one another through a common thread
- Message in Pub/Sub: Contains a Payload and optional attributes that describe the payload content
- Publishers push a message to a Cloud Pub/Sub topic. Subscribers will then make a subscription to t hat thread, where they will either pull messages from the topic or configure webhooks for push subscriptions. Every subscriber must acknowledge each message within a configurable window of time
※ Publisher-Subscriber Relationship
Publisher과 Subscriber 사이의 관계도는 다음과 같이 표현될 수 있다
다수의 Publisher이 한명의 Subscriber에 보내는 Many-to-one (fan-in) 관계가 될 수도 있고, 오른쪽 처럼 한명의 Publisher이 다수의 subscriber에 보내는 one-to-many(fan-out)의 관계가 될 수 있다.
※ Pub/Sub Message Flow
다음은 Pub/Sub의 구성과 이 사이에 어떻게 메세지가 전달되는지 볼 수 있다:
- Publisher Application이 Pub/Sub에 topic을 만들고 message를 전송한다.
- Subscriber가 message를 제대로 받고 읽기 전까지 message는 저장된다
- Pub/Sub가 개별적으로 모든 subscription에 topic으로부터의 message를 전달한다
- Subscriber는 1 - Pub/Sub가 message를 push함으로써 message를 받거나 2. Subscriber가 message를 pull하면서 message를 받는다
- Subscriber는 Pub/Sub service에 message를 받았다고 전달한다
- Pub/Sub service는 저장시켜놓은 message를 제거한다.
대부분의 message는 위의 그림과 같은 방식으로 쓰인다. GCP Apps, Mobile web content, IoT devices 같은 곳에서 Cloud Pub/Sub의 Topic에 message를 보내고, 마지막에 존재하는 BigQuery, Cloud Storage, VMS, APp Engine, Cloud Functions 등에 message가 전달된다.
따라서, 다음의 diagram을 통해 Google Cloud Pub/Sub가 어떻게 통합되어 쓰일 수 있는지 잘 보여주고 있다:
'GCP 공부 일기' 카테고리의 다른 글
Cloud Functions: Qwik Start - Console - Qwiklabs 실습 (0) | 2020.10.27 |
---|---|
Cloud Monitoring: Qwik Start - Qwiklabs 실습 (0) | 2020.10.26 |
Introduction to Docker Containers - 도커 컨테이너 기초 다지기 (2) (0) | 2020.10.20 |
Continuous Delivery with Jenkins in Kubernetes Engine - Qwiklabs 실습 (0) | 2020.10.19 |
Managing Deployments Using Kubernetes Engine - Qwiklabs 실습 (0) | 2020.10.18 |