wso2 esb中的卡夫卡生产者超时

wso2 esb中的卡夫卡生产者超时,wso2,wso2esb,Wso2,Wso2esb,我们将看到Kafka 2.11和启用sasl的wso2 esb 6.2的例外情况。wso2 esb和Kafka clsuter中的SASL机制是佩林,但randmoly在日志中看到了错误2 是否有人遇到过此错误,并感谢您的帮助 错误1: java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.TimeoutException:TESTTOPIC:30051 ms的1条记录自批创建加上延迟时间后过期 错误2: [

我们将看到Kafka 2.11和启用sasl的wso2 esb 6.2的例外情况。wso2 esb和Kafka clsuter中的SASL机制是佩林,但randmoly在日志中看到了错误2

是否有人遇到过此错误,并感谢您的帮助

错误1: java.util.concurrent.ExecutionException:org.apache.kafka.common.errors.TimeoutException:TESTTOPIC:30051 ms的1条记录自批创建加上延迟时间后过期

错误2:
[2019-11-02 01:36:50265]错误-[Producer-clientId=Producer-4526]到节点的连接-1身份验证失败,原因是:客户端机制的意外握手请求。普通,启用的机制是[GSSAPI]{org.apache.kafka.clients.NetworkClient}

根据第二条错误消息
*与客户端机制的意外握手请求普通,启用的机制是[GSSAPI]*
,似乎ESB端的SASLME机制没有正确配置。默认情况下,它配置为GSSAPI Kerberos

我建议您购买最新版本的卡夫卡连接器。您可以找到文档和相关链接

使用Kafka连接器的普通配置示例如下:

<kafkaTransport.init>
        <bootstrapServers>localhost:9092</bootstrapServers>
        <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass>
        <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass>
        <securityProtocol> SASL_PLAINTEXT </securityProtocol>
        <saslMechanism> PLAIN </saslMechanism>
        <saslJaasConfig>org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345"</saslJaasConfig>
        <maxPoolSize>100</maxPoolSize>
</kafkaTransport.init>

本地主机:9092
org.apache.kafka.common.serialization.StringSerializer
org.apache.kafka.common.serialization.StringSerializer
SASL_明文
平原
org.apache.kafka.common.security.plain.PlainLoginModule所需用户名=“admin”密码=“12345”
100
这是使用卡夫卡连接器所需的相关配置。安全协议也可以配置为SASL_SSL

下面是一个这样的代理配置

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="KafkaTransport"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <kafkaTransport.init>
            <bootstrapServers>localhost:9092</bootstrapServers>
            <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass>
            <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass>
            <securityProtocol>SASL_SSL</securityProtocol>
            <saslMechanism>PLAIN</saslMechanism>

            <sslKeystoreLocation>/Users/Ibaqu/kafka.client.keystore.jks</sslKeystoreLocation>
            <sslKeystorePassword>admin123</sslKeystorePassword>

            <sslTruststoreLocation>/Users/Ibaqu/kafka.client.trustore.jks</sslTruststoreLocation>
            <sslTruststorePassword>admin123</sslTruststorePassword>
            <saslJaasConfig>org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345";</saslJaasConfig>
            <maxPoolSize>100</maxPoolSize>
         </kafkaTransport.init>
         <kafkaTransport.publishMessages>
            <topic>test</topic>
         </kafkaTransport.publishMessages>
      </inSequence>
   </target>
   <description/>
</proxy>

本地主机:9092
org.apache.kafka.common.serialization.StringSerializer
org.apache.kafka.common.serialization.StringSerializer
SASL_SSL
平原
/Users/Ibaqu/kafka.client.keystore.jks
管理员123
/Users/Ibaqu/kafka.client.trustore.jks
管理员123
org.apache.kafka.common.security.plain.PlainLoginModule所需用户名=“admin”密码=“12345”;
100
测试

您可以尝试使用此特定代理来测试您的连接

根据第二条错误消息
*使用客户端机制的意外握手请求普通,启用的机制是[GSSAPI]*
,似乎在ESB端没有正确配置SASLME机制。默认情况下,它配置为GSSAPI Kerberos

我建议您购买最新版本的卡夫卡连接器。您可以找到文档和相关链接

使用Kafka连接器的普通配置示例如下:

<kafkaTransport.init>
        <bootstrapServers>localhost:9092</bootstrapServers>
        <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass>
        <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass>
        <securityProtocol> SASL_PLAINTEXT </securityProtocol>
        <saslMechanism> PLAIN </saslMechanism>
        <saslJaasConfig>org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345"</saslJaasConfig>
        <maxPoolSize>100</maxPoolSize>
</kafkaTransport.init>

本地主机:9092
org.apache.kafka.common.serialization.StringSerializer
org.apache.kafka.common.serialization.StringSerializer
SASL_明文
平原
org.apache.kafka.common.security.plain.PlainLoginModule所需用户名=“admin”密码=“12345”
100
这是使用卡夫卡连接器所需的相关配置。安全协议也可以配置为SASL_SSL

下面是一个这样的代理配置

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="KafkaTransport"
       startOnLoad="true"
       statistics="disable"
       trace="disable"
       transports="http,https">
   <target>
      <inSequence>
         <kafkaTransport.init>
            <bootstrapServers>localhost:9092</bootstrapServers>
            <keySerializerClass>org.apache.kafka.common.serialization.StringSerializer</keySerializerClass>
            <valueSerializerClass>org.apache.kafka.common.serialization.StringSerializer</valueSerializerClass>
            <securityProtocol>SASL_SSL</securityProtocol>
            <saslMechanism>PLAIN</saslMechanism>

            <sslKeystoreLocation>/Users/Ibaqu/kafka.client.keystore.jks</sslKeystoreLocation>
            <sslKeystorePassword>admin123</sslKeystorePassword>

            <sslTruststoreLocation>/Users/Ibaqu/kafka.client.trustore.jks</sslTruststoreLocation>
            <sslTruststorePassword>admin123</sslTruststorePassword>
            <saslJaasConfig>org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345";</saslJaasConfig>
            <maxPoolSize>100</maxPoolSize>
         </kafkaTransport.init>
         <kafkaTransport.publishMessages>
            <topic>test</topic>
         </kafkaTransport.publishMessages>
      </inSequence>
   </target>
   <description/>
</proxy>

本地主机:9092
org.apache.kafka.common.serialization.StringSerializer
org.apache.kafka.common.serialization.StringSerializer
SASL_SSL
平原
/Users/Ibaqu/kafka.client.keystore.jks
管理员123
/Users/Ibaqu/kafka.client.trustore.jks
管理员123
org.apache.kafka.common.security.plain.PlainLoginModule所需用户名=“admin”密码=“12345”;
100
测试
您可以尝试使用此特定代理来测试您的连接