Em 23 de janeiro de 2019, o ApsaraMQ for RocketMQ introduziu uma arquitetura baseada em instâncias que melhora o isolamento de recursos, simplifica o gerenciamento, adiciona suporte aos protocolos TCP e HTTP e centraliza o controle de permissões por meio do Resource Access Management (RAM).
Atualize o ons-client para a versão mais recente para garantir compatibilidade com essas alterações.
Tipos de instância
O ApsaraMQ for RocketMQ oferece duas edições para isolamento multilocatário. Adquira várias instâncias na mesma região para separar ambientes, equipes ou cargas de trabalho.
|
Edição |
Isolamento |
Limite por região |
|
Standard Edition |
Lógico -- as instâncias compartilham a infraestrutura subjacente |
Até 8 |
|
Enterprise Platinum Edition |
Físico -- cada instância opera com recursos dedicados |
Ilimitado |
Para obter mais informações, consulte ApsaraMQ for RocketMQ Enterprise Platinum Edition.
Namespaces e nomenclatura de recursos
Um namespace define o escopo de unicidade dos nomes de recursos, como tópicos e group IDs. Dentro de um namespace, cada nome de recurso deve ser único. Em namespaces distintos, diferentes recursos podem compartilhar o mesmo nome.
O ApsaraMQ for RocketMQ suporta duas categorias de instância conforme o comportamento do namespace.
Instâncias padrão
As instâncias padrão compartilham um namespace global:
Os nomes de recursos devem ser globalmente únicos, tanto dentro quanto entre todas as instâncias.
Para usuários existentes, o sistema cria automaticamente uma instância padrão em cada região onde já existem recursos.
Para configurar o endpoint, acesse a página Instance Details no console do ApsaraMQ for RocketMQ e copie o valor do endpoint.
// Recommended
properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxxx");
// Legacy (still supported, but NAMESRV_ADDR is preferred)
properties.put(PropertyKeyConst.ONSAddr, "xxxx");
Instâncias com namespaces
Instâncias com namespaces independentes restringem os nomes de recursos ao nível da instância:
Os nomes de recursos precisam ser únicos apenas dentro da mesma instância. Diferentes instâncias podem reutilizar os mesmos nomes.
Esse modelo é útil para configurações com várias equipes ou ambientes, nas quais cada equipe ou ambiente possui sua própria instância.
Para configurar o endpoint, acesse a página Instance Details no console do ApsaraMQ for RocketMQ e copie o valor do endpoint.
// Recommended
properties.put(PropertyKeyConst.NAMESRV_ADDR, "xxx");
Instâncias com namespaces exigem a versão mais recente do ons-client. Consulte as notas de versão do seu SDK:
Java: Notas de versão
C++: Notas de versão
.NET: Notas de versão
Gerenciamento simplificado de recursos
O que mudou
Anteriormente, o ApsaraMQ for RocketMQ gerenciava três tipos de recurso — tópicos, producer IDs e consumer IDs — com relacionamentos N:N. Cada tópico exigia associações explícitas tanto com um produtor quanto com um consumidor, o que dificultava a manutenção em grande escala.
Group IDs substituem producer e consumer IDs
Producer IDs e consumer IDs agora estão unificados em group IDs. No console do ApsaraMQ for RocketMQ, os módulos Producers e Consumers foram mesclados em um único módulo Groups.
Fluxo de trabalho simplificado:
Crie um tópico (sem alterações).
Crie um group ID — não são necessários producer ou consumer IDs separados.
Associe o group ID a um tópico no código — sem necessidade de associação manual no console.
Atualize seu código
Use PropertyKeyConst.GROUP_ID em vez dos parâmetros obsoletos PropertyKeyConst.ProducerId e PropertyKeyConst.ConsumerId.
Recomendado:
// Use GROUP_ID for both producers and consumers.
// ProducerId and ConsumerId are deprecated.
properties.put(PropertyKeyConst.GROUP_ID, "The original CID-XXX or the GID-XXX");
Legado (ainda suportado):
// Producer
properties.put(PropertyKeyConst.ProducerId, "The original PID-XXX or the GID-XXX");
// Consumer
properties.put(PropertyKeyConst.ConsumerId, "The original CID-XXX or the GID-XXX");
Notas de compatibilidade
Os producer e consumer IDs existentes continuam funcionando. Os serviços em execução não sofrem impacto.
Consumer IDs que começam com
CID-ouCID_permanecem válidos. Especifique-os como valor dePropertyKeyConst.ConsumerIdouPropertyKeyConst.GROUP_ID.A lista de producer IDs não está mais visível no console, mas isso não afeta os serviços em execução.
Suporte a HTTP e RESTful
Instâncias da Standard Edition suportam os protocolos HTTP e RESTful para conectividade dentro ou entre redes. SDKs de cliente HTTP estão disponíveis para sete linguagens de programação.
Para obter detalhes, consulte Notas de uso para SDKs de cliente HTTP.
Migre políticas do RAM
O recurso integrado de gerenciamento de permissões do ApsaraMQ for RocketMQ foi descontinuado em 2 de abril de 2019. Migre suas configurações de permissão para o Alibaba Cloud RAM o mais breve possível.
Configure políticas do RAM para sua conta. Para instruções, consulte Conceder permissões a usuários do RAM.
As permissões existentes permanecem válidas durante a transição. Após a migração, gerencie todas as políticas pelo console do RAM.