Кафка дает неверный размер при соединении с Hyperledger Fabric Orderer - PullRequest
1 голос
/ 25 апреля 2019

Я настраивал новый кластер для Hyperledger Fabric на EKS. Кластер имеет 4 узла кафки, 3 узла зоопарка, 4 одноранговых узла, 3 заказчика, 1 CA. Все контейнеры подбираются индивидуально, а бэкэнд kafka / zookeeper также стабилен. Я могу использовать SSH в любом kafka / zookeeper и проверять соединения с любыми другими узлами, создавать темы, публиковать сообщения и т. Д. Кафка доступна через Telnet от всех заказчиков.

Когда я пытаюсь создать канал, я получаю следующую ошибку от заказчика:

2019-04-25 13:34:17.660 UTC [orderer.common.broadcast] ProcessMessage -> WARN 025 [channel: channel1] Rejecting broadcast of message from 192.168.94.15:53598 with SERVICE_UNAVAILABLE: rejected by Consenter: backing Kafka cluster has not completed booting; try again later
2019-04-25 13:34:17.660 UTC [comm.grpc.server] 1 -> INFO 026 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Broadcast grpc.peer_address=192.168.94.15:53598 grpc.code=OK grpc.call_duration=14.805833ms
2019-04-25 13:34:17.661 UTC [common.deliver] Handle -> WARN 027 Error reading from 192.168.94.15:53596: rpc error: code = Canceled desc = context canceled
2019-04-25 13:34:17.661 UTC [comm.grpc.server] 1 -> INFO 028 streaming call completed grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.94.15:53596 error="rpc error: code = Canceled desc = context canceled" grpc.code=Canceled grpc.call_duration=24.987468ms

А лидер Кафки сообщает о следующей ошибке:

[2019-04-25 14:07:09,453] WARN [SocketServer brokerId=2] Unexpected error from /192.168.89.200; closing connection (org.apache.kafka.common.network.Selector)
org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 369295617 larger than 104857600)
        at org.apache.kafka.common.network.NetworkReceive.readFromReadableChannel(NetworkReceive.java:132)
        at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:93)
        at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:231)
        at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:192)
        at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:528)
        at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:469)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:398)
        at kafka.network.Processor.poll(SocketServer.scala:535)
        at kafka.network.Processor.run(SocketServer.scala:452)
        at java.lang.Thread.run(Thread.java:748)
[2019-04-25 14:13:53,917] INFO [GroupMetadataManager brokerId=2] Removed 0 expired offsets in 0 milliseconds. (kafka.coordinator.group.GroupMetadataManager)

1 Ответ

2 голосов
/ 25 апреля 2019

Ошибка указывает, что вы получаете сообщения, размер которых превышает максимально допустимый, который по умолчанию равен ~ 100 МБ. Попробуйте увеличить следующее свойство в файле server.properties, чтобы оно могло вместить больший прием (в данном случае не менее 369295617 байт):

# Set to 500MB
socket.request.max.bytes=500000000

, а затем перезапустите кластер Kafka.

Если это не работает для вас, то, я думаю, вы пытаетесь подключиться к прослушивателю без SSL. Поэтому вам необходимо убедиться, что порт прослушивателя SSL брокера имеет значение 9092 (или соответствующий порт, если вы не используете порт по умолчанию). Следующее должно сделать трюк:

listeners=SSL://:9092
advertised.listeners=SSL://:9092
inter.broker.listener.name=SSL
...