MuleSoft - Processador de mensagens e componentes de script
Os módulos de script facilitam os usuários a usar a linguagem de script no Mule. Em palavras simples, o módulo de script pode trocar lógica personalizada escrita em linguagem de script. Scripts podem ser usados como implementações ou transformadores. Eles podem ser usados para avaliação de expressão, ou seja, para controlar o roteamento de mensagens.
O Mule tem as seguintes linguagens de script suportadas -
- Groovy
- Python
- JavaScript
- Ruby
Como instalar módulos de script?
Na verdade, Anypoint Studio vem com os módulos de script. Se você não encontrar o módulo no Mule Palette, ele pode ser adicionado usando+Add Module. Depois de adicionar, podemos usar as operações do módulo de script em nosso aplicativo Mule.
Exemplo de implementação
Conforme discutido, precisamos arrastar e soltar o módulo na tela para criar um espaço de trabalho e usá-lo em nosso aplicativo. A seguir está um exemplo disso -
Já sabemos como configurar o componente HTTP Listener; portanto, vamos discutir sobre a configuração dos Módulos de Scripting. Precisamos seguir as etapas escritas abaixo para configurar o módulo de script -
Step 1
Procure o módulo Scripting no Mule Palette e arraste o EXECUTE operação do módulo de script em seu fluxo, conforme mostrado acima.
Step 2
Agora, abra a aba Execute configuration clicando duas vezes na mesma.
Step 3
Debaixo de General guia, precisamos fornecer o código no Code text window como mostrado abaixo -
Step 4
Por fim, precisamos escolher o Enginedo componente de execução. A lista de motores é a seguinte -
- Groovy
- Nashorn(javaScript)
- jython(Python)
- jRuby(Ruby)
O XML do exemplo de execução acima no editor XML de configuração é o seguinte -
<scripting:execute engine="jython" doc:name = "Script">
<scripting:code>
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
result = factorial(10)
</scripting:code>
</scripting:execute>
Fontes de mensagens
O Mule 4 tem um modelo simplificado do que a mensagem do Mule 3, tornando mais fácil trabalhar com dados de maneira consistente entre os conectores sem sobrescrever informações. No modelo de mensagem Mule 4, cada evento Mule consiste em duas coisas:a message and variables associated with it.
Uma mensagem do Mule tem carga útil e seus atributos, onde o atributo é principalmente metadados, como o tamanho do arquivo.
E uma variável contém as informações arbitrárias do usuário, como resultado da operação, valores auxiliares, etc.
De entrada
As propriedades de entrada no Mule 3 agora se tornam Atributos no Mule 4. Como sabemos, as propriedades de entrada armazenam informações adicionais sobre a carga obtida por meio de uma fonte de mensagem, mas agora, no Mule 4, isso é feito com a ajuda de atributos. Os atributos têm as seguintes vantagens -
Com a ajuda de atributos, podemos ver facilmente quais dados estão disponíveis, porque os atributos são fortemente tipados.
Podemos acessar facilmente as informações contidas nos atributos.
A seguir está o exemplo de uma mensagem típica no Mule 4 -
Saída
As propriedades de saída no Mule 3 devem ser especificadas explicitamente pelos conectores e transportes Mule para enviar dados adicionais. Mas no Mule 4, cada um deles pode ser definido separadamente, usando uma expressão DataWeave para cada um deles. Não produz nenhum efeito colateral no fluxo principal.
Por exemplo, a expressão DataWeave abaixo executará uma solicitação HTTP e gerará cabeçalhos e parâmetros de consulta sem a necessidade de definir as propriedades da mensagem. Isso é mostrado no código abaixo -
<http:request path = "M_issue" config-ref="http" method = "GET">
<http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
<http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>
Processador de Mensagens
Assim que o Mule recebe uma mensagem de uma fonte de mensagem, o trabalho do processador de mensagens começa. O Mule usa um ou mais processadores de mensagem para processar a mensagem por meio de um fluxo. A principal tarefa do processador de mensagens é transformar, filtrar, enriquecer e processar a mensagem conforme ela passa pelo fluxo Mule.
Categorização do processador Mule
A seguir estão as categorias do Processador Mule, com base nas funções -
Connectors- Esses processadores de mensagens enviam e recebem dados. Eles também conectam dados em fontes de dados externas por meio de protocolos padrão ou APIs de terceiros.
Components - Esses processadores de mensagens são de natureza flexível e executam lógica de negócios implementada em várias linguagens como Java, JavaScript, Groovy, Python ou Ruby.
Filters - Eles filtram as mensagens e permitem que apenas mensagens específicas continuem sendo processadas em um fluxo, com base em critérios específicos.
Routers - Este processador de mensagens é usado para controlar o fluxo de mensagens a serem roteadas, sequenciadas ou divididas.
Scopes - basicamente empacote trechos de código com o propósito de definir um comportamento de baixa granularidade dentro de um fluxo.
Transformers - A função dos transformadores é converter o tipo de carga útil da mensagem e o formato de dados para facilitar a comunicação entre os sistemas.
Business Events - Eles basicamente capturam dados associados a indicadores-chave de desempenho.
Exception strategies - Esses processadores de mensagens tratam de erros de qualquer tipo que ocorrem durante o processamento da mensagem.