Проблемы с Java, jmxremote.port и jmxremote.rmi.port при использовании Kafka - PullRequest
0 голосов
/ 16 мая 2019

Kafka не запускается со следующей конфигурацией (взятой из сценария службы systemd):

[Service]
Type=simple
User=root
Group=root
Environment='KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/opt/kafka/config/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/opt/kafka/config/jmxremote.access -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.keyStore=/opt/kafka/ssl/server.keystore.jks -Djavax.net.ssl.keyStorePassword=******* -Djavax.net.ssl.trustStore=/opt/kafka/ssl/client.truststore.jks -Djavax.net.ssl.trustStorePassword=*******'
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
...

Запуск с этой конфигурацией приводит к:

kafka-server-start.sh: Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 9999; nested exception is:

Когда я изменяю один номер портаиз двух к чему-то другому (например, 9999 и 9998), Kafka (процесс Java) действительно запускается, но затем я не могу подключиться к процессу, используя jmxterm на любом из портов:

$>open -u admin localhost:9999
Credential password: ********
#RuntimeIOException: Runtime IO exception: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint]

$>open -u admin localhost:9998
Credential password: ********
#RuntimeIOException: Runtime IO exception: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table]

Странная вещьв том, что если я использую сценарий запуска systemd с обоими портами, установленными на 9999, но без настроек хранилища ключей, java (Kafka) запускается ОК.Этот код работает, но мне нужно, чтобы аутентификация была зашифрована ....

...
[Service]
Type=simple
User=root
Group=root
Environment='KAFKA_JMX_OPTS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=/opt/kafka/config/jmxremote.password -Dcom.sun.management.jmxremote.access.file=/opt/kafka/config/jmxremote.access'
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
...

Что-то не так с моей средой = 'KAFKA_JMX_OPTS .... ??

...