IBM MQ: Principais Conceitos do IBM MQ: Difference between revisions

From Wiki
 
(2 intermediate revisions by the same user not shown)
Line 90: Line 90:
* '''Topic Object''': Objeto administrativo que define propriedades do tópico
* '''Topic Object''': Objeto administrativo que define propriedades do tópico


* '''Wildcards''':
== Channels (Canais) ==
** '''#''' (multilevel wildcard): Substitui zero ou mais níveis
*** Exemplo: <code>/finance/#</code> corresponde a todos os tópicos sob finance
** '''+''' (single level wildcard): Substitui exatamente um nível
*** Exemplo: <code>/sports/+/results</code> corresponde a resultados de qualquer esporte


* '''Propriedades''':
'''Channels''' são mecanismos de comunicação que conectam queue managers ou aplicações ao IBM MQ.
** Persistence (persistência das publicações)
** Priority (prioridade)
** Durability (durabilidade das subscrições)


== Channels (Canais) ==
<pre>
IBM-MQ/
├── CHANNELS (Conectam Queue Managers)
│  │
│  ├── Message Channels
│  │  ├── Sender/Receiver
│  │  ├── Server/Requester
│  │  └── Cluster Channels
</pre>


'''Channels''' são mecanismos de comunicação que conectam queue managers ou aplicações ao IBM MQ. Tipos principais:
Tipos principais:


=== Message Channels (Canais de Mensagem) ===
=== Message Channels (Canais de Mensagem) ===
Line 158: Line 160:
* '''Flexibilidade''': Subscribers podem se inscrever dinamicamente
* '''Flexibilidade''': Subscribers podem se inscrever dinamicamente
* '''Broadcast''': Uma mensagem pode ser entregue a múltiplos subscribers
* '''Broadcast''': Uma mensagem pode ser entregue a múltiplos subscribers
=== Tipos de Subscrição ===
* '''Durable Subscription''': Persiste mesmo quando o subscriber está offline
* '''Non-durable Subscription''': Existe apenas enquanto o subscriber está conectado
* '''Managed Subscription''': Criada administrativamente
* '''API Subscription''': Criada programaticamente pela aplicação


== Point-to-Point Messaging ==
== Point-to-Point Messaging ==

Latest revision as of 21:35, 19 February 2026

Principais Conceitos do IBM MQ

Messages

As mensagens são unidades de dados que são transmitidas entre aplicações através do IBM MQ. Uma mensagem consiste em:

  • Message Descriptor:
Contém informações de controle e metadados sobre a mensagem, como: Message ID, Correlation ID: (para correlacionar respostas), Priority, Persistence: (se a mensagem deve ser persistida em disco), Expiry time, Format
  • Application Data: O conteúdo real da mensagem, que pode ser: Texto simples, XML, JSON, Dados binários, ...

As mensagens no IBM MQ são assíncronas, permitindo que aplicações se comuniquem sem precisar estar ativas simultaneamente.

Queues (Filas)

Queues são objetos que armazenam mensagens até que sejam recuperadas por uma aplicação receptora. Características principais:

  • FIFO (First In, First Out): Por padrão, as mensagens são recuperadas na ordem em que foram colocadas
  • Persistência: Mensagens podem ser persistentes (sobrevivem a reinicializações) ou não-persistentes
  • Atributos Importantes:
    • Maximum depth (profundidade máxima)
    • Maximum message length (tamanho máximo de mensagem)
    • Default priority (prioridade padrão)
    • Trigger properties (propriedades de disparo)

Queue Manager

O Queue Manager é o componente central do IBM MQ que gerencia filas e fornece serviços de mensageria. Responsabilidades:

  • Gerenciamento de Filas: Cria, mantém e controla o acesso às filas
  • Roteamento de Mensagens: Direciona mensagens entre filas e aplicações
  • Persistência: Garante que mensagens persistentes sejam armazenadas de forma confiável
  • Segurança: Controla autenticação e autorização de acesso
  • Conectividade: Gerencia conexões com aplicações e outros queue managers
  • Transações: Suporta operações transacionais (commit/rollback)
  • Logging e Recovery: Mantém logs para recuperação em caso de falhas


IBM-MQ/
│
├── QUEUE MANAGER (Gerencia Queues e Topics)
│   │
│   ├── Point-to-Point Messaging (1 para 1)
│   │   │
│   │   └── QUEUES
│   │       │
│   │       └── MESSAGES
│   │
│   └── Publish/Subscribe (1 para N)
│       │
│       └── TOPICS
│           ├── MESSAGES
│
└── EVENT-DRIVEN MESSAGING (Arquitetura orientada a eventos)
    │
    ├── Usa Point-to-Point (via Queues)
    ├── Usa Pub/Sub (via Topics)
    ├── Triggers
    ├── Event Sourcing
    └── Event Streaming
IBM-MQ/
│
├── REDE DE QUEUE MANAGERS
│   │
│   └── QM1 <--> QM2 <--> QM3 <--> QM4
IBM-MQ/
│
├── REDE DE QUEUE MANAGERS
│   │
│   └── QM1 <--> QM2 <--> QM3 <--> QM4

Topics (Tópicos)

Topics são objetos usados no modelo publish/subscribe que representam assuntos ou categorias de informação. Características:

  • Estrutura Hierárquica: Organizados em árvore usando "/" como separador
    • Exemplo: /finance/stocks/IBM
    • Exemplo: /sports/football/results
  • Topic String: String que identifica o tópico
  • Topic Object: Objeto administrativo que define propriedades do tópico

Channels (Canais)

Channels são mecanismos de comunicação que conectam queue managers ou aplicações ao IBM MQ.

IBM-MQ/
│
├── CHANNELS (Conectam Queue Managers)
│   │
│   ├── Message Channels
│   │   ├── Sender/Receiver
│   │   ├── Server/Requester
│   │   └── Cluster Channels

Tipos principais:

Message Channels (Canais de Mensagem)

Conectam dois queue managers para transferência de mensagens:

  • Sender Channel: Envia mensagens para outro queue manager
  • Receiver Channel: Recebe mensagens de outro queue manager
  • Server Channel: Responde a requisições de um requester channel
  • Requester Channel: Inicia conexão com um server channel
  • Cluster Sender/Receiver: Usados em configurações de cluster

MQI Channels (Canais MQI)

Conectam aplicações cliente ao queue manager:

  • Server-Connection Channel: Aceita conexões de clientes
  • Client-Connection Channel: Usado por aplicações cliente para conectar

Características dos Canais

  • Protocolo de Transporte: TCP/IP, LU 6.2, etc.
  • Segurança: SSL/TLS, autenticação
  • Heartbeat: Monitora conexões ativas
  • Retry Logic: Reconexão automática em caso de falha
  • Compression: Compressão de dados e headers
  • Batching: Agrupa múltiplas mensagens para eficiência

Publish/Subscribe (Pub-Sub)

Publish/Subscribe é um padrão de mensageria onde produtores (publishers) e consumidores (subscribers) são desacoplados através de tópicos.

Componentes

  • Publisher (Publicador):
    • Publica mensagens em tópicos
    • Não precisa conhecer os subscribers
    • Pode publicar para múltiplos tópicos
  • Subscriber (Assinante):
    • Se inscreve em tópicos de interesse
    • Recebe mensagens publicadas nesses tópicos
    • Pode usar wildcards para múltiplos tópicos
  • Subscription (Subscrição):
    • Registro do interesse de um subscriber em um tópico
    • Pode ser durável (persiste após desconexão) ou não-durável
    • Pode ter seletores para filtrar mensagens

Vantagens

  • Desacoplamento: Publishers e subscribers não se conhecem
  • Escalabilidade: Fácil adicionar novos subscribers
  • Flexibilidade: Subscribers podem se inscrever dinamicamente
  • Broadcast: Uma mensagem pode ser entregue a múltiplos subscribers

Point-to-Point Messaging

Point-to-Point é um padrão de mensageria onde mensagens são enviadas de um produtor para um único consumidor através de filas.

Características

  • Fila como Intermediário: Mensagens são colocadas em uma fila
  • Um Consumidor por Mensagem: Cada mensagem é processada por apenas um consumidor
  • Garantia de Entrega: Mensagem é entregue exatamente uma vez
  • Ordem: Mensagens são geralmente processadas em ordem FIFO
  • Persistência: Mensagens podem ser armazenadas até serem consumidas

Padrões de Uso

  • Request/Reply:
    • Aplicação envia requisição em uma fila
    • Resposta é enviada em outra fila (reply-to queue)
    • Usa Correlation ID para correlacionar resposta
  • Work Queue:
    • Múltiplos consumidores competem por mensagens
    • Load balancing automático
    • Cada mensagem processada por um worker
  • Message Routing:
    • Mensagens roteadas para diferentes filas baseado em conteúdo
    • Permite processamento especializado

Vantagens

  • Confiabilidade: Garantia de entrega
  • Load Balancing: Distribuição de carga entre consumidores
  • Decoupling: Produtor e consumidor não precisam estar ativos simultaneamente
  • Buffering: Fila absorve picos de carga

Event-Driven Messaging

Event-Driven Messaging é uma arquitetura onde sistemas reagem a eventos através de mensagens assíncronas.

Conceitos Fundamentais

  • Event (Evento): Notificação de que algo aconteceu no sistema
    • Mudança de estado
    • Ação do usuário
    • Condição do sistema
    • Transação completada
  • Event Producer: Gera e publica eventos
  • Event Consumer: Reage a eventos de interesse
  • Event Channel: Meio de transmissão (fila ou tópico)

Características

  • Asynchronous: Produtor não espera resposta imediata
  • Loosely Coupled: Componentes independentes
  • Scalable: Fácil adicionar novos consumidores de eventos
  • Real-time: Processamento imediato de eventos

Padrões de Implementação no IBM MQ

Event Notification

  • Usa Pub/Sub para broadcast de eventos
  • Múltiplos sistemas podem reagir ao mesmo evento
  • Exemplo: Notificação de nova ordem para estoque, faturamento, envio

Event Sourcing

  • Eventos são armazenados como log imutável
  • Estado atual derivado da sequência de eventos
  • Permite replay e auditoria completa

Triggers

  • Queue triggers disparam aplicações quando mensagens chegam
  • Automação de processamento
  • Tipos:
    • FIRST: Dispara quando primeira mensagem chega em fila vazia
    • EVERY: Dispara para cada mensagem
    • DEPTH: Dispara quando profundidade atinge threshold

Event Streaming

  • Fluxo contínuo de eventos
  • Processamento em tempo real
  • Integração com sistemas de streaming

Vantagens

  • Responsiveness: Sistema reage imediatamente a mudanças
  • Flexibility: Fácil adicionar novos comportamentos
  • Auditability: Histórico completo de eventos
  • Resilience: Falhas isoladas não afetam todo o sistema
  • Scalability: Componentes escalam independentemente

Casos de Uso

  • Microservices: Comunicação entre serviços
  • IoT: Processamento de dados de sensores
  • Real-time Analytics: Análise de eventos em tempo real
  • Workflow Automation: Orquestração de processos
  • System Integration: Integração de sistemas heterogêneos

Relação entre os Conceitos

Analogia com o Email
MQ Email
Message email
Queue (point-to-point) mailbox
Producer Outlook, SMTP Client
Consumer POP3, IMAP
Queue Manager Postfix, Sendmail, MTA
Topic (Publish-Subscriber) Mailing list
Message ACK Return Receipt
TTL Expires Header


  • Point-to-Point usa Queues para entregar Messages a um único consumidor
  • Pub/Sub usa Topics para distribuir Messages a múltiplos subscribers
  • Queue Manager gerencia tanto Queues quanto Topics
  • Channels conectam Queue Managers para formar redes de mensageria
  • Event-Driven Messaging pode usar tanto Point-to-Point quanto Pub/Sub
  • Todos os padrões dependem de Messages como unidade fundamental de comunicação

Referências