идентификатор группы потребителей по умолчанию в кафке

Все объекты гарантированно имеют метод .equals(), поскольку Object содержит метод, .equals(), который возвращает логическое значение. Задача подкласса переопределять этот метод, если требуется дополнительное определение определения. Без него (т. Е. С помощью ==) только адреса памяти проверяются между двумя объектами для равенства. String переопределяет этот метод .equals() и вместо использования адреса памяти возвращает сравнение строк на уровне символа для равенства.

Ключевое замечание состоит в том, что строки хранятся в одном пуле, поэтому после создания строки он всегда хранится в программе по тому же адресу. Строки не меняются, они неизменяемы. Вот почему это плохая идея использовать регулярную конкатенацию строк, если у вас есть серьезное количество обработки строк. Вместо этого вы будете использовать предоставленные классы StringBuilder. Помните, что указатели на эту строку могут измениться, и если вам было интересно увидеть, были ли два указателя одинаковыми ==, это был бы прекрасный способ. Строки сами не делают.

0
задан wardziniak 17 January 2019 в 11:21
поделиться

2 ответа

Потребитель group.id является обязательным. Если вы не настроите потребителя group.id, вы получите исключение. Итак, очевидно, что вы устанавливаете его где-то в своем коде, или фреймворк или библиотека, которую вы используете, устанавливает его внутри. Вы должны всегда устанавливать group.id самостоятельно.

Вы можете получить идентификаторы группы потребителей, используя следующую команду:

bin/kafka-consumer-groups.sh  --list --bootstrap-server <kafka-broker-ip>:9092
0
ответ дан Monzurul Haque Shimul 17 January 2019 в 11:21
поделиться

Если вы перейдете в код Spark, вы найдете класс KafkaSourceProvider, отвечающий за программу чтения исходного кода Kafka, вы увидите, что генерируется случайный group.id:

private[kafka010] class KafkaSourceProvider extends DataSourceRegister

  override def createSource(
    sqlContext: SQLContext,
    metadataPath: String,
    schema: Option[StructType],
    providerName: String,
    parameters: Map[String, String]): Source = {
      validateStreamOptions(parameters)
      // Each running query should use its own group id. Otherwise, the query may be only assigned
      // partial data since Kafka will assign partitions to multiple consumers having the same group
      // id. Hence, we should generate a unique id for each query.
      val uniqueGroupId = s"spark-kafka-source-${UUID.randomUUID}-${metadataPath.hashCode}"
    ...
  }

Вы можете искать группу. идентификатор с префиксом spark-kafka-source, но вы не можете найти group.id для конкретной группы.

Чтобы найти все идентификаторы групп потребителей, вы можете использовать следующую команду: ./kafka-consumer-groups.sh --bootstrap-server KAFKKA_ADDRESS --list

Чтобы проверить смещения групп потребителей, вы можете использовать следующую команду: ./kafka-consumer-groups.sh --bootstrap-server KAFKKA_ADDRESS --group=GROUP_ID --describe

0
ответ дан wardziniak 17 January 2019 в 11:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: