Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive
Central de ajuda/ Distributed Message Service for Kafka/ Melhores práticas/ Uso do MirrorMaker para sincronizar dados entre clusters

Uso do MirrorMaker para sincronizar dados entre clusters

Atualizado em 2024-09-09 GMT+08:00

Cenário

Nos cenários a seguir, o MirrorMaker pode ser usado para sincronizar dados entre diferentes clusters do Kafka para garantir a disponibilidade e a confiabilidade dos clusters:

  • Backup e recuperação de desastres: uma empresa tem vários data centers. Para evitar a indisponibilidade do serviço causada por uma falha em um data center, os dados do cluster são copiados de forma síncrona em vários data centers.
  • Migração de cluster: à medida que as empresas migram serviços para a nuvem, os dados em clusters locais devem ser sincronizados com os dados em clusters de nuvem para garantir a continuidade do serviço.

Arquitetura da solução

O MirrorMaker pode ser usado para espelhar dados do cluster de origem para o cluster de destino. Como mostrado em Figura 1, em essência, o MirrorMaker primeiro consome dados do cluster de origem e, em seguida, produz os dados consumidos para o cluster de destino. Para obter mais informações sobre o MirrorMaker, consulte Espelhamento de dados entre clusters.

Figura 1 Como funciona o MirrorMaker

Restrições

  • Os endereços IP e os números de porta dos nós no cluster de origem não podem ser iguais aos dos nós no cluster de destino. Caso contrário, os dados serão replicados infinitamente em um tópico.
  • Use o MirrorMaker para sincronizar dados entre pelo menos dois clusters. Se houver apenas um cluster, os dados serão replicados infinitamente em um tópico.

Procedimento

  1. Compre um ECS que possa se comunicar com os clusters de origem e de destino. Para obter detalhes, consulte a Documentação do ECS.
  2. Faça logon no ECS, instale o JDK e adicione o seguinte conteúdo ao .bash_profile no diretório inicial para configurar as variáveis de ambiente JAVA_HOME e PATH. Neste comando, /opt/java/jdk1.8.0_151 é o caminho de instalação do JDK. Altere-o para o caminho onde você instala o JDK.

    export JAVA_HOME=/opt/java/jdk1.8.0_151 
    export PATH=$JAVA_HOME/bin:$PATH

    Execute o comando source .bash_profile para que a modificação tenha efeito.

    Use o JDK Oracle em vez do JDK padrão do ECS (por exemplo, OpenJDK), porque o JDK padrão do ECS pode não ser adequado. Obtenha o JDK Oracle 1.8.111 ou posterior no site oficial de Oracle.

  3. Faça o download do pacote de software binário do Kafka 3.3.1.

    wget https://archive.apache.org/dist/kafka/3.3.1/kafka_2.12-3.3.1.tgz

  4. Descompacte o pacote de software binário.

    tar -zxvf kafka_2.12-3.3.1.tgz

  5. Vá para o diretório do pacote de software binário e especifique os endereços IP e portas dos clusters de origem e de destino e outros parâmetros no arquivo de configuração connect-mirror-maker.properties no diretório config.

    # Specify two clusters.
    clusters = A, B
    A.bootstrap.servers = A_host1:A_port, A_host2:A_port, A_host3:A_port
    B.bootstrap.servers = B_host1:B_port, B_host2:B_port, B_host3:B_port
    
    # Specify the data synchronization direction. The data can be synchronized unidirectionally or bidirectionally.
    A->B.enabled = true
    
    # Specify the topics to be synchronized. Regular expressions are supported. By default, all topics are replicated, for example, foo-.*.
    A->B.topics = .*
    
    # If the following two configurations are enabled, clusters A and B replicate data with each other.
    #B->A.enabled = true
    #B->A.topics = .*
    
    # Specify the number of replicas. If multiple topics need to be synchronized and their replica quantities are different, create topics with the same name and replica quantity before starting MirrorMaker.
    replication.factor=3
    
    # Specify the consumer offset synchronization direction (unidirectionally or bidirectionally).
    A->B.sync.group.offsets.enabled=true
    
    ############################# Internal Topic Settings  #############################
    # The replication factor for mm2 internal topics "heartbeats", "B.checkpoints.internal" and
    # "mm2-offset-syncs.B.internal"
    # In the test environment, the value can be 1. In the production environment, it is recommended that the value be greater than 1, for example, 3.
    checkpoints.topic.replication.factor=3
    heartbeats.topic.replication.factor=3
    offset-syncs.topic.replication.factor=3
    
    # The replication factor for connect internal topics "mm2-configs.B.internal", "mm2-offsets.B.internal" and
    # "mm2-status.B.internal"
    # In the test environment, the value can be 1. In the production environment, it is recommended that the value be greater than 1, for example, 3.
    offset.storage.replication.factor=3
    status.storage.replication.factor=3
    config.storage.replication.factor=3
    
    # customize as needed
    # replication.policy.separator = _
    # sync.topic.acls.enabled = false
    # emit.heartbeats.interval.seconds = 5

  6. No diretório do pacote de software binário, inicie o MirrorMaker para sincronizar dados.

    ./bin/connect-mirror-maker.sh config/connect-mirror-maker.properties

  7. (Opcional) Se um tópico for criado no cluster de origem após o MirrorMaker ter sido iniciado e os dados do tópico precisarem ser sincronizados, reinicie o MirrorMaker. Para obter detalhes sobre como reiniciar o MirrorMaker, consulte 6. Você também pode adicionar configurações listadas em Tabela 1 para sincronizar novos tópicos periodicamente sem reiniciar o MirrorMaker. refresh.topics.interval.seconds é obrigatório. Outros parâmetros são opcionais.

    Tabela 1 Configurações do MirrorMaker

    Parâmetro

    Valor padrão

    Descrição

    sync.topic.configs.enabled

    true

    Se deve monitorar o cluster de origem para alterações de configuração.

    sync.topic.acls.enabled

    true

    Se deve monitorar o cluster de origem para alterações de ACL.

    emit.heartbeats.enabled

    true

    Se deve permitir que o conector envie pulsações periodicamente.

    emit.heartbeats.interval.seconds

    5 segundos

    Frequência de pulsações.

    emit.checkpoints.enabled

    true

    Se deixar o conector enviar periodicamente as informações de deslocamento do consumidor.

    emit.checkpoints.interval.seconds

    5 segundos

    Frequência do ponto de verificação.

    refresh.topics.enabled

    true

    Se deixar o conector verificar periodicamente novos tópicos.

    refresh.topics.interval.seconds

    5 segundos

    Frequência de verificação de novos tópicos no cluster de origem.

    refresh.groups.enabled

    true

    Se deixar o conector verificar periodicamente se há novos grupos de consumidores.

    refresh.groups.interval.seconds

    5 segundos

    Frequência de verificação de novos grupos de consumidores no cluster de origem.

    replication.policy.class

    org.apache.kafka.connect.mirror.DefaultReplicationPolicy

    Use o LegacyReplicationPolicy para imitar o MirrorMaker de uma versão anterior.

    heartbeats.topic.retention.ms

    Um dia

    Usado quando tópicos de pulsação são criados pela primeira vez.

    checkpoints.topic.retention.ms

    Um dia

    Usado quando os tópicos do ponto de verificação são criados pela primeira vez.

    offset.syncs.topic.retention.ms

    max long

    Usado quando tópicos de sincronização de deslocamento são criados pela primeira vez.

Verificação da sincronização de dados

  1. Exiba a lista de tópicos no cluster de destino para verificar se há tópicos de origem.

    Os nomes de tópico no cluster de destino têm um prefixo (por exemplo, A.) adicionado ao nome do tópico de origem. Esta é uma configuração do MirrorMaker 2 para evitar o backup cíclico de tópicos.

  2. Produza e consuma mensagens no cluster de origem, visualize o progresso do consumo no cluster de destino e verifique se os dados foram sincronizados do cluster de origem para o cluster de destino.

    Se o cluster de destino for uma instância do Kafka da Huawei Cloud, visualize o progresso do consumo na página Consumer Groups.

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback