ApsaraMQ for Kafka uses the same client protocols as open-source Apache Kafka, so you can seamlessly migrate existing applications and code without changes. The following sections compare the two across reliability, scalability, operations, and resource management.
Reliability
| Capability | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Disk space handling | Automatically deletes older data when disk space runs out. | The cluster breaks down when disk space runs out. |
| Thread pool isolation | Data writes remain normal when cold data is read. | Reading cold data blocks threads and causes frequent write failures. |
| Partition scale | Maintains stable writes with over 10,000 partitions. | Performance jitters start when the partition count exceeds 1,000. |
| Health checks | Built-in inspection system that detects and resolves deadlocks and breakdowns automatically. | No built-in health check system. |
| Bug fixes | Patches are applied as soon as issues are identified. | Fixes depend on community releases, which can take a long time. |
Scalability and storage
| Capability | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Scaling speed | Completes in seconds with no impact on running workloads. | Takes hours. Cluster performance degrades due to increased replication traffic. |
| Storage efficiency | Professional Edition instances use cloud storage with built-in reliability, which helps save a large amount of storage space. | Stores three replicas of every partition for availability, which imposes a heavy load on storage. |
Operations and observability
| Capability | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Version upgrades | One-click upgrade through the console. | Manual process that is prone to errors. |
| Metrics and history | Full metric curves with historical data for traffic analysis and troubleshooting. | Real-time metrics only. Historical data is difficult to access. |
| Message accumulation alerts | Built-in alerting on message accumulation for early issue detection. | No built-in alerting. |
| Subscription visibility | Complete subscription information. | Limited subscription information. |
| Partition status | Detailed partition status diagrams. | Basic partition status diagrams. |
Message management
| Capability | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Message sending | Send messages directly from the ApsaraMQ for Kafka console. | Requires CLI commands to produce messages. This results in high costs. |
| Message query | Query messages by timestamp or offset in the console. | CLI-based consumption only. No query by timestamp or offset. |
Resource management differences
ApsaraMQ for Kafka manages topics and groups through the console and API, which enables fine-grained access control and resource operation auditing. This introduces some differences from self-managed Apache Kafka.
Topics
| Operation | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Create | ApsaraMQ for Kafka console, API operations, or automatic creation on the broker (disabled by default). | Kafka CLI, Kafka Manager, or automatic creation on the broker. |
| Delete | ApsaraMQ for Kafka console or API operations. | Kafka CLI or Kafka Manager. |
| Naming rules | Reserved instance: 3-64 characters. Letters, digits, underscores (\_), hyphens (-), and periods (.). Serverless instance: 1-249 characters. Same character set. | 3-249 characters. Letters, digits, underscores (\_), hyphens (-), and periods (.). |
ApsaraMQ for Kafka does not support creating or deleting topics through the Kafka CLI or Kafka Manager.
Automatic topic creation is intended for testing environments only. For more information, see FAQ about automatic topic creation.
ApsaraMQ for Kafka restricts topic name length to prevent issues caused by limits on the length of resource names in other systems.
Groups
| Operation | ApsaraMQ for Kafka | Apache Kafka |
|---|---|---|
| Create | ApsaraMQ for Kafka console, API operations, or automatic creation on the broker (disabled by default). | Automatic creation on the broker. |
| Delete | ApsaraMQ for Kafka console or API operations. | Kafka CLI. |
| Naming rules | Reserved instance: 3-64 characters. Letters, digits, underscores (\_), hyphens (-), and periods (.). Serverless instance: 1-249 characters. Letters, digits, and the following special characters: @ . _ * $ # ^ ! & - | 3-249 characters. Letters, digits, underscores (\_), hyphens (-), and periods (.). |
ApsaraMQ for Kafka does not support deleting groups through the Kafka CLI.
ApsaraMQ for Kafka restricts group name length to prevent issues caused by limits on the length of resource names in other systems.
The flexible group creation feature lets you create groups without pre-registering them in the console. Enabling this feature disables fine-grained permission control, resource operation auditing, and message accumulation monitoring and alerting.