Modelo de JMS para Pub/Sub

O modelo JMS para Pub/Sub é um pipeline de streaming que lê mensagens do servidor JMS Active MQ (fila/tópico) e escreve-as no Pub/Sub.

Requisitos da pipeline

  • O nome do tópico de saída do Pub/Sub tem de existir.
  • O IP do anfitrião JMS tem de existir e ter a configuração de rede adequada para que as VMs de trabalho do Dataflow alcancem o anfitrião JMS.
  • O tópico/fila JMS a partir do qual os dados são extraídos tem de ter um nome.

Parâmetros de modelos

Parâmetros obrigatórios

  • inputName: o nome do tópico ou da fila JMS a partir do qual os dados são lidos. Por exemplo, queue.
  • inputType: o tipo de destino JMS a partir do qual ler dados. Pode ser uma fila ou um tópico. Por exemplo, queue.
  • outputTopic: o nome do tópico do Pub/Sub para publicar dados. Por exemplo, projects/<PROJECT_ID>/topics/<TOPIC_NAME>.
  • username: o nome de utilizador a usar para autenticação no servidor JMS. Por exemplo, sampleusername.
  • password: a palavra-passe associada ao nome de utilizador facultado. Por exemplo, samplepassword.

Parâmetros opcionais

  • jmsServer: o IP do servidor JMS (ActiveMQ). Por exemplo, tcp://10.0.0.1:61616.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione JMS to Pub/Sub template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na shell ou no terminal, execute o modelo:

gcloud dataflow flex-template run JOB_NAME \
    --project=YOUR_PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub \
    --parameters \
jmsServer=JMS_SERVER,\
inputName=INPUT_NAME,\
inputType=INPUT_TYPE,\
outputTopic=OUTPUT_TOPIC,\
username=USERNAME,\
password=PASSWORD
  

Tem de substituir os seguintes valores neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do seu projeto.
  • Substitua pelo nome da região do Dataflow. Por exemplo: us-central1.
  • Substitua JOB_NAME por um nome de trabalho à sua escolha. O nome da tarefa tem de corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua JMS_SERVER pelos endereços do servidor JMS. Por exemplo: tcp://10.0.0.0:61616
  • Substitua INPUT_NAME pelo nome do tópico/fila de entrada do servidor JMS. Por exemplo: testtopic.
  • Substitua INPUT_TYPE pelo tipo de destino do servidor JMS(fila/tópico). Por exemplo: topic
  • Substitua OUTPUT_TOPIC pelo nome do tópico de saída do Pub/Sub. Por exemplo: projects/myproject/topics/testoutput.
  • Substitua USERNAME pelo nome de utilizador do servidor JMS. Por exemplo: testuser.
  • Substitua PASSWORD pela palavra-passe que corresponde ao nome de utilizador usado com o servidor JMS.

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "jmsServer": "JMS_SERVER",
          "inputName": "INPUT_NAME",
          "inputType": "INPUT_TYPE",
          "outputTopic": "OUTPUT_TOPIC",
          "username": "USERNAME",
          "password": "PASSWORD"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/VERSION/flex/JMS_to_Cloud_PubSub",
   }
}
  

Tem de substituir os seguintes valores neste exemplo:

  • Substitua YOUR_PROJECT_ID pelo ID do seu projeto.
  • Substitua pelo nome da região do Dataflow. Por exemplo: us-central1.
  • Substitua JOB_NAME por um nome de trabalho à sua escolha. O nome da tarefa tem de corresponder à expressão regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Substitua JMS_SERVER pelos endereços do servidor JMS. Por exemplo: tcp://10.0.0.0:61616
  • Substitua INPUT_NAME pelo nome do tópico/fila de entrada do servidor JMS. Por exemplo: testtopic.
  • Substitua INPUT_TYPE pelo tipo de destino do servidor JMS(fila/tópico). Por exemplo: topic
  • Substitua OUTPUT_TOPIC pelo nome do tópico de saída do Pub/Sub. Por exemplo: projects/myproject/topics/testoutput.
  • Substitua USERNAME pelo nome de utilizador do servidor JMS. Por exemplo: testuser.
  • Substitua PASSWORD pela palavra-passe que corresponde ao nome de utilizador usado com o servidor JMS.

O que se segue?