更新时间:2023-05-06 GMT+08:00

不使用SASL证书连接

本文主要介绍在命令行模式下不使用SASL证书连接Kafka实例的操作,其中包含内网访问和公网访问两种连接场景。

在不使用SASL证书的场景下,通过内网访问和通过公网访问,仅涉及连接IP和端口不一致,其他操作步骤是一样的。内网访问的连接端口为9092,公网访问的连接端口为9094。

文中仅介绍公网访问的连接示例,如果使用内网访问时,替换相应的连接地址即可。

Kafka实例的每个代理允许客户端单IP连接的个数默认为1000个,如果超过了,会出现连接失败问题。您可以通过修改配置参数来修改单IP的连接数。

前提条件

  • 已配置正确的安全组,安全组规则请参考表1
  • 已获取连接Kafka实例的地址。
    • 如果是使用内网通过同一个VPC访问,实例端口为9092,实例连接地址获取如下图。
      图1 使用内网通过同一个VPC访问Kafka实例的连接地址(实例未开启SASL)
    • 如果是公网访问,实例端口为9094,实例连接地址获取如下图。
      图2 公网访问Kafka实例的连接地址(实例未开启SASL)
  • 如果Kafka实例未开启自动创建Topic功能,获取Topic名称。

    在实例的Topic管理页签中获取(可选)步骤三:创建Topic中创建的Topic名称。

    图3 查看Topic名称
  • 已购买ECS,并完成JDK安装、环境变量配置以及Kafka开源客户端下载,具体操作请参考准备环境

生产消息

进入Kafka客户端文件的“/bin”目录下,执行如下命令进行生产消息:

./kafka-console-producer.sh --broker-list ${连接地址} --topic ${Topic名称}

参数说明如下:

  • 连接地址:从前提条件中获取的连接地址。
  • Topic名称:Kafka实例下创建的Topic名称。

示例如下,“10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094”为获取的Kafka实例公网连接地址。

执行完命令后,输入需要生产的消息内容,按“Enter”发送消息到Kafka实例,输入的每一行内容都将作为一条消息发送到Kafka实例。

[root@ecs-kafka bin]# ./kafka-console-producer.sh --broker-list 10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094  --topic topic-demo
>Hello
>DMS
>Kafka!
>^C[root@ecs-kafka bin]# 

如需停止生产使用Ctrl+C命令退出。

消费消息

执行如下命令进行消费消息:

./kafka-console-consumer.sh --bootstrap-server ${连接地址} --topic ${Topic名称} --group ${消费组名称} --from-beginning

参数说明如下:

  • 连接地址:从前提条件中获取的连接地址。
  • Topic名称:Kafka实例下创建的Topic名称。
  • 消费组名称:根据您的业务需求,设定消费组名称。如果已经在配置文件中指定了消费组名称,请确保命令行中的消费组名称与配置文件中的相同,否则可能消费失败。消费组名称开头包含特殊字符,例如下划线“_”、#号“#”时,监控数据无法展示。

示例如下:

[root@ecs-kafka bin]#  ./kafka-console-consumer.sh --bootstrap-server 10.3.196.45:9094,10.78.42.127:9094,10.4.49.103:9094 --topic topic-demo --group order-test --from-beginning
Kafka!
DMS
Hello
^CProcessed a total of 3 messages
[root@ecs-kafka bin]# 

如需停止消费使用Ctrl+C命令退出。

后续步骤

您可以通过设置监控指标的告警规格,当实例、节点、队列等有异常时,可以及时接收异常信息。

步骤五:配置必须的监控告警