Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.
AutoMQ is a next-generation Kafka release redesigned based on cloud-native concepts, and it is compatible with Apache Kafka®. This article will detail how to migrate from Apache Kafka® or other Kafka distributions to AutoMQ.
The AutoMQ Open Source recommends using the MirrorMaker2 tool for cluster migration, supporting transitions from Apache Kafka or other Kafka distributions to AutoMQ.
AutoMQ commercial editions provide a Kafka Linking tool, which supports Byte-to-Byte message synchronization (ensuring that message offsets remain completely consistent before and after synchronization) and enables zero-downtime migration. If your business scenario requires a smoother migration solution, you can reach out to the AutoMQ team via this form for assistance and best practices.
MirrorMaker2 migration tool has the following capabilities:
Supports batch migration of clusters: MirrorMaker2 facilitates batch migration of Topics and Groups from the source cluster to the target cluster, enabling phased rollout and validation.
Supports synchronization of consumption progress: MirrorMaker2 ensures real-time synchronization of consumption progress from the source cluster, allowing consumers to continue consuming from the target cluster after migration.
Supports dynamic updates of Topics and Groups: MirrorMaker2 enables real-time monitoring of dynamic updates of Topics and Groups, ensuring that no updates are missed during the migration process.
The technical architecture of MirrorMaker2 is as follows:
MirrorMaker2 defines several Connectors to implement data synchronization tasks between two Apache Kafka® clusters, including necessary configurations and real-time running states.
MirrorSourceConnector: Used for synchronizing message data from the source cluster.
MirrorCheckpointConnector: Used to synchronize the consumption progress data of the source cluster ConsumerGroup.
MirrorHeartbeatConnector: Used for system detection of the synchronization link’s operational status.
MirrorMaker2 uses Connectors to synchronize messages between the source and target clusters. This mechanism cannot guarantee complete data consistency between the source and target clusters. Therefore, when using the migration tool, please note the following constraints and limitations:
Minor Message DuplicationConsumer progress data is asynchronously and intermittently synchronized, which may cause offset rollbacks and result in duplicate consumption when switching consumers.Message synchronization is an asynchronous operation, and due to machine anomalies or fault recovery, partial data may be duplicated.Minor Message ReorderingIf offset rollbacks occur when switching consumers, a small number of messages will be reconsumed, leading to disorder in the message sequence.
After understanding the background of cluster migration, it is recommended to choose the corresponding solution based on the current cluster situation:
Migrating from Apache Kafka to AutoMQ: Follow the migration plan and execute the migration step by step in batches. Migrating from Apache Kafka to AutoMQ▸
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AutoMQ Documentation","colors":{"primary":"#2449D4","light":"#2449D4","dark":"#2449D4"},"logo":{"light":"https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/logo/automq-black.svg?fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=bcc93ae74a4143ae2b7602497b7b354b","dark":"https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/logo/automq-white.svg?fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=209c336f52b4021f2e991e10d07613ae"},"favicon":"https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/logo/favicon.svg?fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=d736b0934a674250c9dbe95a5f642fb9","appearance":{"default":"light","strict":true},"navbar":{"links":[{"icon":"github","href":"https://github.com/automq/automq","label":"Github"}],"primary":{"type":"button","label":"automq.com","href":"https://www.automq.com"}},"footer":{"socials":{"slack":"https://go.automq.com/slack","telegram":"https://t.me/+VgqhN9wqBGIzYmU1","x":"https://x.com/AutoMQ_Lab","github":"https://github.com/automq/automq","linkedin":"https://linkedin.com/company/automq"}},"icons":{"library":"lucide"},"integrations":{"ga4":{"measurementId":"G-4F3BX9DFG9"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/automq/automq"},{"anchor":"Slack","icon":"slack","href":"https://go.automq.com/slack"},{"anchor":"Telegram","icon":"Telegram","href":"https://t.me/+VgqhN9wqBGIzYmU1"},{"anchor":"Blog","icon":"newspaper","href":"https://www.automq.com/blog"}]},"languages":[{"language":"en","href":""},{"language":"cn","href":"zh/automq/what-is-automq/overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"automq","hasAudioNarration":false,"actualSubdomain":"automq","customDomains":["docs.automq.com"],"gitSource":{"type":"github","owner":"automq","repo":"sitebox","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad735a93eabd17c66250d4b","collectionId":"54500605-320d-46b3-b896-c0d1e0d9a573","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad735a93eabd17c66250d4b"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad735a93eabd17c66250d4b","clientVersion":"0.0.3902","searchFilterCounts":[{"language":"cn","tag":"AutoMQ BYOC","count":124},{"language":"en","tag":"AutoMQ BYOC","count":113},{"language":"en","tag":"AutoMQ Open Source","count":61},{"language":"cn","tag":"AutoMQ Open Source","count":57},{"language":"en","tag":"Kafka Connect","count":48},{"language":"cn","tag":"Kafka Connect","count":48},{"language":"en","tag":"Sink Connectors","count":26},{"language":"cn","tag":"Sink Connectors","count":26},{"language":"en","tag":"Source Connectors","count":19},{"language":"cn","tag":"Source Connectors","count":19},{"language":"cn","tag":"快速开始","count":16},{"language":"en","tag":"Integrations","count":14},{"language":"en","tag":"Getting Started","count":12},{"language":"cn","tag":"生态集成","count":12},{"language":"en","tag":"Architecture","count":11},{"language":"cn","tag":"管理环境","count":11},{"language":"cn","tag":"技术架构","count":11},{"language":"cn","tag":"安装 BYOC 环境","count":9},{"language":"en","tag":"Eliminate Inter-Zone Traffics","count":8},{"language":"en","tag":"Manage Environments","count":8}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@automq.com"}},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2-autocommit","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-branches-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"teamspace","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"client-snapshot-docs-config","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"static/style.css","content":"#content-area{word-break:keep-all;white-space:normal;overflow-wrap:normal}header div:nth-child(2) p{display:none}.emphasize-placeholder{background-color:#e0f2ff;border:1px solid #2d64eb;padding:2px 6px;border-radius:4px;font-family:monospace;cursor:pointer;display:inline-flex;align-items:center}.emoji-flip{display:inline-block;transform:scaleX(-1);font-size:.8em;margin-left:4px}"}],"page":{"pagePath":"automq/migration/overview","slug":"/automq/migration/overview","pageMetadata":{"title":"Overview","description":"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.","href":"/automq/migration/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`migration`,children:`Migration`}),`\n`,_jsx(_components.p,{children:`AutoMQ is a next-generation Kafka release redesigned based on cloud-native concepts, and it is compatible with Apache Kafka®. This article will detail how to migrate from Apache Kafka® or other Kafka distributions to AutoMQ.`}),`\n`,_jsx(Heading,{level:`2`,id:`migration-tool`,children:`Migration Tool`}),`\n`,_jsx(_components.p,{children:`The AutoMQ Open Source recommends using the MirrorMaker2 tool for cluster migration, supporting transitions from Apache Kafka or other Kafka distributions to AutoMQ.`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`AutoMQ commercial editions provide a `,_jsx(_components.a,{href:`https://docs.automq.com/automq-cloud/migrate-to-automq/overview#overview-of-kafka-linking`,children:`Kafka Linking tool`}),`, which supports Byte-to-Byte message synchronization (ensuring that message offsets remain completely consistent before and after synchronization) and enables zero-downtime migration. If your business scenario requires a smoother migration solution, you can reach out to the AutoMQ team via `,_jsx(_components.a,{href:`https://www.automq.com/contact`,children:`this form`}),` for assistance and best practices.`]})}),`\n`,_jsx(_components.p,{children:`MirrorMaker2 migration tool has the following capabilities:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Supports batch migration of clusters:`}),` MirrorMaker2 facilitates batch migration of Topics and Groups from the source cluster to the target cluster, enabling phased rollout and validation.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Supports synchronization of consumption progress:`}),` MirrorMaker2 ensures real-time synchronization of consumption progress from the source cluster, allowing consumers to continue consuming from the target cluster after migration.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Supports dynamic updates of Topics and Groups:`}),` MirrorMaker2 enables real-time monitoring of dynamic updates of Topics and Groups, ensuring that no updates are missed during the migration process.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The technical architecture of MirrorMaker2 is as follows:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=7414d41c4c87246d3fdedcdaeff2f369`,\"data-og-width\":`2560`,width:`2560`,\"data-og-height\":`944`,height:`944`,\"data-path\":`automq/migration/overview/1.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=280\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=9d7c37ef01d9b4be05eae2d26b34d148 280w, https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=560\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=2a6a1cb6d2ccca3948c60f5ae4085d0c 560w, https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=840\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=54380e5a578464ea5ea63628b43af3b6 840w, https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=0a03ae12b372d120684c6fea4a854797 1100w, https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=bb188358129623802ccaa1b2a3a4f52a 1650w, https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/automq/migration/overview/1.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=37202488d2d12d022dfaa125e57fa288 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`core-concepts`,children:`Core Concepts`}),`\n`,_jsx(_components.p,{children:`MirrorMaker2 defines several Connectors to implement data synchronization tasks between two Apache Kafka® clusters, including necessary configurations and real-time running states.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`MirrorSourceConnector`}),`: Used for synchronizing message data from the source cluster.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`MirrorCheckpointConnector`}),`: Used to synchronize the consumption progress data of the source cluster ConsumerGroup.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`MirrorHeartbeatConnector`}),`: Used for system detection of the synchronization link’s operational status.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`deploying-mirrormaker2`,children:`Deploying MirrorMaker2`}),`\n`,_jsx(_components.p,{children:`For the installation and deployment of MirrorMaker2, refer to the relevant links from the Apache Kafka community:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`https://cwiki.apache.org/confluence/display/KAFKA/KIP-382%3A+MirrorMaker+2.0#KIP382:MirrorMaker2.0-ConnectorConfigurationProperties`,children:`MirrorMaker2 Design Document.`})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`https://kafka.apache.org/documentation/#mirrormakerconfigs`,children:`MirrorMaker2 Configuration Documentation.`})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`constraints-and-limitations`,children:`Constraints and Limitations`}),`\n`,_jsx(_components.p,{children:`MirrorMaker2 uses Connectors to synchronize messages between the source and target clusters. This mechanism cannot guarantee complete data consistency between the source and target clusters. Therefore, when using the migration tool, please note the following constraints and limitations:`}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Minor Message Duplication`})}),_jsx(_components.p,{children:`Consumer progress data is asynchronously and intermittently synchronized, which may cause offset rollbacks and result in duplicate consumption when switching consumers.`}),_jsx(_components.p,{children:`Message synchronization is an asynchronous operation, and due to machine anomalies or fault recovery, partial data may be duplicated.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Minor Message Reordering`})}),_jsx(_components.p,{children:`If offset rollbacks occur when switching consumers, a small number of messages will be reconsumed, leading to disorder in the message sequence.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsx(_components.p,{children:`After understanding the background of cluster migration, it is recommended to choose the corresponding solution based on the current cluster situation:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Migrating from Apache Kafka to AutoMQ:`}),` Follow the migration plan and execute the migration step by step in batches. `,_jsx(_components.a,{href:`/automq/migration/migrating-from-apache-kafka-to-automq`,children:`Migrating from Apache Kafka to AutoMQ▸`})]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Overview","description":"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.","href":"/automq/migration/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Migration","slug":"migration","depth":1,"children":[]},{"title":"Migration Tool","slug":"migration-tool","depth":2,"children":[]},{"title":"Core Concepts","slug":"core-concepts","depth":2,"children":[]},{"title":"Deploying MirrorMaker2","slug":"deploying-mirrormaker2","depth":2,"children":[]},{"title":"Constraints and Limitations","slug":"constraints-and-limitations","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/automq/48fec8bab1afa455/content/monitor.js","/_mintlify/custom/automq/c09aa9839083e17a/content/hubspot.js","/_mintlify/custom/automq/786ace9ed17adbd7/content/luckyorange-tracking.js"],"subdomain":"automq","siteName":"AutoMQ Documentation","title":"Overview - AutoMQ Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/automq/migration/overview","matchLevel":0},"cn":{"href":"/zh/automq/migration/overview","matchLevel":1}}},"lastModified":"2026-03-12T06:13:50.608Z","originalFileLocation":"automq/migration/overview.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AutoMQ Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Overview - AutoMQ Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AutoMQ Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.automq.com/automq/migration/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Overview - AutoMQ Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/automq/ZRmM16tNeY4WJ6hO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AutoMQ Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2449D4\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.automq.com/automq/migration/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/automq/migration/overview.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.automq.com/automq/migration/overview\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.automq.com/zh/automq/migration/overview\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.automq.com/automq/migration/overview\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.automq.com/#organization\",\"name\":\"AutoMQ Documentation\",\"url\":\"https://docs.automq.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/automq/s9vNxeyMGZ1r1DRV/logo/automq-black.svg?fit=max\u0026auto=format\u0026n=s9vNxeyMGZ1r1DRV\u0026q=85\u0026s=bcc93ae74a4143ae2b7602497b7b354b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.automq.com#website\",\"name\":\"AutoMQ Documentation\",\"url\":\"https://docs.automq.com\",\"publisher\":{\"@id\":\"https://docs.automq.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.automq.com/automq/migration/overview#webpage\",\"url\":\"https://docs.automq.com/automq/migration/overview\",\"name\":\"Overview\",\"description\":\"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\",\"dateModified\":\"2026-03-12T06:13:50.608Z\",\"isPartOf\":{\"@id\":\"https://docs.automq.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.automq.com/automq/migration/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.automq.com/automq/migration/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"AutoMQ Documentation\",\"item\":\"https://docs.automq.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview\",\"item\":\"https://docs.automq.com/automq/migration/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.automq.com/automq/migration/overview#article\",\"headline\":\"Overview\",\"name\":\"Overview\",\"description\":\"Migrate to AutoMQ, a next-gen Kafka-compatible cloud-native service, with ease. Enjoy seamless cluster migration and cost-efficient scalability using MirrorMaker2.\",\"url\":\"https://docs.automq.com/automq/migration/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.automq.com/automq/migration/overview#webpage\"},\"dateModified\":\"2026-03-12T06:13:50.608Z\",\"publisher\":{\"@id\":\"https://docs.automq.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.automq.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AutoMQ Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AutoMQ Documentation","nav":{"global":{"anchors":[{"anchor":"Github","icon":"github","href":"https://github.com/automq/automq"},{"anchor":"Slack","icon":"slack","href":"https://go.automq.com/slack"},{"anchor":"Telegram","icon":"Telegram","href":"https://t.me/+VgqhN9wqBGIzYmU1"},{"anchor":"Blog","icon":"newspaper","href":"https://www.automq.com/blog"}]},"languages":[{"language":"en","tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":""}]},{"tab":"AutoMQ Open Source","icon":"github","groups":[{"group":"What is AutoMQ?","icon":"book","pages":[{"title":"Overview","href":"/automq/what-is-automq/overview"},{"title":"Difference with Apache Kafka","href":"/automq/what-is-automq/difference-with-apache-kafka"},{"title":"Difference with Tiered Storage","href":"/automq/what-is-automq/difference-with-tiered-storage"},{"title":"Compatibility with Apache Kafka","href":"/automq/what-is-automq/compatibility-with-apache-kafka"},{"title":"Licensing and Enterprise Features","href":"/automq/what-is-automq/licensing-and-enterprise-features"}]},{"group":"Getting Started","icon":"play","pages":[{"title":"Deploy Multi-Nodes Test Cluster on Docker","href":"/automq/getting-started/deploy-multi-nodes-test-cluster-on-docker"},{"group":"Explore AutoMQ","pages":[{"title":"Example: Partition Reassignment in Seconds","href":"/automq/getting-started/explore-automq/example-partition-reassignment-in-seconds"},{"title":"Example: Continuous Data Self-Balancing","href":"/automq/getting-started/explore-automq/example-continuous-data-self-balancing"},{"title":"Example: Self-Balancing when Cluster Nodes Change","href":"/automq/getting-started/explore-automq/example-self-balancing-when-cluster-nodes-change"}]}]},{"group":"Deployment","icon":"wrench","pages":[{"title":"Overview","href":"/automq/deployment/overview"},{"title":"Deploy Multi-Nodes Cluster on Linux","href":"/automq/deployment/deploy-multi-nodes-cluster-on-linux"},{"title":"Deploy Multi-Nodes Cluster on Kubernetes","href":"/automq/deployment/deploy-multi-nodes-cluster-on-kubernetes"},{"title":"Deploy Multi-Nodes Cluster on Kubernetes with Strimzi","href":"/automq/deployment/multi-nodes-cluster-with-strimzi"},{"title":"Introduction and Deployment Recommendations for AutoMQ Open Source Image","href":"/automq/deployment/deployment-recommendations"},{"title":"Performance Tuning for Broker","href":"/automq/deployment/performance-tuning-for-broker"},{"title":"Performance Tuning for Client","href":"/automq/configuration/performance-tuning-for-client"},{"title":"AutoMQ Benchmark","description":"Test AutoMQ cluster performance using Kafka CLI tools or the AutoMQ performance testing tool. Covers tail read and catch-up read scenarios.","href":"/automq/deployment/automq-benchmark"}]},{"group":"Migration","icon":"arrow-left-right","pages":[{"title":"Overview","href":"/automq/migration/overview"},{"title":"Migrating from Apache Kafka to AutoMQ","description":"Migrate from Apache Kafka to AutoMQ with cloud-native scalability, full Kafka compatibility, and cost efficiency. Follow detailed steps for seamless transition and minimize disruption.","href":"/automq/migration/migrating-from-apache-kafka-to-automq"}]},{"group":"Observability","icon":"telescope","pages":[{"title":"Overview","href":"/automq/observability/overview"},{"title":"Integrating Metrics with Prometheus","href":"/automq/observability/integrating-metrics-with-prometheus"},{"title":"Dashboard Configuration","href":"/automq/observability/dashboard-configuration"},{"title":"Prometheus Metrics","href":"/automq/observability/prometheus-metrics"}]},{"group":"Architecture","icon":"landmark","pages":[{"title":"Overview","href":"/automq/architecture/overview"},{"group":"S3Stream Shared Streaming Storage","pages":[{"title":"Overview","href":"/automq/architecture/s3stream-shared-streaming-storage/overview"},{"title":"S3 Storage","href":"/automq/architecture/s3stream-shared-streaming-storage/s3-storage"},{"title":"WAL Storage","href":"/automq/architecture/s3stream-shared-streaming-storage/wal-storage"}]},{"group":"Technical Advantage","icon":"atom","pages":[{"title":"Overview","href":"/automq/architecture/technical-advantage/overview"},{"title":"5x Catch-up Read Efficiency","href":"/automq/architecture/technical-advantage/5x-catch-up-read-efficiency"},{"title":"Continuous Self-Balancing","href":"/automq/architecture/technical-advantage/continuous-self-balancing"},{"title":"Native Compatible with Apache Kafka","href":"/automq/architecture/technical-advantage/native-compatible-with-apache-kafka"},{"title":"Partition Reassignment in Seconds","href":"/automq/architecture/technical-advantage/partition-reassignment-in-seconds"},{"title":"Scale-out/in in Seconds","href":"/automq/architecture/technical-advantage/scale-outin-in-seconds"},{"title":"Stateless Broker","href":"/automq/architecture/technical-advantage/stateless-broker"}]}]},{"group":"Table Topic","icon":"text-search","pages":[{"title":"Overview","href":"/automq/table-topic/overview"},{"title":"Table Topic Quick Start","href":"/automq/table-topic/table-topic-quick-start"},{"title":"Table Topic Configuration","href":"/automq/table-topic/table-topic-configuration"}]},{"group":"Eliminate Inter-Zone Traffics","icon":"audio-lines","pages":[{"title":"Overview","href":"/automq/eliminate-inter-zone-traffics/overview"},{"title":"Broker Configuration","href":"/automq/eliminate-inter-zone-traffics/broker-configuration"},{"title":"Client Configuration","href":"/automq/eliminate-inter-zone-traffics/client-configuration"},{"title":"Monitor Inter Zone Traffic","href":"/automq/eliminate-inter-zone-traffics/monitor-inter-zone-traffic"}]},{"group":"Integrations","icon":"blocks","pages":[{"group":"Data Analysis","pages":[{"title":"Apache Doris","href":"/automq/integrations/data-analysis/apache-doris"},{"title":"Databend","href":"/automq/integrations/data-analysis/databend"},{"title":"Flink","href":"/automq/integrations/data-analysis/flink"},{"title":"RisingWave","href":"/automq/integrations/data-analysis/risingwave"},{"title":"StarRocks","href":"/automq/integrations/data-analysis/starrocks"}]},{"group":"Data Integration","pages":[{"title":"Airbyte","href":"/automq/integrations/data-integration/airbyte"},{"title":"Debezium","href":"/automq/integrations/data-integration/debezium"}]},{"group":"Kafka UI","pages":[{"title":"Kafdrop","href":"/automq/integrations/kafka-ui/kafdrop"},{"title":"Redpanda Console","href":"/automq/integrations/kafka-ui/redpanda-console"}]},{"group":"Observability","pages":[{"title":"Flashcat","href":"/automq/integrations/observability/flashcat"},{"title":"Guance Cloud","href":"/automq/integrations/observability/guance-cloud"},{"title":"Prometheus/VictoriaMetrics","href":"/automq/integrations/observability/prometheus"}]},{"group":"Storage","pages":[{"title":"RustFS","href":"/automq/integrations/storage/rustfs"},{"title":"Tigris","href":"/automq/integrations/storage/tigris"}]}]},{"group":"Configuration","icon":"settings","pages":[{"title":"Broker and Controller Configuration","href":"/automq/configuration/broker-and-controller-configuration"},{"title":"Object Storage Configuration","href":"/automq/configuration/object-storage-configuration"}]},{"group":"Releases","icon":"git-merge","pages":[{"title":"Software Artifact","href":"/automq/releases/software-artifact"},{"url":"https://github.com/AutoMQ/automq/releases/","title":null,"href":"/automq/releases/release-notes"}]},{"group":"Benchmarks","icon":"chart-spline","pages":[{"title":"AutoMQ vs. Apache Kafka Benchmarks and Cost","href":"/automq/benchmarks/automq-vs-apache-kafka-benchmarks-and-cost"}]},{"group":"Reference","icon":"book-marked","pages":[{"title":"Glossary","href":"/automq/reference/glossary"}]}]},{"tab":"AutoMQ BYOC","icon":"cloud","pages":[{"title":"AutoMQ BYOC","href":"/automq-cloud/overview/what-is-automq-cloud"}]}]},{"language":"cn","pages":[{"title":"cn","href":"/zh/automq/migration/overview"}]}]},"title":"Overview - AutoMQ Documentation","buildId":"dpl_C3fsfi1EcrBns9Vx91gUSN1X3Hi4","deploymentId":"dpl_C3fsfi1EcrBns9Vx91gUSN1X3Hi4","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-Evwtz42K.js","PlusIcon-DYlJbUaT.js","lightbox-handle-r17bVUz3.js"]}