bỏ qua Nội dung chính
Chào mừng bạn đến với Gimasys!
Hotline: +84 974 417 099 (HCM) | +84 987 682 505 (HN) gcp@gimasys.com

Cloud Pub/Sub là gì? So sánh Cloud Pub/sub và Kafka

Để quá trình vận hành doanh nghiệp luôn xuyên suốt và không bị gián đoạn, các phần mềm ứng dụng sẽ thường xuyên gửi thông tin (message) cho nhau, tuy nhiên trong quá trình chia sẻ thông tin có thể xảy ra tình huống không nhận được thông tin đầy đủ từ đối tượng gửi, để giải quyết vấn đề này Cloud Pub/Sub ra đời, vậy Cloud pub/sub là gì? Cùng tìm hiểu chi tiết qua bài viết dưới đây.  

Cloud pub/sub là gì?

Cloud Pub/Sub là một dịch vụ Messaging không đồng bộ và có thể mở rộng, có thể tưởng tượng Pub/Sub giống một trạm trung chuyển giữa bên gửi thông tin gọi là Publisher và bên nhận thông tin Subscriber.

Pub/Sub cho phép bạn tạo hệ thống các sự kiện trao đổi giữa publisher và subscriber. Publisher sẽ trao đổi một cách không đồng bộ với Subscriber thông qua việc gửi các sự kiện với độ trễ khoảng 100 triệu giây thay vì các lệnh gọi thủ tục đồng bộ từ xa (synchronous remote procedure calls – RPC).

Publisher gửi sự kiện đến cổng dịch vụ Pub/Sub mà không quan tâm đến những sự kiện này sẽ được xử lý như thế nào và thời điểm ra sao. Pub/Sub sau đó sẽ phân phối các sự kiện tới tất cả các dịch vụ cần nhận được thông tin. Việc tích hợp không đồng bộ trong Pub/Sub làm tăng tính linh hoạt và mạnh mẽ của toàn bộ hệ thống.

Cloud Pub/Sub hoạt động như thế nào

Một số khái niệm quan trọng trong Cloud Pub/Sub

  • Publisher: tạo tin nhắn và gửi (xuất bản) chúng đến Messaging service theo một chủ đề cụ thể.
  • Message: dữ liệu di chuyển qua dịch vụ.
  • Topic:  thực thể đại diện cho nguồn cấp dữ liệu tin nhắn.
  • Schema: thực thể chi phối định dạng dữ liệu của tin nhắn Pub/Sub.
  • Subscription: thực thể thể hiện sự quan tâm đến việc nhận tin nhắn về một chủ đề cụ thể.
  • Subscriber : nhận tin nhắn trên một thuê bao được chỉ định.

Mô hình minh họa cách hoạt động của cloud Pub/Sub như sau:

  • Hai Publisher gửi hai tin nhắn khác nhau đến một chủ đề Pub/Sub chung.
  • Lifecycle của một tin nhắn trong Pub/Sub: Giả sử một publisher client được kết nối tới  topic cụ thể. Topic có một subscription đính kèm và một subscriber được kết nối với subscription.

  • Chọn mẫu Publish và Subscribe Pub/Sub

Khi có nhiều khách hàng là Publisher và Subscriber, cần phải chọn loại kiến trúc Publish và Subscribe mà bạn muốn thiết lập.

Cloud Pub/Sub ứng dụng như thế nào

  • Thu thập các sự kiện tương tác của người dùng và máy chủ: Để sử dụng các sự kiện tương tác của người dùng thu thập từ ứng dụng, bạn có thể chuyển tiếp chúng tới dịch vụ Pub/Sub, tiếp đó sử dụng một công cụ stream processing chẳng hạn như Dataflow, công cụ này sẽ hỗ trợ chuyển các sự kiện thu thập được đến cơ sở dữ liệu, Pub/Sub cho phép bạn thu thập các sự kiện từ nhiều khách hàng cùng một lúc. Ví dụ về các cơ sở dữ liệu như BigQuery, Cloud Bigtable và Cloud Storage. 
  • Phân phối sự kiện theo thời gian thực: Các sự kiện có thể được phân phối cho nhiều ứng dụng trong tổ chức để xử lý theo thời gian thực. 
  • Sao chép dữ liệu giữa các cơ sở dữ liệu. Pub/Sub thường được sử dụng để phân phối các sự kiện thay đổi từ cơ sở dữ liệu. Quản trị viên có thể sử dụng những sự kiện này để xây dựng chế độ xem trạng thái cơ sở dữ liệu và lịch sử trong BigQuery và các hệ thống lưu trữ dữ liệu khác.
  • Xử lý song song và quy trình công việc. Bạn có thể phân phối nhiều nhiệm vụ giữa nhiều nhân viên một cách hiệu quả bằng cách sử dụng thông báo Pub/Sub để kết nối với Cloud Functions. Ví dụ về các tác vụ như vậy là nén tệp văn bản, gửi thông báo qua email, đánh giá mô hình và định dạng lại hình ảnh.
  • Truyền dữ liệu từ các ứng dụng, dịch vụ hoặc thiết bị IoT. Ví dụ: bộ cảm biến có thể truyền dữ liệu tới Pub/Sub để sử dụng trong các sản phẩm Google Cloud khác thông qua đường dẫn Dataflow.
  • Làm mới bộ nhớ đệm (Caches) được phân phối. Ví dụ: một ứng dụng có thể publish các sự kiện invalidation để cập nhật ID của các đối tượng đã thay đổi.
  • Đảm bảo bộ cân bằng tải (Lead balancing). 

Cài đặt Cloud pub/sub như thế nào

B1. Tạo hoặc chọn dự án Google Cloud nơi bạn có thể thiết lập Pub/Sub.

B2. Kích hoạt API Pub/Sub.

B3. Nhận các vai trò và quyền cần thiết để chạy Pub/Sub.

B4. Tạo một chủ đề (Topic)

B5. Hãy xác định schema cho tin nhắn của bạn.

B6. Đính schema vào topic.

B7. Cấu hình publisher client để có thể xuất bản message đến topic.

B8. Nếu được yêu cầu, hãy cấu hình các tùy chọn publishing nâng cao như kiểm soát luồng, nhắn tin hàng loạt và kiểm soát đồng thời.

B9. Chọn loại subscription dựa trên cách bạn muốn nhận tin nhắn.

B10. Tạo một subscription cho chủ đề đã chọn.

B11. Cấu hình subscriber client có thể nhận tin nhắn từ subscription.

B12. Nếu được yêu cầu, hãy cấu hình các tùy chọn gửi tin nhắn nâng cao như gửi chính xác một lần, quản lý hợp đồng thuê, gửi theo yêu cầu và kiểm soát luồng.

B13. Bắt đầu xuất bản tin nhắn từ publisher client đến chủ đề.

B14. Đồng thời, thiết lập subscribe client để nhận và xử lý các tin nhắn này.

So sánh cloud pub/sub vs kafka

Kafka: 

  • Kafka là một nền tảng mã nguồn mở (open-source) để xây dựng các ứng dụng truyền phát trực tuyến và đường truyền dữ liệu theo thời gian thực, được thiết kế để xử lý các luồng dữ liệu lớn với khả năng chịu và xử lý lỗi với độ trễ thấp. Kafka được sử dụng rộng rãi trong các ngành công nghiệp như tài chính, thương mại điện tử và truyền thông xã hội
  • Kafka cung cấp các thư viện client chính thức cho Java, Python và Go. Kafka có khả năng mở rộng cao nhưng cần can thiệp thủ công.
  • Kafka là mã nguồn mở không mất phí license nhưng yêu cầu cài đặt và bảo trì cơ sở hạ tầng đáng kể.

Cloud Pub/Sub: 

  • GCP Pub/Sub là dịch vụ nhắn tin được quản lý hoàn toàn do Google Cloud Platform cung cấp, cho phép trao đổi tin nhắn giữa các ứng dụng với tính năng lưu trữ tin nhắn liên tục, gửi theo thời gian thực và tự động mở rộng quy mô. Cloud Pub/Sub có khả năng tích hợp với các dịch vụ GCP khác như Dataflow, Cloud Function và BigQuery. 
  • Pub/Sub có các thư viện máy khách cho Java, Python, Node.js và C#. Cloud Pub/Sub có khả năng mở rộng tự động mà không cần can thiệp thủ công.
  • Pub/Sub là dịch vụ trả phí với chi phí sẽ thay đổi theo mức sử dụng thực tế.

Trên đây là tổng hợp tất cả thông tin về Cloud Pub/Sub – dịch vụ messaging từ Google. Với ưu điểm xử lý nhanh mạnh mẽ đảm bảo quá trình gửi thông tin giữa các ứng dụng doanh nghiệp kết hợp khả năng tích hợp mở rộng với các giải pháp Google Cloud khác, Cloud Pub/Sub là sự lựa chọn tối ưu cho doanh nghiệp trong quá trình chuyển dịch sử dụng các giải pháp Google Cloud. 

Trở lại đầu trang
0974 417 099