libkafka 由于目标计算机积极拒绝,无法连接

在配置kafka服务器后,使用libkafka去连接远程(i.e. not localhost)的broker,总是失败,报错如下

rdkafka_example -P -b 192.168.150.229:9092,192.168.150.229:9093 -t test
% Created producer rdkafka#producer-1
LOG-3-FAIL: 192.168.150.229:9092/bootstrap: Connect to ipv4#192.168.150.229:9092
 failed: 由于目标计算机积极拒绝,无法连接。


原因如下:

你的config/server.properties需要明确写出listeners的ip地址,而不能用localhost或者127.0.0.1代替

listeners=PLAINTEXT://192.168.150.229:9092


# The port the socket server listens on
#port=9092


# Hostname the broker will bind to. If not set, the server will bind to all interfaces
#host.name=localhost

你要么设置listteners要么设置port、host.name,二选一。

如果你只是本机使用,没有准备让其他机器的客户端连接过来,你可以用localhost或者127.0.0.1代替

如果你在搭建集群,一定要设置listteners或host.name为明确的ip

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要发送心跳请求,你需要使用libkafka提供的API来操作。以下是一个简单的示例代码,展示了如何使用libkafka发送心跳请求: ```c #include <libkafka/libkafka.h> int main() { // 创建Kafka客户端实例 kafka_client_t *client = kafka_client_new(); // 配置Kafka集群的地址和端口 kafka_client_set_brokers(client, "localhost:9092"); // 配置消费者组和消费者ID kafka_client_set_group_id(client, "my-group"); kafka_client_set_client_id(client, "my-consumer"); // 连接Kafka集群 kafka_client_connect(client); // 发送心跳请求 kafka_client_heartbeat(client); // 等待心跳响应 kafka_response_t *response = kafka_client_recv_response(client); // 处理心跳响应 if (response->error_code == KAFKA_RESPONSE_NONE) { printf("Heartbeat successfully sent.\n"); } else { printf("Failed to send heartbeat. Error code: %d\n", response->error_code); } // 释放资源 kafka_response_destroy(response); kafka_client_destroy(client); return 0; } ``` 在上述代码中,首先创建了一个Kafka客户端实例,并配置了Kafka集群的地址、消费者组、消费者ID等信息。然后通过`kafka_client_connect`函数连接Kafka集群。接下来调用`kafka_client_heartbeat`函数发送心跳请求,并使用`kafka_client_recv_response`函数等待心跳响应。最后根据响应中的错误码来判断心跳请求是否发送成功。 请注意,上述代码只是一个简单示例,实际使用时需要根据具体需求进行适当的调整和错误处理。同时,还需要在代码中添加消费者的订阅、消息处理等逻辑来完整实现一个消费者应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值