En Managed Service para Apache Kafka, los mensajes se organizan en temas. Un tema se compone de particiones. Una partición es una secuencia ordenada e inmutable de registros que pertenece a un solo agente dentro de un clúster de Kafka. Debes crear un tema para publicar o consumir mensajes.
Para crear un tema, puedes usar la Google Cloud consola de , Google Cloud CLI, la biblioteca cliente, la API de Kafka administrado o las APIs de Apache Kafka de código abierto.
Antes de comenzar
Primero debes crear un clúster antes de crear un tema. Asegúrate de haber configurado lo siguiente:
Roles y permisos necesarios para crear un tema
Para obtener los permisos que
necesitas para crear un tema,
pídele a tu administrador que te otorgue el
rol de IAM Editor de temas de Kafka administrado (roles/managedkafka.topicEditor) en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear un tema. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear un tema:
-
Crear un tema:
managedkafka.topics.create
También puedes obtener estos permisos con roles personalizados o otros roles predefinidos.
Propiedades de un tema de Managed Service para Apache Kafka
Cuando creas o actualizas un tema de Managed Service para Apache Kafka, debes especificar las siguientes propiedades.
Nombre del tema
Es el nombre del tema de Managed Service para Apache Kafka que estás creando. Si necesitas ayuda para asignarle un nombre a un tema, consulta los Lineamientos para asignarles nombres a los recursos de Managed Service para Apache Kafka. El nombre de un tema es inmutable.
Recuento de particiones
La cantidad de particiones del tema. Puedes editar un tema para aumentar el recuento de particiones, pero no puedes disminuirlo. Aumentar la cantidad de particiones para un tema que usa una clave puede cambiar la forma en que se distribuyen los mensajes.
Factor de replicación
La cantidad de réplicas para cada partición. Si no especificas el valor, se usa el factor de replicación predeterminado del clúster.
Un factor de replicación más alto puede mejorar la coherencia de los datos en caso de fallas del agente, ya que los datos se replican en varios agentes. Para los entornos de producción, se recomienda un factor de replicación de 3 o más. Las cantidades más altas de réplicas aumentan el almacenamiento local y los costos de transferencia de datos para el tema. Sin embargo, no aumentan los costos de almacenamiento persistente. El factor de replicación no puede exceder la cantidad de agentes disponibles.
Otros parámetros
También puedes establecer otros parámetros de configuración de Apache Kafka a nivel del tema.
Estos se especifican como pares key=value que anulan los valores predeterminados del clúster.
Las configuraciones relacionadas con los temas tienen un valor predeterminado del servidor y una anulación opcional por tema. El formato es una lista separada por comas de pares KEY=VALUE,
donde KEY es el nombre de la propiedad de configuración del tema de Kafka y VALUE
es la configuración requerida.Estos pares clave-valor te ayudan a anular los valores predeterminados del clúster. Algunos ejemplos son flush.ms=10 y compression.type=producer.
Para obtener una lista de todos los parámetros de configuración admitidos a nivel del tema, consulta Parámetros de configuración a nivel del tema en la documentación de Apache Kafka.
Crea un tema
Antes de crear un tema, revisa las propiedades del tema.
Console
En la Google Cloud consola de, ve a la página Clústeres.
Haz clic en el clúster para el que deseas crear un tema.
Se abrirá la página Detalles del clúster.
En la página de detalles del clúster, haz clic en Crear tema.
Se abrirá la página Crear tema de Kafka.
En Nombre del tema, ingresa una cadena.
En Recuento de particiones, ingresa la cantidad de particiones que deseas o conserva el valor predeterminado.
En Factor de replicación, ingresa el factor de replicación que deseas o conserva el valor predeterminado.
(Opcional) Para modificar cualquier configuración del tema, agrégala como pares clave-valor separados por comas en el campo Configuraciones.
Haz clic en Crear.
gcloud
-
En la Google Cloud consola de, activa Cloud Shell.
En la parte inferior de la Google Cloud consola de, se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Ejecuta el
gcloud managed-kafka topics createcomando:gcloud managed-kafka topics create TOPIC_ID \ --cluster=CLUSTER_ID --location=LOCATION_ID \ --partitions=PARTITIONS \ --replication-factor=REPLICATION_FACTOR \ --configs=CONFIGSReemplaza lo siguiente:
- TOPIC_ID: El nombre del tema.
- CLUSTER: El nombre del clúster en el que deseas crear el tema.
- LOCATION: La región del clúster.
- PARTITIONS: La cantidad de particiones del tema.
- REPLICATION_FACTOR: El factor de replicación para el tema.
- CONFIGS: Parámetros opcionales a nivel del tema.
Especifica como pares clave-valor separados por comas. Por ejemplo,
compression.type=producer.
CLI de Kafka
Antes de ejecutar este comando, instala las herramientas de línea de comandos de Kafka en una VM de Compute Engine. La VM debe poder comunicarse con una subred conectada a tu clúster de Managed Service para Apache Kafka. Sigue las instrucciones en Produce y consume mensajes con las herramientas de línea de comandos de Kafka.
Ejecuta el comando kafka-topics.sh de la siguiente manera:
kafka-topics.sh --create --if-not-exists \
--bootstrap-server=BOOTSTRAP_ADDRESS \
--command-config client.properties \
--topic TOPIC_ID \
--partitions PARTITIONS \
--replication-factor REPLICATION_FACTOR
Reemplaza lo siguiente:
BOOTSTRAP_ADDRESS: La dirección de arranque del clúster de Managed Service para Apache Kafka.
TOPIC_ID: El nombre del tema.
PARTITIONS: La cantidad de particiones del tema.
REPLICATION_FACTOR: El factor de replicación del tema.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
PROJECT_ID: tu Google Cloud ID de proyecto -
LOCATION: la ubicación del clúster -
CLUSTER_ID: el ID del clúster -
TOPIC_ID: El ID del tema -
PARTITION_COUNT: la cantidad de particiones del tema -
REPLICATION_FACTOR: la cantidad de réplicas de cada partición
Método HTTP y URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID/topics?topicId=TOPIC_ID
Cuerpo JSON de la solicitud:
{
"name": "TOPIC_ID",
"partitionCount": PARTITION_COUNT,
"replicationFactor": REPLICATION_FACTOR
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID/topics/TOPIC_ID",
"partitionCount": PARTITION_COUNT,
"replicationFactor": REPLICATION_FACTOR
}
Terraform
Puedes usar un recurso de Terraform para crear un tema.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go en Instala las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Managed Service para Apache Kafka para Go.
Para autenticarte en Managed Service para Apache Kafka, configura las credenciales predeterminadas de la aplicación(ADC). Para obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java en Instala las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Managed Service para Apache Kafka para Java.
Para autenticarte en Managed Service para Apache Kafka, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura ADC para un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración de Python en Instala las bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Python de Managed Service para Apache Kafka.
Para autenticarte en Managed Service para Apache Kafka, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura ADC para un entorno de desarrollo local.