Utilizando diferentes soluções para aprimorar tempos de resposta do fluxo
de mensagens.
Ao projetar um fluxo de mensagens, a flexibilidade e recursos funcionais
dos nós integrados geralmente significam que existem várias maneiras de obter o processamento e os resultados
desejados. Você pode perceber que diferentes soluções entregam diferentes níveis de desempenho e, se esta for
uma consideração importante para você, será necessário considerar isto ao projetar seu fluxo de mensagens
Seus aplicativos podem perceber o desempenho
de uma destas maneiras:
- O tempo de resposta indica a rapidez com que cada mensagem é processada pelo
fluxo de mensagens. O tempo de resposta é influenciado principalmente pela maneira como
você projeta seus fluxos de mensagens. O tempo de resposta é discutido neste tópico.
- O rendimento de processamento indica quantas mensagens de tamanhos específicos podem ser
processadas por um fluxo de mensagens em determinado momento. O rendimento de processamento é afetado principalmente
por fatores de configuração e de recursos do sistema e é discutido no tópico sobre otimização
do rendimento de processamento do fluxo de mensagens juntamente com outras informações de configuração de
domínio. Consulte o Otimizando o Rendimento do Processamento do Fluxo de Mensagens.
Vários aspectos influenciam os tempos de resposta de fluxos de mensagens. No entanto,
conforme você cria e modifica o design de seu fluxo de mensagens para alcançar os melhores resultados que atendam aos seus requisitos de negócios específicos, também deve considerar a eventual complexidade
do fluxo de mensagens.
Os fluxos de mensagens mais eficientes não são necessariamente os
mais fáceis de entender e manter; tente as soluções disponíveis para
alcançar o melhor equilíbrio para suas necessidades.
Vários fatores influenciam os tempos de resposta de fluxos de
mensagens:
- O Número de Nós Incluídos no Fluxo de Mensagens
- Cada nó aumenta a quantidade de processamento necessário no intermediário, portanto, considere o conteúdo
do fluxo de mensagens com atenção, incluindo a utilização de subfluxos.
Utilize o menor número de nós possível em
um fluxo de mensagens; cada nó incluído no fluxo de mensagens aumenta
a quantidade de processamento necessária no intermediário. O número de nós em um único fluxo
possui um limite máximo. Este limite é regido pelos recursos do
sistema, principalmente o tamanho da pilha.
Para obter informações
adicionais sobre tamanhos de pilhas, consulte
Considerações do Sistema para o Desenvolvimento do Fluxo de Mensagens.
- Como o Fluxo de Mensagens Roteia e Processa as Mensagens
- Em algumas situações,
você pode perceber que os nós internos e, talvez, outros nós que estão disponíveis
em seu sistema, oferecem mais de uma forma de fornecer a mesma função.
Escolha a configuração mais simples. Por exemplo, se desejar definir
algum processamento específico com base no valor de um campo em cada mensagem,
poderá projetar um fluxo de mensagens que tenha uma seqüência de nós
Filter para manipular cada caso.
Se apropriado, você pode agrupar mensagens por meio do nó Filter
para reduzir o número pelo qual cada tipo de mensagem precisa passar antes de
ser processado.
Por exemplo, você pode ter um fluxo de mensagens que trata
oito mensagens diferentes (Invoice, Despatch Note e outras). É possível incluir um nó Filter
para identificar cada tipo de mensagem e roteá-la de acordo com seu tipo. É possível otimizar
o desempenho desta técnica, testando os tipos de mensagens mais freqüentes
nos nós Filter mais antigos.
No entanto, o oitavo tipo de mensagem sempre deve passar por oito nós Filter.
Se for possível agrupar os tipos de mensagens (por exemplo, se o tipo de mensagem
for numérico e se você puder testar todos os tipos maiores que quatro e menores
que quatro), poderá reduzir o número de nós Filter
necessários. O primeiro nó Filter testa para mais de quatro e
transmite a mensagem para dois nós Filter adicionais (conectados
aos terminais True e False) que testam para menos de dois e menos de seis. Os quatro nós Filter adicionais
podem então testar para um ou dois, três ou quatro e assim por diante. Embora o número real
de nós Filter necessários seja o mesmo,
o número de nós pelos quais cada mensagem passa é reduzido.
Você pode notar que utilizar um nó RouteToLabel
com um conjunto de nós Label oferece uma melhor
alternativa para uma seqüência de nós Filter.
Cada mensagem passa por um número menor de nó, melhorando o
rendimento do processamento. No entanto, você também deve levar em consideração que a utilização de um nó RouteToLabel significa utilizar um nó Compute: o aumento na quantidade de processamento requerido no intermediário causado pelo nó pode superar as vantagens.
Se estiver lidando com um número limitado de
tipos de mensagem, um pequeno número de nós Filter
é mais eficiente.
A amostra a seguir demonstra como é possível utilizar
os nós
RouteToLabel e
Label
em vez de utilizar vários nós
Filter
no fluxo de mensagens XML_PassengerQuery.
A amostra a seguir demonstra como é possível armazenar informações de roteamento
em uma tabela de banco de dados em um cache de memória no fluxo de mensagens.
Você
pode visualizar amostras apenas quando utilizar o centro de informações integrado
ao Message
Brokers Toolkit.
- Se Seu fluxo de mensagens Inclui Loops
- Evite loops de nós de repetição; eles podem ser muito
ineficientes e provocar problemas de desempenho e de pilha. Você pode observar que um nó Compute
com várias instruções PROPAGATE evita a necessidade de fazer um loop em uma série
de nós.
- A Eficiência do ESQL
- Verifique todo o código ESQL criado para seus nós do fluxo de mensagens.
À medida que desenvolve e testa um nó, você pode manter instruções
que não sejam requeridas após a finalização do processamento de
mensagens.
Você também pode observar que alguma coisa que foi codificada
como duas instruções pode ser codificada como uma. Reservar um tempo para rever e
verificar seu código ESQL pode oferecer simplificação e aperfeiçoamentos de desempenho.
Se você importou fluxos de mensagens de um release anterior, verifique suas
instruções ESQL na ESQL disponível na Versão 6.1 para verificar se você pode utilizar novas funções ou
instruções para aprimorar sua eficiência.
- A Utilização de Mensagens Persistentes e Transacionais
- As mensagens persistentes são salvas
em disco durante o processamento do fluxo de mensagens. Esta situação pode ser evitada, especificando que
mensagens na entrada, saída ou em ambas, são não persistentes. Se seu fluxo de mensagens estiver tratando apenas mensagens não-persistentes, verifique a configuração dos
nós e o próprio fluxo de mensagens; se suas mensagens não forem persistentes,
o suporte a transações pode ser desnecessário.
A configuração padrão de alguns nós
força a capacidade da transação; se você atualizar essas propriedades e
reimplementar o fluxo de mensagens, os tempos de resposta podem ser aprimorados.
- Tamanho da Mensagem
- Uma mensagem maior leva mais tempo para ser processada. Se for possível dividir mensagens grandes em
unidades menores de informações, também será possível aprimorar a velocidade na qual elas são manipuladas
pelo fluxo de mensagens. A amostra a seguir demonstra como minimizar os requisitos de armazenamento virtual
para o fluxo de mensagens para aprimorar o desempenho de um fluxo de mensagens ao processar possíveis
mensagens grandes.
Você
pode visualizar amostras apenas quando utilizar o centro de informações integrado
ao Message
Brokers Toolkit.
- Formato de Mensagem
- Apesar do WebSphere Message Broker suportar diversos formatos de mensagens e fornecer recursos que podem ser utilizados para transformação de um formato para outro, essa transformação aumenta a quantidade de processamento necessária no intermediário.
Certifique-se de não executar conversões ou
transformações desnecessárias.
Você pode localizar informações adicionais sobre como
aprimorar o desempenho de um fluxo de mensagens neste developerWorks sobre
desempenho do fluxo de mensagens.