Connecting with SSL
nvioli opened this issue · 4 comments
nvioli commented
Bug Report
I'm trying to connect to a broker over SSL. When I try with the ssl
option set to true
, I get the error ApiVersions failed with unexpected error BrokerNotAvailableError
. However, when I set the sslOptions
to anything truthy, it appears to connect correctly. I took a look at your code and (unless I'm misunderstanding) it seems these lines aren't working as intended. Shouldn't they be along the lines of
if (this.options.ssl === true) {
this.ssl = true
this.sslOptions = {} // not sure if this is necessary or was the intent of the previous line
}
Happy to PR if that looks right to others.
Environment
- Node version: 14.5.0
- Kafka-node version: 5.0.0
Include Sample Code to reproduce behavior
//this produces the error below:
const kafka = require('kafka-node')
const client = new kafka.KafkaClient({
kafkaHost: kafkaBroker,
requestTimeout: 60000,
idleConnection: 3600000,
maxAsyncRequests: 10,
ssl: true
})
//this appears to work:
const kafka = require('kafka-node')
const client = new kafka.KafkaClient({
kafkaHost: kafkaBroker,
requestTimeout: 60000,
idleConnection: 3600000,
maxAsyncRequests: 10,
sslOptions: {} // or `true` or `'asdf'` etc.
})
Include output with Debug turned on
Connect attempt 1
Trying to connect to host: my-kafka-address.us-east-1.amazonaws.com port: 9094
kafka-node-client createBroker my-kafka-address.us-east-1.amazonaws.com:9094
kafka-node-client sending versions request to my-kafka-address.us-east-1.amazonaws.com:9094
broker socket connected {"host":"my-kafka-address.us-east-1.amazonaws.com","port":9094}
connected to socket, trying to load initial metadata
missing apiSupport waiting until broker is ready...(loadMetadataForTopics)
waitUntilReady [BrokerWrapper my-kafka-address.us-east-1.amazonaws.com:9094 (connected: true) (ready: false) (idle: false) (needAuthentication: false) (authenticated: false)]
kafka-node-client socket closed my-kafka-address.us-east-1.amazonaws.com:9094 (hadError: false)
ApiVersions failed with unexpected error BrokerNotAvailableError: Broker not available (socket closed)
at new BrokerNotAvailableError (/usr/src/app/node_modules/kafka-node/lib/errors/BrokerNotAvailableError.js:11:9)
at Socket.<anonymous> (/usr/src/app/node_modules/kafka-node/lib/kafkaClient.js:778:19)
at Socket.emit (events.js:210:5)
at Socket.EventEmitter.emit (domain.js:475:20)
at TCP.<anonymous> (net.js:659:12) {
message: 'Broker not available (socket closed)'
}
error initializing broker after connect BrokerNotAvailableError: Broker not available (socket closed)
at new BrokerNotAvailableError (/usr/src/app/node_modules/kafka-node/lib/errors/BrokerNotAvailableError.js:11:9)
at Socket.<anonymous> (/usr/src/app/node_modules/kafka-node/lib/kafkaClient.js:778:19)
at Socket.emit (events.js:210:5)
at Socket.EventEmitter.emit (domain.js:475:20)
at TCP.<anonymous> (net.js:659:12) {
message: 'Broker not available (socket closed)'
}
kafka-node-client reconnecting to my-kafka-address.us-east-1.amazonaws.com:9094
kafka-node-client createBroker my-kafka-address.us-east-1.amazonaws.com:9094
kafka-node-client sending versions request to my-kafka-address.us-east-1.amazonaws.com:9094
kafka-node-client socket closed my-kafka-address.us-east-1.amazonaws.com:9094 (hadError: false)
ApiVersions failed with unexpected error BrokerNotAvailableError: Broker not available (socket closed)
at new BrokerNotAvailableError (/usr/src/app/node_modules/kafka-node/lib/errors/BrokerNotAvailableError.js:11:9)
at Socket.<anonymous> (/usr/src/app/node_modules/kafka-node/lib/kafkaClient.js:778:19)
at Socket.emit (events.js:210:5)
at Socket.EventEmitter.emit (domain.js:475:20)
at TCP.<anonymous> (net.js:659:12) {
message: 'Broker not available (socket closed)'
}
error initializing broker after connect BrokerNotAvailableError: Broker not available (socket closed)
at new BrokerNotAvailableError (/usr/src/app/node_modules/kafka-node/lib/errors/BrokerNotAvailableError.js:11:9)
at Socket.<anonymous> (/usr/src/app/node_modules/kafka-node/lib/kafkaClient.js:778:19)
at Socket.emit (events.js:210:5)
at Socket.EventEmitter.emit (domain.js:475:20)
at TCP.<anonymous> (net.js:659:12) {
message: 'Broker not available (socket closed)'
}
nvioli commented
Seems I was reading the docs wrong. This appears to work correctly.
robinzimmermann commented
Thanks, @nvioli. It wasn't obvious to me that you set sslOptions: {}
on the connect options, either.
zel9454 commented
24 Ekim 2020 Cumartesi tarihinde Robin Zimmermann <notifications@github.com>
yazdı:
… Thanks, @nvioli <https://github.com/nvioli>. It wasn't obvious to me that
you set sslOptions: {} on the connect options, either.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1430 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AQZ5B2LW7HNTAYHDZVLJD2DSMIJKTANCNFSM4SB646UQ>
.
zel9454 commented
[image: Google]
Share entertainment & stay connected with your family
ACCEPT INVITATION
<https://families.google.com/join/promo/yPV7Qx3xscUs08nORzCkad8RSReviQ>
İzel Altınkılıç (izeelaltiinkilic@gmail.com) invited you to join her family
on Google.
Here are a few of the services she can set up for you to use together:
YouTube TV family plan
Google Play Family Library
Google Family Calendar
Google One
To see all services available for your family group, visit
families.google.com.
ACCEPT INVITATION
<https://families.google.com/join/promo/yPV7Qx3xscUs08nORzCkad8RSReviQ>
Google LLC
1600 Amphitheatre Parkway,
Mountain View, CA 94043, USA