• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua-resty-kafkaerroxxxxcouldnotberesolved(3:Hostnotfound)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

问题:使用 lua-resty-kafka 向 kafka 发送数据失败,报错如下:

slave6 could not be resolved (3: Host not found)

 

配置信息:

lua-resty-kafka 配置

        local broker_list = {
                { host = "xxx.0.0.1", port = 9092 },
                { host = "xxx.0.0.2", port = 9092 },
                { host = "xxx.0.0.3", port = 9092 },
                { host = "xxx.0.0.4", port = 9092 },
        }
        local topic = "test"
        local message = "test"
        local p = kafka_producer:new(broker_list)
        local offset, err = p:send(topic, "key", message)
        ngx.say(err)
        ngx.say(tonumber(offset))

slave6 为远程 kafka 集群中的一台机器的 hostname

查看 kafka 配置文件 /usr/local/kafka_2.10-0.8.1.1/config/server.properties

 

产生问题的原因(瞎猜):

nginx 按照 broker_list 中的地址与 kafka 建连,kafka 返回给 nginx 上报的主机名,nginx 不能解析该主机名,因此报错。

解决办法有两种:

1. 在 kafka 中将  advertised.host.name 配置修改为 外网地址,与 broker_list 中的地址相对应。

具体原理参见这篇博客 http://tech.lede.com/2017/06/29/rd/server/kafkaClient081/ 

2. 使本机可以识别远程 kafka 的hostname

在 lua-resty-kafka  所在机器的 /etc/hosts 添加 slave6 的记录。

添加后仍然不能生效,nginx 没有用 hosts 解析 slave6 ,解决办法:

  1)nginx 增加 本地 DNS server 

   resolver 114.114.114.114 127.0.0.1;

  2) 安装并启用 Dnsmasq 

  参见 http://www.cnblogs.com/DillGao/p/7372014.html


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【Lua】Lua中__index与元表(转)发布时间:2022-07-22
下一篇:
0基础lua学习(一)HelloWorld发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap