在创建生产者时,我必须指定代理端口值。
为此,我需要在“server.properties”文件中配置该代理端口值。
这些“listeners”和“advertized.listeners”参数是什么? 以及如何将它们配置为代理端口?
如果代理端口值是强制性的,那么为什么要对这些参数进行注释?
如果这些参数从“java.net.InetAddress.getCanonicalHostName()”自动初始化,那么如何在创建新生产者时指定这些自动初始化的端口值?
谢谢。
############################# Socket Server Settings #############################
# The address the socket server listens on. It will get the value returned from
# java.net.InetAddress.getCanonicalHostName() if not configured.
# FORMAT:
# listeners = listener_name://host_name:port
# EXAMPLE:
# listeners = PLAINTEXT://your.host.name:9092
#listeners=PLAINTEXT://:9092
# Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
#advertised.listeners=PLAINTEXT://your.host.name:9092
最佳答案
如果不设置advertished.listeners
,则默认与listeners
相同。
listeners
用于内部网络 IP,advertized.listeners
用于外部网络 IP。如果内部只需要使用Kafka,则只需要配置监听器
即可。
listeners
是socketserver实际bind()的参数。 advertized.listeners
将存储在 zk 中。
在内部网络中,您可以使用192.168.0.10连接Kafka Broker。通过外部网络,因此您应该配置advertished.listeners
# inside network IP, like that
listeners=PLAINTEXT://192.168.0.10:9092
# Public network ip, so you can connect the broker in any network
advertised.listeners=PLAINTEXT://xxx.xxx.xxx.xxx:9092
其他: 参数值的格式为(协议(protocol)名称)://(主机名或ip):(端口号)
协议(protocol)名称PLAINTEXT
表示明文传输,
协议(protocol)名称SSL
表示使用SSL或TLS加密传输等
关于apache-kafka - 如何在 server.properties 文件中配置 Apache Kafka 代理端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65528091/