Fila e Tópico são dois modelos de mensagens suportados pelo JMS: 1. Modelo de mensagens de fila ponto a ponto (PTP): Com esse modelo de mensagens, um aplicativo (ou seja, o produtor de mensagens) pode enviar uma mensagem para outro aplicativo (ou seja, o consumidor de mensagens). Neste modelo de entrega, o tipo de destino da mensagem é uma fila (ou seja, a instância da classe de implementação da interface de destino é criada pela instância da classe de implementação da interface Session chamando seu método createQueue e passando o nome da fila). A mensagem é entregue primeiro a uma fila específica no lado do servidor de mensagens e, a partir daí, é entregue a um consumidor que está ouvindo essa fila. A mesma fila pode associar múltiplos produtores e consumidores de mensagens, mas uma mensagem só pode ser entregue a um consumidor de mensagens. Se múltiplos consumidores de mensagens estiverem ouvindo mensagens na fila, o servidor de mensagens JMS determina qual consumidor de mensagens recebe a próxima mensagem com base no princípio de "quem chega primeiro, quem chega primeiro". Se nenhum consumidor de mensagens estiver ouvindo a fila, a mensagem permanece na fila até que o consumidor de mensagens se conecte à fila. Esse modelo de mensagens é preguiçoso ou de pesquisa no sentido tradicional. Neste modelo, as mensagens não são automaticamente enviadas para o consumidor de mensagens, mas são solicitadas da fila pelo consumidor de mensagens. 2. Modelo de mensagens de tópicos publicados/subscreves: Com esse modelo de mensagens, as aplicações conseguem enviar uma única mensagem para consumidores de múltiplas mensagens. Neste modelo de entrega, o tipo de destino da mensagem é o topic (ou seja, a instância da classe de implementação da interface de destino é criada pela instância da classe de implementação da interface Session chamando seu método createTopic e passando o nome do tópico). A mensagem é publicada primeiro para um tópico específico no servidor de mensagens pelo produtor da mensagem, que então entrega a mensagem a todos os consumidores que assinaram o tema. Os objetivos temáticos também suportam assinaturas de longo prazo. Uma assinatura de longo prazo significa que o consumidor está inscrito no objetivo do tópico, mas pode ficar inativo quando a mensagem chega ao destino. A mensagem será recebida quando o consumidor estiver ativo novamente. Se nenhum dos consumidores estiver registrado em um destino de tópico, o tema mantém mensagens apenas para consumidores inativos que assinaram uma assinatura de longo prazo. Diferentemente do modelo de mensagens PTP, o modelo de mensagens pub/sub permite que múltiplos assinantes de tópicos recebam a mesma mensagem. O JMS mantém a mensagem até que todos os assinantes do tópico a recebam. O modelo de mensagens pub/sub é basicamente um modelo push. Nesse modelo, as mensagens são transmitidas automaticamente, e os consumidores de mensagens não precisam solicitar ou pesquisar ativamente os tópicos para receber novas mensagens. As diferenças específicas são as seguintes:
tipo
| Tema
| Fila | Visão geral
| Publicar Assinar mensagens Publicar mensagens de assinatura
| Ponto a Ponto Ponto a Ponto
| Não existe estado
| Os dados do tópico são sem estado por padrão.
| Os dados da fila são salvos como arquivo no servidor MQ por padrão, por exemplo, o MQ ativo geralmente é armazenado em $AMQ_HOME\data\kr-store\data. Também pode ser configurado como um armazenamento de banco de dados.
| Garantia de integridade
| Não há garantia de que todos os dados publicados pela editora serão aceitos pelo assinante.
| A fila garante que cada dado possa ser recebido pelo receptor.
| se a mensagem será perdida
| De modo geral, quando uma editora publica uma mensagem sobre um tema, somente o sub que está ouvindo o endereço do tema pode receber a mensagem. Se não houver um sub ouvindo, o assunto se perde.
| O remetente envia uma mensagem para a Fila de destino, e o receptor pode receber mensagens nessa Fila de forma assíncrona. Mensagens na Fila não serão perdidas se não houver um destinatário para atendê-las por enquanto.
| Política de recepção de liberação de mensagens
| Política de publicação e recebimento de mensagens um-para-muitas, múltiplos subreddits ouvindo o mesmo endereço de tópico podem receber mensagens enviadas pelo editor. O sub recebe a notificação para o servidor mq
| Políticas de publicação e recebimento de mensagens um a um, mensagens enviadas por um remetente só podem ser recebidas por um único destinatário. Após o receptor receber, o servidor MQ notifica o servidor MQ de que foi recebido, e o servidor MQ exclui ou toma outras ações nas mensagens na fila.
|
|