Tác giả: Subham Rakshit và Rakshith Rao
Ngày phát hành: 22 JAN 2026
Chuyên mục: Advanced (300), Amazon Managed Streaming for Apache Kafka (Amazon MSK), Technical How-to
Các khối lượng công việc streaming hiện đại có tính động cao—lưu lượng truy cập biến động dựa trên thời gian trong ngày, chu kỳ kinh doanh hoặc các đợt bùng nổ theo sự kiện. Khách hàng cần điều chỉnh quy mô các cụm Apache Kafka một cách linh hoạt để duy trì thông lượng và hiệu suất ổn định mà không phải chịu chi phí không cần thiết. Ví dụ, các nền tảng thương mại điện tử chứng kiến lưu lượng truy cập tăng mạnh trong các đợt giảm giá theo mùa, và các hệ thống tài chính trải qua các đợt tăng tải trong giờ thị trường. Việc điều chỉnh quy mô cụm giúp các nhóm điều chỉnh dung lượng cụm với thông lượng đầu vào tăng lên để đáp ứng những biến động này, dẫn đến việc sử dụng hiệu quả hơn và tỷ lệ chi phí-hiệu suất tốt hơn.
Amazon Managed Streaming for Apache Kafka (Amazon MSK) Express brokers là một thành phần quan trọng để điều chỉnh quy mô cụm một cách linh hoạt nhằm đáp ứng nhu cầu. Các cụm dựa trên Express mang lại thông lượng cao hơn 3 lần, khả năng điều chỉnh quy mô nhanh hơn 20 lần và phục hồi broker nhanh hơn 90% so với các cụm Amazon MSK Provisioned. Ngoài ra, Express brokers hỗ trợ Intelligent Rebalancing để có hiệu suất hoạt động nhanh hơn 180 lần, do đó các partition được tự động và phân phối nhất quán trên các broker. Tính năng này được bật theo mặc định cho tất cả các cụm dựa trên Express mới và không phát sinh thêm chi phí cho khách hàng. Khả năng này giúp loại bỏ nhu cầu quản lý partition thủ công khi sửa đổi dung lượng cụm. Intelligent Rebalancing tự động theo dõi tình trạng cụm và kích hoạt phân phối lại partition khi phát hiện sự mất cân bằng tài nguyên, duy trì hiệu suất trên các broker.
Bài viết này trình bày cách sử dụng tính năng Intelligent Rebalancing và xây dựng một giải pháp tùy chỉnh để điều chỉnh quy mô các cụm dựa trên Express theo chiều ngang (thêm và xóa broker) một cách linh hoạt dựa trên các chỉ số Amazon CloudWatch và các lịch trình được xác định trước. Giải pháp này cung cấp khả năng quản lý dung lượng trong khi vẫn duy trì hiệu suất cụm và giảm thiểu chi phí.
Tổng quan về việc điều chỉnh quy mô Kafka
Điều chỉnh quy mô các cụm Kafka bao gồm việc thêm hoặc xóa broker khỏi cụm trong khi vẫn cung cấp phân phối dữ liệu cân bằng và dịch vụ không bị gián đoạn. Khi các broker mới được thêm vào, việc gán lại partition là cần thiết để phân phối tải đều trên toàn cụm. Quá trình này thường được thực hiện thủ công—hoặc thông qua các công cụ dòng lệnh Kafka (kafka-reassign-partitions.sh) hoặc bằng cách sử dụng các framework tự động hóa như Cruise Control, công cụ này tính toán và thực hiện các kế hoạch gán lại một cách thông minh. Trong các hoạt động scale-in, các partition được lưu trữ trên các broker được đánh dấu để xóa phải được di chuyển đến các broker khác trước, để các broker mục tiêu trống trước khi ngừng hoạt động.
Thách thức khi điều chỉnh quy mô Kafka một cách linh hoạt
Sự phức tạp của việc điều chỉnh quy mô phụ thuộc rất nhiều vào mô hình lưu trữ cơ bản. Trong các triển khai mà dữ liệu broker nằm hoàn toàn trên local storage, việc điều chỉnh quy mô liên quan đến việc di chuyển dữ liệu vật lý giữa các broker, có thể mất một khoảng thời gian đáng kể tùy thuộc vào kích thước partition và replication factor. Ngược lại, các môi trường sử dụng tiered storage chuyển phần lớn dữ liệu sang remote object storage như Amazon Simple Storage Service (Amazon S3), làm cho việc điều chỉnh quy mô chủ yếu là một hoạt động dựa trên metadata. Điều này làm giảm đáng kể chi phí truyền dữ liệu và tăng tốc cả việc thêm và xóa broker, cho phép các cụm Kafka linh hoạt và hiệu quả hơn về mặt vận hành.
Tuy nhiên, việc điều chỉnh quy mô Kafka vẫn là một hoạt động không hề đơn giản do sự tương tác giữa lưu trữ, di chuyển dữ liệu và việc sử dụng tài nguyên broker. Khi các partition được gán lại trên các broker, một lượng lớn dữ liệu phải được sao chép qua mạng, thường dẫn đến bão hòa băng thông mạng, cạn kiệt băng thông lưu trữ và tăng mức sử dụng CPU. Tùy thuộc vào khối lượng dữ liệu và replication factor, việc cân bằng lại partition có thể mất vài giờ, trong thời gian đó hiệu suất và thông lượng cụm có thể tạm thời giảm sút và thường yêu cầu cấu hình bổ sung để điều tiết việc di chuyển dữ liệu. Mặc dù các công cụ như Cruise Control tự động hóa quá trình này, chúng lại giới thiệu một lớp phức tạp khác: việc chọn sự kết hợp phù hợp của các mục tiêu cân bằng lại (như dung lượng đĩa, tải mạng hoặc phân phối bản sao) đòi hỏi sự hiểu biết sâu sắc về nội bộ Kafka và sự đánh đổi giữa tốc độ, cân bằng và ổn định. Kết quả là, việc điều chỉnh quy mô hiệu quả là một bài toán tối ưu hóa, đòi hỏi sự phối hợp cẩn thận giữa tài nguyên lưu trữ, tính toán và mạng.
Cách Express brokers đơn giản hóa việc điều chỉnh quy mô
Express brokers quản lý việc điều chỉnh quy mô Kafka thông qua kiến trúc tính toán và lưu trữ tách rời của chúng. Thiết kế sáng tạo này cho phép lưu trữ không giới hạn mà không cần cấp phát trước, đơn giản hóa đáng kể việc định cỡ và quản lý cụm. Việc tách biệt tài nguyên tính toán và lưu trữ cho phép Express brokers điều chỉnh quy mô nhanh hơn các MSK broker tiêu chuẩn, cho phép mở rộng cụm nhanh chóng trong vài phút. Với Express brokers, quản trị viên có thể điều chỉnh dung lượng cả theo chiều dọc và chiều ngang khi cần, giảm bớt nhu cầu cấp phát quá mức. Kiến trúc này cung cấp thông lượng broker bền vững trong các hoạt động điều chỉnh quy mô, với Express brokers có khả năng xử lý 500 MBps ingress và 1000 MBps egress trên các instance m7g.16xl. Để biết thêm thông tin về cách thức hoạt động của quá trình điều chỉnh quy mô trong các cụm dựa trên Express, hãy xem Express brokers cho Amazon MSK: Điều chỉnh quy mô Kafka tăng tốc với hiệu suất nhanh hơn tới 20 lần.
Thêm vào khả năng điều chỉnh quy mô nhanh hơn này, khi bạn thêm hoặc xóa broker khỏi các cụm dựa trên Express của mình, Intelligent Rebalancing sẽ tự động phân phối lại các partition để cân bằng việc sử dụng tài nguyên trên các broker. Điều này đảm bảo cụm tiếp tục hoạt động ở hiệu suất cao nhất, giúp việc scale in và scale out có thể thực hiện được chỉ với một thao tác cập nhật duy nhất. Intelligent Rebalancing được bật theo mặc định trên các cụm Express broker mới và liên tục giám sát tình trạng cụm để phát hiện sự mất cân bằng tài nguyên hoặc các điểm nóng. Ví dụ, nếu một số broker bị quá tải do phân phối partition không đều hoặc các mẫu lưu lượng truy cập bị lệch, Intelligent Rebalancing sẽ tự động di chuyển các partition đến các broker ít được sử dụng hơn để khôi phục sự cân bằng.
Cuối cùng, các cụm dựa trên Express tự động cấu hình client của các chuỗi kết nối bootstrap broker để cho phép client kết nối với các cụm một cách liền mạch khi các broker được thêm và xóa. Các cụm dựa trên Express cung cấp ba chuỗi kết nối, mỗi chuỗi cho một Availability Zone, độc lập với các broker trong cụm. Điều này có nghĩa là client chỉ cần cấu hình các chuỗi kết nối này để duy trì các kết nối nhất quán khi các broker được thêm hoặc xóa. Những khả năng chính này của các cụm dựa trên Express—điều chỉnh quy mô nhanh chóng, Intelligent Rebalancing và khởi động broker động—là rất quan trọng để cho phép điều chỉnh quy mô động trong các cụm Kafka. Trong phần tiếp theo, chúng ta sẽ khám phá cách chúng ta sử dụng các khả năng này để tự động hóa quá trình điều chỉnh quy mô của các cụm dựa trên Express.
Điều chỉnh quy mô theo yêu cầu và theo lịch trình
Tận dụng khả năng điều chỉnh quy mô nhanh chóng của Express brokers cùng với Intelligent Rebalancing, bạn có thể xây dựng một giải pháp điều chỉnh quy mô linh hoạt và động để tối ưu hóa tài nguyên cụm Kafka của mình. Có hai phương pháp chính để điều chỉnh quy mô tự động nhằm cân bằng nhu cầu hiệu suất với hiệu quả chi phí: điều chỉnh quy mô theo yêu cầu và theo lịch trình.
Điều chỉnh quy mô theo yêu cầu
Điều chỉnh quy mô theo yêu cầu theo dõi hiệu suất cụm và phản ứng với nhu cầu dung lượng. Phương pháp này giải quyết các kịch bản mà các mẫu khối lượng công việc trải qua các đợt tăng lưu lượng truy cập. Điều chỉnh quy mô theo yêu cầu theo dõi các chỉ số hiệu suất Amazon MSK như mức sử dụng CPU và thông lượng mạng ingress và egress trên mỗi broker. Ngoài các chỉ số cơ sở hạ tầng này, giải pháp cũng hỗ trợ sử dụng các chỉ số CloudWatch để cho phép các quyết định điều chỉnh quy mô dựa trên logic kinh doanh.
Giải pháp liên tục đánh giá các chỉ số hiệu suất so với các ngưỡng có thể cấu hình để xác định khi nào cần thực hiện các hành động điều chỉnh quy mô. Khi các broker hoạt động trên ngưỡng dung lượng một cách nhất quán trong một khoảng thời gian, nó sẽ gọi một API Amazon MSK để tăng số lượng broker của cụm. Giải pháp trong bài viết này hiện chỉ hỗ trợ điều chỉnh quy mô theo chiều ngang (thêm và xóa broker). Intelligent Rebalancing sau đó sẽ tự động phân phối lại các partition để phân tán tải trên các broker mới được thêm vào. Tương tự, khi mức sử dụng giảm xuống dưới ngưỡng, giải pháp sẽ gọi một API Amazon MSK để xóa broker. Quá trình cân bằng lại tự động di chuyển các partition từ broker được đánh dấu để xóa sang các broker khác trong cụm. Giải pháp này yêu cầu các topic phải có đủ partition để hỗ trợ cân bằng lại sang các broker mới khi các broker được thêm vào.
Sơ đồ sau minh họa quy trình điều chỉnh quy mô theo yêu cầu.

Điều chỉnh quy mô theo lịch trình
Điều chỉnh quy mô theo lịch trình điều chỉnh dung lượng cụm bằng cách sử dụng các trình kích hoạt dựa trên thời gian. Phương pháp này hữu ích cho các ứng dụng có mẫu lưu lượng truy cập tương quan với giờ làm việc hoặc lịch trình kinh doanh. Ví dụ, các nền tảng thương mại điện tử hưởng lợi từ việc điều chỉnh quy mô theo lịch trình trong các đợt bán hàng cao điểm khi hoạt động của khách hàng đạt đỉnh. Điều chỉnh quy mô theo lịch trình cũng hữu ích cho khách hàng muốn tránh các hoạt động sửa đổi cụm trong giờ làm việc. Giải pháp này sử dụng một lịch trình có thể cấu hình để scale out dung lượng cụm trước giờ làm việc để xử lý lưu lượng truy cập dự kiến và scale in sau giờ làm việc để giảm chi phí. Giải pháp cụ thể này hiện chỉ hỗ trợ điều chỉnh quy mô theo chiều ngang (thêm/xóa broker). Với điều chỉnh quy mô theo lịch trình, bạn có thể xử lý các kịch bản cụ thể như giờ làm việc trong tuần, cửa sổ bảo trì cuối tuần hoặc các ngày cụ thể. Bạn cũng có thể chỉ định số lượng broker mong muốn đạt được trong các hoạt động scale-out và scale-in.
Sơ đồ sau minh họa quy trình điều chỉnh quy mô theo lịch trình.

Tổng quan giải pháp
Giải pháp này cung cấp tự động hóa điều chỉnh quy mô cho Express brokers thông qua hai phương pháp:
- Điều chỉnh quy mô theo yêu cầu – Theo dõi các chỉ số hiệu suất cụm tích hợp hoặc các chỉ số CloudWatch tùy chỉnh và điều chỉnh dung lượng broker khi vượt ngưỡng.
- Điều chỉnh quy mô theo lịch trình – Điều chỉnh quy mô cụm dựa trên các lịch trình cụ thể.
Trong các phần sau, chúng tôi cung cấp chi tiết triển khai cho cả hai phương pháp điều chỉnh quy mô.
Điều kiện tiên quyết
Hoàn thành các bước sau đây làm điều kiện tiên quyết:
- Tạo một cụm Express với Intelligent Rebalancing được bật. Tính năng Intelligent Rebalancing là bắt buộc để giải pháp này hoạt động. Ghi lại Amazon Resource Name (ARN) của cụm.
- Cài đặt Python 3.11 trở lên trên Amazon Elastic Compute Cloud (Amazon EC2).
- Cài đặt AWS Command Line Interface (AWS CLI) và cấu hình nó với thông tin xác thực AWS của bạn.
- Cài đặt AWS CDK CLI.
Giải pháp điều chỉnh quy mô theo yêu cầu
Giải pháp sử dụng một hàm AWS Lambda được kích hoạt định kỳ bởi một Amazon EventBridge scheduler. Hàm Lambda kiểm tra trạng thái cụm và thời gian kể từ lần thêm hoặc xóa broker cuối cùng. Điều này được thực hiện để xác định xem cụm đã sẵn sàng để điều chỉnh quy mô hay chưa. Nếu cụm đã sẵn sàng để điều chỉnh quy mô, hàm sẽ thu thập các chỉ số CloudWatch cần được đánh giá để đưa ra quyết định điều chỉnh quy mô. Dựa trên cấu hình điều chỉnh quy mô và sử dụng các chỉ số trong CloudWatch, hàm sẽ đánh giá logic điều chỉnh quy mô và thực hiện quyết định điều chỉnh quy mô. Quyết định điều chỉnh quy mô có thể dẫn đến việc thêm hoặc xóa broker khỏi cụm. Trong cả hai trường hợp, Intelligent Rebalancing xử lý việc phân phối partition trên các broker mà không cần can thiệp thủ công. Bạn có thể tìm thêm chi tiết về logic điều chỉnh quy mô trong kho lưu trữ GitHub.
Sơ đồ sau minh họa kiến trúc của giải pháp điều chỉnh quy mô theo yêu cầu.

Triển khai giải pháp điều chỉnh quy mô theo yêu cầu
Thực hiện các bước sau để triển khai cơ sở hạ tầng điều chỉnh quy mô theo yêu cầu. Đối với bài viết này, chúng tôi trình bày chức năng scale-out theo yêu cầu.
- Chạy các lệnh sau để thiết lập dự án:
shell git clone https://github.com/aws-samples/sample-msk-express-brokers-scaling.git cd sample-msk-express-brokers-scaling/scaling/cdk python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt - Sửa đổi các ngưỡng để phù hợp với kích thước instance MSK broker và yêu cầu kinh doanh của bạn bằng cách chỉnh sửa
src/config/on_demand_scaling_config.json. Tham khảo tài liệu cấu hình để biết thêm chi tiết về các tùy chọn cấu hình có sẵn.
Theo mặc định,on_demand_scaling_config.jsonxem xét kích thước instance brokerexpress.m7g.large. Do đó, các ngưỡng ingress/egress scale-in/scale-out được cấu hình ở mức 70% thông lượng bền vững được khuyến nghị cho kích thước instance. - Khởi động môi trường của bạn để sử dụng với AWS CDK.
- Triển khai ứng dụng AWS CDK điều chỉnh quy mô theo yêu cầu:
shell cdk deploy MSKOnDemandScalingStack \ --app "python3 msk_on_demand_scaling_stack.py" \ --context cluster_arn="<< ARN of the MSK Cluster >>" \ --context monitoring_frequency_minutes=1 \ --context stack_name="MSKOnDemandScalingStack"
Tham số monitoring_frequency_minutes kiểm soát tần suất EventBridge scheduler gọi hàm Lambda logic điều chỉnh quy mô để đánh giá các chỉ số cụm.
Việc triển khai tạo ra các tài nguyên AWS cần thiết để chạy giải pháp điều chỉnh quy mô theo yêu cầu. Chi tiết về các tài nguyên được tạo được hiển thị trong đầu ra của lệnh.
Kiểm tra và giám sát giải pháp điều chỉnh quy mô theo yêu cầu
Cấu hình bootstrap server cho cụm MSK của bạn. Bạn có thể lấy bootstrap server từ AWS Management console hoặc sử dụng AWS CLI.
export BOOTSTRAP=<<BOOTSTRAP_SERVER>>
Tạo một Kafka topic trong cụm. Cập nhật lệnh sau cho phương pháp xác thực cụ thể trong Amazon MSK. Tham khảo workshop Amazon MSK Labs để biết thêm chi tiết.
Các topic nên có đủ số lượng partition có thể được phân phối trên một tập hợp lớn hơn các broker.
export TOPIC_NAME=<<TOPIC_NAME>>bin/kafka-topics.sh \--bootstrap-server=$BOOTSTRAP \--create \--replication-factor 3 \--partitions 96 \--topic $TOPIC_NAME
Tạo tải trên cụm MSK để kích hoạt và xác minh các hoạt động điều chỉnh quy mô. Bạn có thể sử dụng một ứng dụng hiện có để tạo tải cho cụm của mình. Bạn cũng có thể sử dụng tiện ích kafka-producer-perf-test.sh được đóng gói như một phần của bản phân phối Kafka để tạo tải:
bin/kafka-producer-perf-test.sh \ --topic $TOPIC_NAME \ --num-records 1000000000 \ --record-size 1024 \ --throughput -1 \ --producer-props bootstrap.servers=$BOOTSTRAP
Giám sát các hoạt động điều chỉnh quy mô bằng cách theo dõi nhật ký hàm Lambda:
aws logs tail /aws/lambda/MSKOnDemandScalingStack-MSKScalingFunction \--follow --format short
Trong nhật ký, tìm các thông báo sau để xác định thời điểm chính xác khi các hoạt động điều chỉnh quy mô xảy ra. Các câu lệnh nhật ký phía trên các thông báo này hiển thị lý do đằng sau quyết định điều chỉnh quy mô:
[INFO] Calling MSK UpdateBrokerCount API...[INFO] Successfully initiated broker count update operation
Giải pháp cũng tạo một CloudWatch dashboard cung cấp khả năng hiển thị các hoạt động điều chỉnh quy mô và nhiều chỉ số broker khác. Liên kết đến dashboard được hiển thị trong đầu ra của lệnh cdk deploy.
Hình sau cho thấy một cụm bắt đầu với ba broker. Sau mốc 09:15, nó nhận được lưu lượng truy cập vào nhất quán, vượt quá ngưỡng được đặt trong giải pháp. Giải pháp đã thêm ba broker nữa đi vào hoạt động vào khoảng mốc 09:45. Intelligent Rebalancing đã gán lại một số partition cho các broker mới được thêm vào và lưu lượng truy cập đến được chia cho sáu broker. Giải pháp tiếp tục thêm nhiều broker hơn cho đến khi cụm có 12 broker và tính năng Intelligent Rebalancing tiếp tục phân phối các partition trên các broker mới được thêm vào.

Hình sau cho thấy thời điểm Intelligent Rebalancing hoạt động (giá trị=1). Trong ngữ cảnh của giải pháp này, điều đó thường xảy ra sau khi các broker mới được thêm hoặc xóa và các hoạt động điều chỉnh quy mô hoàn tất.

Hình sau cho thấy số lượng broker được thêm (giá trị dương) hoặc xóa (giá trị âm) khỏi cụm. Điều này giúp trực quan hóa và theo dõi kích thước của cụm khi nó trải qua các hoạt động điều chỉnh quy mô.

Giải pháp điều chỉnh quy mô theo lịch trình
Việc triển khai điều chỉnh quy mô theo lịch trình hỗ trợ các mẫu thời gian thông qua một lịch trình EventBridge. Bạn có thể cấu hình thời gian để kích hoạt một hành động bằng cách sử dụng các cron expression. Dựa trên cron expression, EventBridge Scheduler kích hoạt một hàm Lambda vào thời gian đã chỉ định để scale out hoặc scale in. Hàm Lambda thực hiện kiểm tra xem cụm đã sẵn sàng cho một hoạt động điều chỉnh quy mô hay chưa và thực hiện hoạt động điều chỉnh quy mô được yêu cầu bằng cách gọi API mặt phẳng điều khiển Amazon MSK. Dịch vụ chỉ cho phép xóa ba broker cùng một lúc khỏi một cụm. Giải pháp này xử lý kịch bản này bằng cách liên tục xóa các broker theo nhóm ba cho đến khi đạt được số lượng broker mong muốn.
Sơ đồ sau minh họa kiến trúc của giải pháp điều chỉnh quy mô theo lịch trình.

Tham số cấu hình
Các lịch trình EventBridge hỗ trợ các cron expression để kiểm soát thời gian chính xác, vì vậy bạn có thể tinh chỉnh các hoạt động điều chỉnh quy mô cho các thời điểm cụ thể trong ngày và các ngày trong tuần. Ví dụ, bạn có thể cấu hình điều chỉnh quy mô xảy ra lúc 8:00 AM vào các ngày trong tuần bằng cách sử dụng cron expression cron(0 8 ? * MON-FRI *). Để scale in lúc 6:00 PM vào cùng các ngày đó, hãy sử dụng cron(0 18 ? * MON-FRI *). Để biết thêm các mẫu, hãy tham khảo Đặt mẫu lịch trình cho các quy tắc theo lịch trình (cũ) trong Amazon EventBridge. Bạn cũng có thể cấu hình số lượng broker mong muốn đạt được trong các hoạt động scale-out và scale-in.
Triển khai giải pháp điều chỉnh quy mô theo lịch trình
Thực hiện các bước sau để triển khai giải pháp điều chỉnh quy mô theo lịch trình:
- Chạy các lệnh sau để thiết lập dự án:
shell cd scaling/cdk python3 -m venv .venv && source .venv/bin/activate pip install -r requirements.txt - Sửa đổi lịch trình điều chỉnh quy mô bằng cách chỉnh sửa
scaling/cdk/src/config/scheduled_scaling_config.json. Tham khảo tài liệu cấu hình để biết thêm chi tiết về các tùy chọn cấu hình có sẵn. - Triển khai ứng dụng AWS CDK điều chỉnh quy mô theo lịch trình:
shell cdk deploy MSKScheduledScalingStack \ --app "python3 msk_scheduled_scaling_stack.py" \ --context cluster_arn="<< ARN of the MSK Cluster >>" \ --context stack_name="MSKScheduledScalingStack"
Kiểm tra và giám sát giải pháp điều chỉnh quy mô theo lịch trình
Việc điều chỉnh quy mô theo lịch trình được kích hoạt như đã chỉ định trong cron của EventBridge Scheduler. Tuy nhiên, nếu bạn muốn kiểm tra các hoạt động scale-out, hãy chạy lệnh sau để gọi thủ công hàm Lambda:
aws lambda invoke \ --function-name MSKScheduledScalingStack-MSKScheduledScalingFunction \ --payload '{"source":"aws.scheduler.scale-out","detail":{"action":"scale_out","schedule_name":"MSKScheduledScaleOut"}}' \ --cli-binary-format raw-in-base64-out \ response.json
Tương tự, bạn có thể bắt đầu thủ công một hoạt động scale-in bằng cách chạy lệnh sau:
aws lambda invoke \ --function-name MSKScheduledScalingStack-MSKScheduledScalingFunction \ --payload '{"source":"aws.scheduler.scale-in","detail":{"action":"scale_in","schedule_name":"MSKScheduledScaleIn"}}' \ --cli-binary-format raw-in-base64-out \ response.json
Giám sát các hoạt động điều chỉnh quy mô bằng cách theo dõi nhật ký hàm Lambda:
aws logs tail /aws/lambda/MSKScheduledScalingStack-MSKScheduledScalingFunction \--follow --format short
Bạn có thể giám sát điều chỉnh quy mô theo lịch trình bằng cách sử dụng CloudWatch dashboard như đã mô tả trong phần điều chỉnh quy mô theo yêu cầu.
Xem xét các tham số cấu hình điều chỉnh quy mô
Các tham số cấu hình cho cả điều chỉnh quy mô theo yêu cầu và theo lịch trình được ghi lại trong Tùy chọn cấu hình. Các cấu hình này mang lại cho bạn sự linh hoạt để thay đổi cách thức và thời điểm điều chỉnh quy mô xảy ra. Điều quan trọng là phải xem xét các tham số cấu hình và đảm bảo chúng đáp ứng yêu cầu kinh doanh của bạn. Đối với điều chỉnh quy mô theo yêu cầu, bạn có thể điều chỉnh quy mô cụm dựa trên các chỉ số hiệu suất tích hợp hoặc các chỉ số tùy chỉnh (ví dụ: MessagesInPerSec).
Các điểm cần cân nhắc
Hãy ghi nhớ các điểm cần cân nhắc sau khi triển khai một trong hai giải pháp:
- Thông báo EventBridge cho các lỗi điều chỉnh quy mô – Cả giải pháp điều chỉnh quy mô theo yêu cầu và theo lịch trình đều xuất bản thông báo EventBridge khi các hoạt động điều chỉnh quy mô thất bại. Tạo các quy tắc EventBridge để định tuyến các sự kiện lỗi này đến hệ thống giám sát và cảnh báo của bạn để phát hiện các lỗi trong điều chỉnh quy mô và phản ứng với chúng. Để biết chi tiết về các nguồn sự kiện, loại và payload, hãy tham khảo phần thông báo EventBridge trong kho lưu trữ GitHub.
- Quản lý thời gian chờ (Cool-down period) – Cấu hình đúng các cool-down period để ngăn chặn các dao động điều chỉnh quy mô, nơi cụm liên tục scale out và scale in nhanh chóng. Các dao động thường xảy ra khi các mẫu lưu lượng truy cập có các đợt tăng đột biến ngắn hạn không đại diện cho nhu cầu bền vững. Các dao động cũng có thể xảy ra khi các ngưỡng được đặt quá gần với mức hoạt động bình thường. Đặt cool-down period dựa trên đặc điểm khối lượng công việc của bạn và thời gian hoàn thành điều chỉnh quy mô. Cũng xem xét các cool-down period khác nhau cho các hoạt động scale-out so với scale-in bằng cách đặt cool-down period dài hơn cho các hoạt động scale-in (
scale_in_cooldown_minutes) so với scale-out (scale_out_cooldown_minutes). Kiểm tra cài đặt cool-down dưới các mẫu tải thực tế trước khi triển khai sản xuất để đạt được hiệu suất tối ưu. - Kiểm soát chi phí thông qua tần suất giám sát – Giải pháp phát sinh chi phí cho các dịch vụ như hàm Lambda, lịch trình EventBridge, chỉ số CloudWatch và nhật ký được sử dụng trong giải pháp. Cả giải pháp điều chỉnh quy mô theo yêu cầu và theo lịch trình đều hoạt động bằng cách chạy định kỳ để kiểm tra trạng thái sức khỏe của cụm và xem liệu có cần thực hiện hoạt động điều chỉnh quy mô hay không. Tần suất giám sát mặc định 1 phút cung cấp khả năng điều chỉnh quy mô phản hồi nhanh nhưng làm tăng các chi phí khác liên quan đến giải pháp. Cân nhắc tăng khoảng thời gian giám sát dựa trên đặc điểm khối lượng công việc của bạn để cân bằng khả năng phản hồi điều chỉnh quy mô và chi phí phát sinh bởi giải pháp. Bạn có thể thay đổi tần suất giám sát bằng cách thay đổi monitoring_frequency_minutes khi bạn triển khai giải pháp.
- Cách ly giải pháp – Các giải pháp điều chỉnh quy mô theo yêu cầu và theo lịch trình được thiết kế và thử nghiệm độc lập để hỗ trợ hành vi có thể dự đoán và hiệu suất tối ưu. Bạn có thể triển khai một trong hai giải pháp, nhưng tránh chạy cả hai giải pháp đồng thời trên cùng một cụm. Sử dụng cả hai phương pháp cùng nhau có thể gây ra hành vi điều chỉnh quy mô không thể đoán trước, nơi các giải pháp có thể xung đột với các quyết định điều chỉnh quy mô của nhau, dẫn đến tranh chấp tài nguyên và các dao động điều chỉnh quy mô tiềm ẩn. Chọn phương pháp phù hợp nhất với các mẫu khối lượng công việc của bạn và chỉ triển khai một giải pháp điều chỉnh quy mô cho mỗi cụm.
Dọn dẹp
Thực hiện các bước sau để xóa các tài nguyên được tạo bởi giải pháp. Đảm bảo tất cả các hoạt động điều chỉnh quy mô đang diễn ra đã hoàn tất trước khi bạn chạy dọn dẹp. Xóa giải pháp điều chỉnh quy mô theo yêu cầu bằng mã sau:
cdk destroy MSKOnDemandScalingStack --app "python3 msk_on_demand_scaling_stack.py" --context cluster_arn="<MSK_CLUSTER_ARN>"
Xóa giải pháp điều chỉnh quy mô theo lịch trình bằng mã sau:
cdk destroy MSKScheduledScalingStack --app "python3 msk_scheduled_scaling_stack.py" --context cluster_arn="<MSK_CLUSTER_ARN>"
Tóm tắt
Trong bài viết này, chúng tôi đã trình bày cách sử dụng Intelligent Rebalancing để điều chỉnh quy mô cụm dựa trên Express của bạn dựa trên các yêu cầu kinh doanh mà không cần cân bằng lại partition thủ công. Bạn có thể mở rộng giải pháp để sử dụng các chỉ số CloudWatch cụ thể mà doanh nghiệp của bạn phụ thuộc vào để điều chỉnh quy mô cụm Kafka của bạn một cách linh hoạt. Tương tự, bạn có thể điều chỉnh giải pháp điều chỉnh quy mô theo lịch trình để scale out và scale in cụm của bạn khi bạn dự đoán sự thay đổi đáng kể về lưu lượng truy cập đến cụm của bạn vào những thời điểm cụ thể. Để tìm hiểu thêm về các dịch vụ được sử dụng trong giải pháp này, hãy tham khảo các tài nguyên sau:
- Intelligent Rebalancing cho các cụm
- Amazon MSK Express brokers
- Hướng dẫn dành cho nhà phát triển AWS CDK
Về tác giả

Subham Rakshit
Subham là Kiến trúc sư Giải pháp Streaming cấp cao cho Analytics tại AWS có trụ sở tại Vương quốc Anh. Anh ấy làm việc với khách hàng để thiết kế và xây dựng kiến trúc streaming để họ có thể nhận được giá trị từ việc phân tích dữ liệu streaming của mình. Hai cô con gái nhỏ của anh ấy chiếm phần lớn thời gian ngoài công việc, và anh ấy thích giải các câu đố ghép hình cùng chúng.

Rakshith Rao
Rakshith là Kiến trúc sư Giải pháp cấp cao tại AWS. Anh ấy làm việc với các khách hàng chiến lược của AWS để xây dựng và vận hành các khối lượng công việc quan trọng của họ trên AWS.