Kafka有什么区别
broker-list
和bootstrap servers
答案 0 :(得分:0)
这个答案仅供参考,因为我没有使用--broker-list,所以我很困惑,然后我意识到它已被弃用。
当前我正在使用Kafka 2.6.0版。
现在对于生产者和消费者,我们都必须使用--bootstrap-server而不是--broker-list,因为现在已弃用它。
您可以在Kafka控制台脚本中进行检查。
bin / kafka-console-producer.sh
如您所见,-不推荐使用Kafka-console-producer.sh的经纪人列表
bin / kafka-console-consumer.sh
答案 1 :(得分:0)
其他人已经很好地回答了,我只是想在这里分享一些额外的信息。
bin
目录下的那些命令行工具没有详细说明。
当然,您可以调用 --help
来打印给定命令支持的语法和选项的描述。
例如:bin/kafka-console-producer.sh --help
--bootstrap-server <String: server to REQUIRED unless --broker-list
connect to> (deprecated) is specified. The server
(s) to connect to. The broker list
string in the form HOST1:PORT1,HOST2:
PORT2.
--broker-list <String: broker-list> DEPRECATED, use --bootstrap-server
instead; ignored if --bootstrap-
server is specified. The broker
list string in the form HOST1:PORT1,
HOST2:PORT2.
但是你总是可以直接从源代码中找到最新的信息,而不是运行命令,就在目录core/src/main/scala/kafka
中,相应的scala类可以在{ {1}} 目录,或 tools
目录。
例如:kafka-console-producer.sh
脚本实际上从 ConsoleProducer.scala
类调用函数。在那里您可以轻松找到broker-list 已弃用。
祝您阅读源代码愉快:)
答案 2 :(得分:-1)
我也讨厌阅读&#34;文字墙,如&#34;卡夫卡文件:P
据我了解:
代理列表
bootstrap-servers
很抱歉这样......简短。下次我将更多地关注细节,以便更清楚。 为了解释我的观点,我将使用Kafka 1.0.1控制台脚本。
kafka-console-consumer.sh
The console consumer is a tool that reads data from Kafka and outputs it to standard output.
Option Description
------ -----------
--blacklist <String: blacklist> Blacklist of topics to exclude from
consumption.
--bootstrap-server <String: server to REQUIRED (unless old consumer is
connect to> used): The server to connect to.
--consumer-property <String: A mechanism to pass user-defined
consumer_prop> properties in the form key=value to
the consumer.
--consumer.config <String: config file> Consumer config properties file. Note
that [consumer-property] takes
precedence over this config.
--csv-reporter-enabled If set, the CSV metrics reporter will
be enabled
--delete-consumer-offsets If specified, the consumer path in
zookeeper is deleted when starting up
--enable-systest-events Log lifecycle events of the consumer
in addition to logging consumed
messages. (This is specific for
system tests.)
--formatter <String: class> The name of a class to use for
formatting kafka messages for
display. (default: kafka.tools.
DefaultMessageFormatter)
--from-beginning If the consumer does not already have
an established offset to consume
from, start with the earliest
message present in the log rather
than the latest message.
--group <String: consumer group id> The consumer group id of the consumer.
--isolation-level <String> Set to read_committed in order to
filter out transactional messages
which are not committed. Set to
read_uncommittedto read all
messages. (default: read_uncommitted)
--key-deserializer <String:
deserializer for key>
--max-messages <Integer: num_messages> The maximum number of messages to
consume before exiting. If not set,
consumption is continual.
--metrics-dir <String: metrics If csv-reporter-enable is set, and
directory> this parameter isset, the csv
metrics will be output here
--new-consumer Use the new consumer implementation.
This is the default, so this option
is deprecated and will be removed in
a future release.
--offset <String: consume offset> The offset id to consume from (a non-
negative number), or 'earliest'
which means from beginning, or
'latest' which means from end
(default: latest)
--partition <Integer: partition> The partition to consume from.
Consumption starts from the end of
the partition unless '--offset' is
specified.
--property <String: prop> The properties to initialize the
message formatter.
--skip-message-on-error If there is an error when processing a
message, skip it instead of halt.
--timeout-ms <Integer: timeout_ms> If specified, exit if no message is
available for consumption for the
specified interval.
--topic <String: topic> The topic id to consume on.
--value-deserializer <String:
deserializer for values>
--whitelist <String: whitelist> Whitelist of topics to include for
consumption.
--zookeeper <String: urls> REQUIRED (only when using old
consumer): The connection string for
the zookeeper connection in the form
host:port. Multiple URLS can be
given to allow fail-over.
kafka-console-producer.sh
Read data from standard input and publish it to Kafka.
Option Description
------ -----------
--batch-size <Integer: size> Number of messages to send in a single
batch if they are not being sent
synchronously. (default: 200)
--broker-list <String: broker-list> REQUIRED: The broker list string in
the form HOST1:PORT1,HOST2:PORT2.
--compression-codec [String: The compression codec: either 'none',
compression-codec] 'gzip', 'snappy', or 'lz4'.If
specified without value, then it
defaults to 'gzip'
--key-serializer <String: The class name of the message encoder
encoder_class> implementation to use for
serializing keys. (default: kafka.
serializer.DefaultEncoder)
--line-reader <String: reader_class> The class name of the class to use for
reading lines from standard in. By
default each line is read as a
separate message. (default: kafka.
tools.
ConsoleProducer$LineMessageReader)
--max-block-ms <Long: max block on The max time that the producer will
send> block for during a send request
(default: 600
正如您所看到的,bootstrap-server参数仅针对使用者而发生。另一方面 - broker-list仅在生产者的参数列表中。
此外:
kafka-console-consumer.sh --zookeeper localost:2181 --topic bets
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
因为cricket-007注意到bootstrap-server和zookeeper看起来有类似的目的。区别在于--zookeeper应指向另一侧的Zookeeper节点--bootstrap-server指向Kafka节点和端口。
重申,bootstrap-server被用作使用者参数,broker-list被用作producer参数。