Comportamento e propriedades das mensagens do Pub/Sub
Uma mensagem contém o objeto de dados real que é enviado pelo editor e entregue aos assinantes por meio do tópico. Por exemplo, alguns assinantes estão interessados nos detalhes do pedido de uma empresa. Um tópico é criado para o editor publicar m
Uma vez que o editor publica a mensagem no tópico, os assinantes registrados são notificados de que uma mensagem pertencente ao seu interesse foi publicada. No caso de várias mensagens, elas são armazenadas em uma sequência dentro da fila de um determinado tópico.
Note
A mesma mensagem pode ser atribuída a vários tópicos. Isso é identificado exclusivamente por meio de um ID gerado automaticamente.
Propriedades da Mensagem
Você pode especificar as opções de entrega de mensagens por meio de um Opção de entrega enum sobre como uma mensagem pode ser entregue. A seguir estão as duas opções de entrega fornecidas pela NCache:
Todos: As mensagens são entregues a todos os assinantes registrados.
Qualquer: As mensagens são entregues a qualquer assinante registrado. Se uma confirmação não for recebida, as mensagens serão reatribuídas ao próximo assinante. Se uma confirmação for recebida, as mensagens serão removidas.
Comportamento da mensagem
Note
Este recurso está disponível apenas para Enterprise Edition.
As mensagens são invalidadas caso os seguintes critérios sejam atendidos:
Despejo: se a remoção estiver habilitada no cache, as mensagens também serão removidas dos tópicos usando LRU (Usado menos recentemente), LFU (usado menos frequentemente) ou política baseada em prioridade.
Se o cache usado para transações do Pub/Sub for o mesmo usado para armazenamento em cache normal, a primeira prioridade de remoção sempre será os dados do cache.
Se os dados de cache não estiverem disponíveis para remoção, as mensagens serão removidas. Isso garantirá que as mensagens sejam despejadas apenas em casos extremos ou quando o cache for dedicado apenas para Pub/Sub.
Expiration: A expiração pode ser habilitada em mensagens como com itens de cache. As mensagens expirarão do cache assim que o intervalo de expiração tiver passado e usarão o mesmo mecanismo de intervalo de limpeza.
Limpar Cache: as mensagens são removidas junto com os itens do cache assim que o cache é limpo.
Reinicialização do Cache: Semelhante à limpeza do cache, o conteúdo do cache é limpo quando o cache é reiniciado. Isso também inclui todos os tópicos e as mensagens contidas neles.
Armazenamento e Distribuição
As mensagens são distribuídas entre os nós com base em topologias.
Para topologias de partição de réplica e particionada, é usada a distribuição baseada em hash.
Para topologia replicada, as mensagens são replicadas para todos os nós do cache clusterizado. No entanto, o nó coordenador é responsável pela manipulação da mensagem.
Para a topologia Mirror, as mensagens são publicadas no nó ativo e, em seguida, replicadas no nó passivo de acordo.
Se o armazenamento de mensagens estiver próximo do despejo, será registrado um evento que indica que o armazenamento está cheio e o despejo foi iniciado.
As mensagens têm uma sobrecarga na memória cache. Portanto, o tamanho da mensagem é considerado ao calcular o tamanho do cache.
Criptografia e Compressão
Note
Este recurso está disponível apenas para Enterprise Edition.
A criptografia e a compactação configuradas no nível do cache também se aplicam à carga útil da mensagem do tópico.
Transferência de Estado
No caso de transferência de estado, quando as mensagens se movem para outro nó no cluster, o nó onde a mensagem é finalmente armazenada é responsável pela entrega.
Note
Há uma chance de assinantes receberem mensagens duplicadas durante a transferência de estado.
Mensagens ordenadas
Note
Este recurso está disponível apenas em NCache 5.2 em diante.
NCache agora suporta mensagens ordenadas onde a sequência das mensagens é mantida no lado do cliente. Um usuário pode especificar um nome de sequência para um bloco de mensagens, e as mensagens ordenadas são entregues aos assinantes exatamente na mesma ordem em que são publicadas. A sequência de caracteres deve ser a mesma para uma cadeia de mensagens ordenadas. Usando a seqüência de caracteres, todas as mensagens residem no mesmo nó usando o mecanismo de afinidade de local.
A seguir estão as características importantes das mensagens ordenadas:
As mensagens de um publicador com a mesma sequência residem em um único nó de cache.
Se o
DeliveryOption
é definido como Qualquer, todas as mensagens ordenadas da mesma sequência são entregues ao mesmo assinante. Caso o assinante específico perca a conexão ou fique indisponível, um novo assinante é reatribuído para esse fim. No entanto, se oDeliveryOption
for definido como Todos, todas as mensagens ordenadas da mesma sequência serão entregues a todos os assinantes.No caso de transferência de estado, as mensagens ordenadas podem perder sua sequência e serem publicadas sem manter a ordem.
As mensagens ordenadas só podem ser publicadas usando o modo de sincronização na API de publicação. Não há suporte para chamadas de API em massa e assíncronas.
Recursos adicionais
NCache fornece um aplicativo de amostra para Pub/Sub em GitHub.
Veja também
Notificações de eventos no cache
Tópicos do Pub/Sub
Mensagens públicas para o tópico
Inscreva-se para mensagens de tópico
Consulta Contínua