Publique e receba mensagens no Pub/Sub Lite usando a API Apache Kafka
Nesta página, mostramos como usar o Pub/Sub Lite Kafka Shim para publicar e receber mensagens do Pub/Sub Lite.
O Pub/Sub Lite Kafka Shim é uma biblioteca Java que facilita o trabalho dos usuários da biblioteca de cliente Java (em inglês) do Apache Kafka com o Pub/Sub Lite. Isso acontece por meio da implementação da API Producer e da API Consumer (links em inglês).
Isso é possível porque os tópicos do Pub/Sub Lite, como os do Apache Kafka, são registros particionados que rastreiam o progresso do consumidor com deslocamentos numéricos.
Embora os dois sistemas sejam semelhantes, há algumas diferenças práticas importantes:
- Um tópico do Pub/Sub Lite equivale a um do Kafka. No entanto, um tópico do Lite inclui capacidade configurável de armazenamento e processamento em cada partição do tópico. Já a capacidade do tópico do Kafka é determinada pelas configurações do cluster do Kafka.
- Uma assinatura do Pub/Sub Lite equivale a um grupo de consumidores do Kafka. Uma assinatura do Lite é um recurso nomeado de primeira ordem do Google Cloud Platform que representa mensagens de partições de tópicos do Lite que podem ser lidas pelos assinantes. Da mesma forma, um grupo de consumidores do Kafka é composto por consumidores que podem ler dados das partições de um tópico do Kafka.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative a API Pub/Sub Lite:
gcloud services enable pubsublite.googleapis.com
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
-
Atribua os papéis à sua Conta do Google. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/pubsublite.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
- Substitua
PROJECT_ID
pela ID do seu projeto. - Substitua
EMAIL_ADDRESS
pelo seu endereço de e-mail. - Substitua
ROLE
por cada papel individual.
- Substitua
- Instale a CLI do Google Cloud.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative a API Pub/Sub Lite:
gcloud services enable pubsublite.googleapis.com
-
Crie as credenciais de autenticação para sua Conta do Google:
gcloud auth application-default login
-
Atribua os papéis à sua Conta do Google. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM:
roles/pubsublite.admin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:EMAIL_ADDRESS" --role=ROLE
- Substitua
PROJECT_ID
pela ID do seu projeto. - Substitua
EMAIL_ADDRESS
pelo seu endereço de e-mail. - Substitua
ROLE
por cada papel individual.
- Substitua
Instale a biblioteca de cliente
As amostras a seguir mostram como instalar as bibliotecas de cliente pubsublite-kafka
.
Java
Se você estiver usando o Maven sem BOM, adicione isto às dependências:
Se você estiver usando o Gradle, adicione isto às dependências:
Se você estiver usando o sbt, adicione o seguinte às suas dependências:
Se você estiver usando o Visual Studio Code, o IntelliJ ou o Eclipse, poderá adicionar bibliotecas de cliente ao projeto usando estes plug-ins de IDE:
Os plug-ins também oferecem outras funcionalidades, como gerenciamento de chaves de contas de serviço. Consulte a documentação de cada plug-in para mais detalhes.
Criar um tópico e uma assinatura do Lite
Crie um tópico e uma assinatura do Lite usando os comandos a seguir.
gcloud pubsub lite-topics create LITE_TOPIC_NAME \
--location=LITE_LOCATION \
--partitions=1 \
--per-partition-bytes=30GiB
gcloud pubsub lite-subscriptions create LITE_SUBSCRIPTION_NAME \
--location=LITE_LOCATION \
--topic=LITE_TOPIC_NAME \
--starting-offset=end \
--delivery-requirement=deliver-after-stored
Substitua:
LITE_TOPIC_NAME
: o nome do novo tópico do Lite.LITE_SUBSCRIPTION_NAME
: o nome da nova assinatura do Lite.LITE_LOCATION
: o local em que você está criando o tópico e a assinatura do Lite. Escolha um local do Pub/Sub Lite compatível. Especifique também uma zona para a região. Por exemplo,us-central1-a
.
Publicar mensagens no Pub/Sub Lite
Crie um produtor do Pub/Sub Lite para enviar dados ao tópico do Lite. Essa classe implementa org.apache.kafka.clients.Producer
, que é a mesma interface que KafkaProducer
(links em inglês).
Receber mensagens do Pub/Sub Lite
Crie um consumidor do Pub/Sub Lite para receber dados da assinatura do Lite. Essa classe implementa org.apache.kafka.clients.consumer.Consumer
, que é a mesma interface que KafkaConsumer
(links em inglês).
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Cloud com esses recursos.
Exclua o tópico e a assinatura do Lite.
gcloud pubsub lite-topics delete LITE_TOPIC_NAME
gcloud pubsub lite-subscriptions delete LITE_SUBSCRIPTION_NAME
-
Exclua a conta de serviço:
gcloud iam service-accounts delete SERVICE_ACCOUNT_EMAIL
-
Opcional: revogue as credenciais de autenticação que você criou e exclua o arquivo de credenciais local:
gcloud auth application-default revoke
-
Opcional: revogar credenciais da CLI gcloud.
gcloud auth revoke
A seguir
- Saiba mais sobre tópicos do Lite e assinaturas do Lite (links em inglês).
- Saiba mais sobre como enviar e como receber mensagens.
- Saiba mais sobre os recursos de monitoramento do Pub/Sub Lite.