Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Gateway API
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

Create Service Bus on azure

Posted on August 25, 2025September 3, 2025 By nim No Comments on Create Service Bus on azure

Contents

Toggle
  • Create Service Bus
    • How to define the reasonable value for Messaging units (Đơn vị nhắn tin – MU)
      • Khuyến nghị chính: Bắt đầu nhỏ và theo dõi
      • Phương pháp xác định và tinh chỉnh
  • Provisioning Azure Service Bus with Terraform.
    • Public service bus for internet access from anywhere.
    • Connect to Azure Service Bus via Private Links.

Create Service Bus

Instance Details (Chi tiết phiên bản):

  • Namespace name (Tên không gian tên): Đây là tên định danh duy nhất cho Service Bus của bạn trên toàn bộ Azure. Tên này sẽ trở thành một phần của địa chỉ công khai để các ứng dụng kết nối đến (ví dụ: your-name.servicebus.windows.net). Tên này không thể thay đổi sau khi tạo.
  • Pricing tier (Gói định giá): Đây là tùy chọn quan trọng quyết định đến hiệu năng, tính năng và chi phí. Azure Service Bus có các gói chính sau:
    • Basic: Gói cơ bản nhất, chỉ hỗ trợ Queues với các tính năng giới hạn.
    • Standard: Hỗ trợ cả Queues và Topics, cung cấp các tính năng bảo mật và độ tin cậy cao hơn. Đây là lựa chọn phổ biến cho hầu hết các ứng dụng.
    • Premium: Cung cấp hiệu năng cao nhất, tài nguyên độc quyền (không chia sẻ với người dùng khác), và các tính năng nâng cao như tích hợp mạng ảo (VNet integration) và sao lưu địa lý (Geo-disaster recovery).

Khi bạn chọn Pricing tier là Premium thì nó hỗ trợ thêm vụ Availability Zones.

  • Geo-replication (Sao chép địa lý)
    • Enable Geo-replication (Bật sao chép địa lý): Tính năng này chỉ có sẵn ở gói Premium. Khi được bật, nó sẽ tự động sao chép siêu dữ liệu của namespace (queues, topics, subscriptions) sang một khu vực Azure khác (khu vực phụ). Điều này giúp tăng cường tính sẵn sàng và khả năng phục hồi sau thảm họa. Nếu khu vực chính gặp sự cố, bạn có thể thực hiện “failover” để chuyển sang hoạt động trên khu vực phụ.

Tiếp theo bạn nhấn next thì sẽ thấy bảng sau:

Nếu bạn chọn Premium thì bạn sẽ chọn được partitioning và messaging units.

  • Partition count (Số lượng phân vùng):
    • Đây là số lượng partition mà bạn muốn chia cho mỗi queue/topic. Trong hình, bạn đang chọn 2.
    • Lưu ý quan trọng: Như cảnh báo đã chỉ ra, bạn không thể thay đổi thiết lập này sau khi namespace đã được tạo. Vì vậy, hãy cân nhắc kỹ nhu cầu về thông lượng trước khi quyết định.
  • Messaging units (Đơn vị nhắn tin – MU):
    • Đây là các đơn vị tài nguyên độc quyền (CPU và memory) được cấp phát cho namespace của bạn. Càng nhiều MU, khả năng xử lý đồng thời và thông lượng càng cao. Bạn có thể chọn 1, 2, 4, 8, hoặc 16 MU.
    • Mối quan hệ giữa MU và Partition: Thông báo trong hình giải thích rất rõ: “Messaging units are evenly divided among partitions.” (Các đơn vị nhắn tin được chia đều cho các phân vùng).
      • Ví dụ: Nếu bạn chọn 8 MU và 2 partitions, mỗi partition sẽ được phân bổ 4 MU tài nguyên. Điều này đảm bảo mỗi phân vùng đều có đủ sức mạnh xử lý.
    • Bạn có thể thay đổi số lượng MU sau khi đã tạo namespace để tăng/giảm hiệu năng một cách linh hoạt.

How to define the reasonable value for Messaging units (Đơn vị nhắn tin – MU)

Khuyến nghị chính: Bắt đầu nhỏ và theo dõi

Cách tiếp cận tốt nhất là không cố gắng dự đoán một con số hoàn hảo ngay lập tức. Thay vào đó, hãy bắt đầu với một số lượng MU tối thiểu, sau đó theo dõi hiệu suất và điều chỉnh khi cần.

Dựa trên tài liệu của Microsoft, đây là điểm khởi đầu được khuyến nghị : https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-premium-messaging

  • Bắt đầu với 1 hoặc 2 Messaging Units cho namespace của bạn.
  • Một quy tắc chung khác là bắt đầu với 1 MU cho mỗi partition mà bạn cấu hình. Ví dụ, nếu bạn chọn 2 partition, hãy bắt đầu với 2 MU.

Phương pháp xác định và tinh chỉnh

Đây là quy trình từng bước để bạn tìm ra số lượng MU phù hợp cho hệ thống của mình:

  1. Bắt đầu với cấu hình tối thiểu: Khi tạo namespace, hãy chọn 1 hoặc 2 MU như khuyến nghị ở trên. Đây là cách tiếp cận an toàn và tiết kiệm chi phí nhất ban đầu.
  2. Thực hiện kiểm thử tải (Load Testing):
    • Trước khi đưa vào môi trường production, hãy tạo ra một kịch bản kiểm thử mô phỏng gần đúng với tải làm việc dự kiến của bạn (số lượng tin nhắn mỗi giây, kích thước tin nhắn, số lượng người gửi/nhận).
    • Chạy kịch bản này và bắt đầu theo dõi các chỉ số của Service Bus.
  3. Giám sát chỉ số CPU Usage:
    • Trong Azure Portal, vào namespace của bạn và xem mục Metrics. Chỉ số quan trọng nhất để quyết định số lượng MU là CPU Usage.
    • Nếu CPU Usage > 70%: Đây là dấu hiệu cho thấy namespace đang hoạt động gần hết công suất. Bạn nên tăng (scale up) số lượng MU để đảm bảo hiệu suất ổn định và tránh bị nghẽn.
    • Nếu CPU Usage < 20%: Namespace đang có nhiều tài nguyên dư thừa. Bạn có thể cân nhắc giảm (scale down) số lượng MU để tiết kiệm chi phí.
  4. Sử dụng tính năng Autoscale (Tự động mở rộng):
    • Đây là cách làm tốt nhất để quản lý MU một cách tự động và hiệu quả. Thay vì phải theo dõi và thay đổi thủ công, bạn có thể thiết lập các quy tắc để Azure tự động tăng hoặc giảm số lượng MU.
    • Ví dụ về quy tắc Autoscale:
      • Tăng thêm 1 MU khi CPU Usage trung bình trong 10 phút vượt quá 75%.
      • Giảm đi 1 MU khi CPU Usage trung bình trong 30 phút dưới 25%.
    • Bạn có thể thiết lập số lượng MU tối thiểu và tối đa để kiểm soát chi phí và đảm bảo hệ thống luôn đáp ứng được tải đột biến. https://learn.microsoft.com/en-us/azure/service-bus-messaging/automate-update-messaging-units

Và để setup được auto scale cho servise bus bằng UI thì anh em cần phải create service bus xong mới change được.

Phần network mình sẽ để là Public về sau các bạn có thể set lại là Private.

Sau khi nhấn create the chúng ta có 1 service bus như hình:

Tiếp theo để authentication with Service Bus
Bạn vào Settings -> Shared access Policies:

Provisioning Azure Service Bus with Terraform.

Public service bus for internet access from anywhere.

Đầu tiên là netword mode là public:

module "service_bus" {
  source  = "azure-terraform-module/vnet/azure"
  version = "0.0.2"
  resource_group_name = "Nim"
  location            = "westus2"
  tags                = {
    service   = "servicebus"
    owner     = "Nim"
    ManagedBy = "Terraform"
  }

  namespace                    = "mdaaas-servicebus-namespace"
  network_mode                 = "public"
  sku                          = "Premium"
  premium_messaging_partitions = 1
  capacity   = 1
}

Connect to Azure Service Bus via Private Links.

Nếu deploy với network mode là private:

module "service_bus" {
  source  = "azure-terraform-module/vnet/azure"
  version = "0.0.2"
  resource_group_name = "Nim"
  location            = "westus2"
  tags                = {
    service   = "servicebus"
    owner     = "Nim"
    ManagedBy = "Terraform"
  }

  namespace                    = "mdaaas-servicebus-namespace"
  network_mode                 = "private"
  sku                          = "Premium"
  premium_messaging_partitions = 1
  capacity   = 1
  vnet_ids   = [module.vnet.vnet_id]
  subnet_ids = module.vnet.subnet_ids
}
Azure Cloud

Post navigation

Previous Post: [Bottlerocket/EKS] Accessing a Bottlerocket node shell on EKS.
Next Post: Beautiful Infratructure

More Related Articles

[Service Endpoint] Explain the Service Endpoint in Azure VNet. Azure Cloud
Beautiful Infratructure AWS - Amazon Web Service
[Azure] How to change the Default Directory name in Azure Cloud Azure Cloud
[Azure] How to generate Access Token and Refresh Token of Azure. Azure Cloud
[Microsoft] How to disable Microsoft Entra multi-factor authentication MFA from an admin perspective Azure Cloud
[vnet/Azure] VNet provisioning via Terraform. Azure Cloud

Leave a Reply Cancel reply

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

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Telegram/Openclaw] Configure openclaw bot in a Telegram group. March 31, 2026
  • Tutorial: Gateway API + Traefik + oauth2-proxy (Microsoft Entra ID) March 30, 2026
  • Full + incremental backup: When restoring, do deleted files come back? March 27, 2026
  • [K8S] Create long-lived kubeconfig on k8s March 23, 2026
  • [Android Phone] How to ssh to Android Phone. March 20, 2026

Archives

  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • AI
    • OpenClaw
  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Gateway API
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2026 NimTechnology.