본문 바로가기
Database

Python 클라이언트 라이브러리를 사용하여 Cloud Pub/Sub로 메시지 게시

by BTC_문땅훈 2023. 12. 15.

 

 

 

 

 

베하 ~! 😊

 

 

지난 시간에 배운 Pub/Sub 개념을 가지고 간단하게 Message 게시를 해보겠습니다.

 

 

먼저 저번 시간에 나왔던 거 중에서 다시 정리를 드리자면 아시다시피 Google Cloud Pub/Sub는 비동기식 글로벌 메시징 서비스입니다.

게시자는 메시지를 생성하여 주제에 보내고, 구독자는 메시지를 수신하기 위해 주제에 대한 구독을 생성합니다.

여기서는 파이썬을 사용하여 주제, 구독자를 생성한 다음 메시지까지 만드는 명령어를 간단하게 정리해보겠습니다.

 

 

 

Settings

# python 가상 환경 생성
sudo apt-get install -y virtualenv
python3 -m venv venv
source venv/bin/activate

# library 설치
pip install --upgrade google-cloud-pubsub

 

 

1. 주제 생성(Create a topic)

  • Cloud Pub/Sub에 데이터를 게시하려면 Topic을 만든 다음 해당 주제에 대한 Publisher를 구성합니다.
#publisher.py
usage: publisher.py [-h]
                    project
                    {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings}
                    ...

This application demonstrates how to perform basic operations on topics
with the Cloud Pub/Sub API.

For more information, see the README.md under /pubsub and the documentation
at <https://cloud.google.com/pubsub/docs>.

positional arguments:
  project               Your Google Cloud project ID
  {list,create,delete,publish,publish-with-custom-attributes,publish-with-futures,publish-with-error-handler,publish-with-batch-settings}
    list                Lists all Pub/Sub topics in the given project.
    create              Create a new Pub/Sub topic.
    delete              Deletes an existing Pub/Sub topic.
    publish             Publishes multiple messages to a Pub/Sub topic.
    publish-with-custom-attributes
                        Publishes multiple messages with custom attributes to
                        a Pub/Sub topic.
    publish-with-futures
                        Publishes multiple messages to a Pub/Sub topic and
                        prints their message IDs.
    publish-with-error-handler
                        Publishes multiple messages to a Pub/Sub topic with an
                        error handler.
    publish-with-batch-settings
                        Publishes multiple messages to a Pub/Sub topic with
                        batch settings.

optional arguments:
  -h, --help            show this help message and exit
# Topic 생성
python publisher.py $GOOGLE_CLOUD_PROJECT create MyTopic

# Topic 확인
python publisher.py $GOOGLE_CLOUD_PROJECT list

Topic created: name: "projects/qwiklabs-gcp-fe27729bc161fb22/topics/MyTopic"

 

2. 구독 생성(Create a Subscription)

# 구독 생성
python subscriber.py $GOOGLE_CLOUD_PROJECT create MyTopic MySub

# 구독 생성 확인
python subscriber.py $GOOGLE_CLOUD_PROJECT list-in-project

 

3. 메시지 게시(Message Publish)

  • MyTopic에 몇 가지 메시지 게시
# 메시지 게시
gcloud pubsub topics publish MyTopic --message "Hello"

gcloud pubsub topics publish MyTopic --message "Publisher's name is thanghun"

gcloud pubsub topics publish MyTopic --message "Publisher likes to eat chicken"

gcloud pubsub topics publish MyTopic --message "Publisher thinks Pub/Sub is awesome"

 

4. 메시지 보기(View messages)

  • MyTopic에 메시지를 게시했으므로 MySub를 사용하여 메시지를 가져옵니다.
python subscriber.py $GOOGLE_CLOUD_PROJECT receive MySub

 

 

 

 

 

 

 

그럼 다음 시간에 봐요 ~

 

 

베빠~ 😊

 

'Database' 카테고리의 다른 글

MySQL 일일 단위 백업 자동화  (0) 2023.12.29
Airflow 환경 이전  (0) 2023.12.24
Pub/Sub  (0) 2023.12.15
Parquet 데이터 수정하기  (2) 2023.12.08
Cloud Spanner  (0) 2023.11.24

댓글