Categories
Software Architecture

Thêm Thông Minh Vào Ứng Dụng Của Bạn Với Azure 8: Sử Dụng Các Sự Kiện Và Tin Nhắn Trong Ứng Dụng Của Bạn

Sử dụng các sự kiện và tin nhắn trong ứng dụng của bạn

Các ứng dụng hiện đại, được phân phối trên toàn cầu thường phải xử lý một lượng lớn thông điệp gửi đến, vì vậy chúng cần được thiết kế với tính năng tách và mở rộng quy mô. Azure cung cấp một số dịch vụ để trợ giúp nhập và phân tích sự kiện cũng như các mẫu nhắn tin. Các dịch vụ này cũng rất quan trọng để tạo ra các ứng dụng thông minh tận dụng AI.

Buýt dịch vụ (Service Bus)

Cốt lõi của nhắn tin trong Azure là Service Bus. Service Bus bao gồm một tập hợp các dịch vụ mà bạn sử dụng cho các mẫu nhắn tin. Các dịch vụ quan trọng nhất là hàng đợi và chủ đề Buýt Dịch vụ Azure.

Bắt đầu với hàng đợi Buýt Dịch vụ

Hàng đợi Buýt Dịch vụ (Service Bus queues)

Các hàng đợi Service Bus tách các hệ thống khỏi nhau. Ví dụ: một ứng dụng web nhận đơn đặt hàng từ người dùng và cần gọi một dịch vụ web để xử lý đơn đặt hàng. Dịch vụ web sẽ mất quá nhiều thời gian để xử lý đơn đặt hàng, có thể lên đến năm phút.

Một cách để giải quyết vấn đề này là sử dụng hàng đợi để tách ứng dụng web khỏi dịch vụ web. Ứng dụng web nhận đơn đặt hàng và viết nó dưới dạng tin nhắn trên hàng đợi Buýt Dịch vụ. Sau đó, ứng dụng web thông báo cho người dùng rằng đơn đặt hàng đang được xử lý. Dịch vụ web lấy từng tin nhắn từ hàng đợi và xử lý chúng. Khi dịch vụ web đã xử lý đơn đặt hàng, nó sẽ gửi thông báo qua email cho người dùng rằng mặt hàng đã được đặt.

Bằng cách tách các hệ thống, ứng dụng web có thể hoạt động ở tốc độ khác với dịch vụ web và cả hai đều có thể được điều chỉnh quy mô riêng theo nhu cầu của ứng dụng.

Hàng đợi Service Bus là một cơ chế đơn giản. Nhiều ứng dụng có thể đặt thông báo vào hàng đợi, nhưng một thông báo trong hàng đợi chỉ có thể được xử lý bởi một ứng dụng tại một thời điểm. Một số tính năng thông minh có sẵn để làm việc với các thư trên hàng đợi, bao gồm phát hiện trùng lặp và một hàng đợi thư không ai nhận mà các thư được chuyển đến khi chúng không được xử lý chính xác.

Chủ đề Buýt Dịch vụ (Service Bus topics)

Cũng giống như hàng đợi Buýt Dịch vụ, chủ đề Buýt Dịch vụ là một dạng tách ứng dụng.

Dưới đây là sự khác biệt giữa chúng:

  • Với một hàng đợi, nhiều ứng dụng ghi thông báo vào hàng đợi, nhưng chỉ một ứng dụng tại một thời điểm có thể xử lý một thông báo.
  • Với một chủ đề, nhiều ứng dụng viết tin nhắn cho chủ đề và nhiều ứng dụng có thể xử lý một tin nhắn cùng một lúc.

Các ứng dụng có thể tạo đăng ký về chủ đề cho biết họ quan tâm đến loại thư nào. Cũng giống như hàng đợi, chủ đề có các tính năng, bao gồm phát hiện trùng lặp và hàng đợi thư không ai nhận, thư sẽ được chuyển đến khi chúng không được xử lý chính xác.

So sánh hàng đợi Buýt dịch vụ và bộ nhớ Hàng đợi Azure (Azure Queue storage)

Hàng đợi Service Bus và lưu trữ Azure Queue về cơ bản làm điều tương tự, nhưng có một số điểm khác biệt, như thể hiện trong Bảng 4-3:

Bảng 4-3: Tìm hiểu những điểm khác biệt chính

Hàng đợi Buýt Dịch vụ so với Lưu trữ hàng đợi

Hàng đợi Buýt Dịch vụ so với Lưu trữ hàng đợi.

Trung tâm sự kiện (Event Hubs)

Các trung tâm sự kiện có thể giúp các doanh nghiệp nắm bắt một lượng lớn dữ liệu để phân tích hoặc chuyển đổi và di chuyển nó để sử dụng sau này.

Trung tâm sự kiện được thiết kế để nhập dữ liệu lớn. Nó dễ dàng xử lý hàng triệu tin nhắn mỗi giây. Nó lưu giữ tin nhắn trong tối đa bảy ngày hoặc vô thời hạn bằng cách ghi tin nhắn vào kho dữ liệu bằng cách sử dụng tính năng Event Hubs Capture.

Bạn có thể sử dụng Trung tâm sự kiện để lọc dữ liệu với các truy vấn khi dữ liệu đến và xuất dữ liệu đó ra một kho dữ liệu chẳng hạn như Azure Cosmos DB. Bạn thậm chí có thể phát lại tin nhắn.

Bắt đầu gửi tin nhắn đến các Trung tâm sự kiện

Azure IoT Hub

Cũng giống như Trung tâm sự kiện, Trung tâm IoT Azure được xây dựng để nhập dữ liệu lớn. Nó đặc biệt hướng đến việc xử lý khối lượng khổng lồ các thông điệp dữ liệu từ các thiết bị trên IoT, chẳng hạn như bộ điều nhiệt và cảm biến thông minh trong ô tô.

Nó sở hữu nhiều thuộc tính giống như Trung tâm sự kiện, bao gồm khả năng lưu giữ tin nhắn trong tối đa bảy ngày và phát lại chúng.

Điều làm cho IoT Hub trở nên độc đáo là nó có thể gửi tin nhắn đến các thiết bị. Nó có khả năng quản lý cơ sở hạ tầng IoT hoàn chỉnh của bạn — bạn có thể sử dụng nó để đăng ký thiết bị, báo cáo trạng thái của chúng, quản lý chúng bằng cách bảo mật và khởi động lại chúng cũng như gửi dữ liệu cho chúng.

Kết nối thiết bị của bạn với Trung tâm IoT của bạn

Lưới sự kiện (Event Grid)

Event Grid cung cấp một loại thông báo khác — một dịch vụ đăng ký và xuất bản được quản lý hoàn toàn, kết nối với hầu hết mọi dịch vụ trong Azure cũng như với các nhà xuất bản và người đăng ký tùy chỉnh.

Điều này khác với cách làm việc với các hàng đợi và chủ đề của Buýt Dịch vụ, mà bạn cần phải thăm dò hàng đợi hoặc chủ đề cho các tin nhắn mới. Event Grid tự động đẩy tin nhắn đến người đăng ký, biến nó thành dịch vụ sự kiện phản ứng theo thời gian thực.

Ví dụ: các dịch vụ bên trong và bên ngoài Azure xuất bản các sự kiện khi một blob mới được thêm vào hoặc khi một người dùng mới được thêm vào đăng ký Azure (Azure subscription). Event Grid phát hiện các sự kiện này và cung cấp chúng cho các trình xử lý sự kiện và các dịch vụ đăng ký các sự kiện, như thể hiện trong Hình 4-5:

Hình 4-5: Luồng sự kiện từ nhà xuất bản sự kiện đến người xử lý sự kiện.

Hình 4-5: Luồng sự kiện từ nhà xuất bản sự kiện đến người xử lý sự kiện

Trình xử lý sự kiện có thể là các chức năng Azure (Azure functions) hoặc Ứng dụng Logic Azure (Azure Logic Apps), sau đó có thể hoạt động trên dữ liệu trong sự kiện.

Một khía cạnh quan trọng khác của Event Grid là nó không có máy chủ. Điều này có nghĩa là, giống như Azure Logic Apps và Azure Functions, Event Grid tự động mở rộng quy mô và không cần một phiên bản của nó để triển khai. Bạn chỉ cần cấu hình nó và sử dụng nó, và bạn chỉ phải trả tiền khi nó được sử dụng.

Bạn có thể sử dụng Event Grid nếu bạn muốn nhận thông báo qua email mỗi khi người dùng được thêm vào hoặc bị xóa khỏi danh sách gửi thư của bạn trong Mailchimp. Event Grid được sử dụng để kích hoạt một ứng dụng trong Azure Logic Apps và được định cấu hình để lắng nghe các thay đổi đối với danh sách gửi thư Mailchimp. Sau đó Event Grid báo hiệu cho Logic Apps gửi một email chứa tên của người dùng đã được thêm hoặc xóa và hành động đã được thực hiện.

Theo dõi các thay đổi của máy ảo với Lưới sự kiện và Ứng dụng Logic

Dịch vụ Azure SignalR (Azure SignalR Service)

Bạn có thể sử dụng Dịch vụ Azure SignalR để đơn giản hóa quá trình thêm chức năng web thời gian thực vào các ứng dụng qua HTTP cho phép các dịch vụ đẩy các bản cập nhật nội dung đến các máy khách được kết nối. Dịch vụ này dựa trên ASP.NET Core SignalR và được cung cấp như một dịch vụ độc lập, được quản lý hoàn toàn trong Azure.

SignalR có thể cập nhật các ứng dụng được kết nối trong thời gian thực qua HTTP mà không cần các ứng dụng thăm dò ý kiến để cập nhật hoặc gửi các yêu cầu HTTP mới. Điều này cho phép bạn tạo trải nghiệm web liền mạch giúp cập nhật thông tin nhanh chóng. Ví dụ: một ứng dụng đấu giá có thể sử dụng SignalR để làm mới giá thầu mới nhất ngay khi nó xảy ra, mà không làm mới hoàn toàn trang hoặc liên tục thăm dò để biết thông tin.

Tự mình lưu trữ một máy chủ SignalR không phải là một nhiệm vụ đơn giản và có thể khó mở rộng quy mô và bảo mật đúng cách. Khi bạn sử dụng Dịch vụ Azure SignalR được quản lý hoàn toàn, việc thiết lập rất dễ dàng và bảo mật, tính khả dụng, hiệu suất và khả năng mở rộng đều được quản lý cho bạn.

Tạo phòng trò chuyện với SignalR

Sử dụng cái gì và khi nào

Azure cung cấp vô số tùy chọn để thực hiện nhắn tin và tách các ứng dụng. Bạn nên sử dụng cái nào và khi nào? Bảng 4-4 tóm tắt các điểm khác biệt để giúp bạn lựa chọn.

Bảng 4-4: Sử dụng gì khi

Bản tóm tắt về các dịch vụ Azure cho các sự kiện và tin nhắn

Bản tóm tắt về các dịch vụ Azure cho các sự kiện và tin nhắn.

* Các dịch vụ có dấu hoa thị có một cấp miễn phí mà bạn có thể sử dụng để bắt đầu miễn phí

Đọc thêm

Bạn có thể tìm hiểu thêm về cách sử dụng các dịch vụ Azure AI trong ứng dụng của mình bằng cách nhấp vào các liên kết sau:

Hướng dẫn của nhà phát triển để tạo ứng dụng AI

Trường AI

Leave a Reply

Your email address will not be published. Required fields are marked *