kafka 非常非常非常难用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fumeboy
V2EX    Kafka

kafka 非常非常非常难用

  •  
  •   fumeboy 2020-03-25 20:44:50 +08:00 8165 次点击
    这是一个创建于 2033 天前的主题,其中的信息可能已经有所发展或是发生改变。

    // 如果我说它不好,应该会有大佬走出来告诉我它应该怎么用,嗯!

    我通过 docker 在本地部署 kafka,之后在容器内部用 console-producer 和 console-consumer 脚本试了一下,功能是正常的,但容器外使用 golang 程序( sarama )连接却无法成功

    zookeeper 中的注册信息是这样的:

    get /brokers/ids/1001 {"listener_scurity_protocol_map":{"PLAINTEXT":"PLAINTEXT"},"endpoints":["PLAINTEXT://localhost:9092"],"jmx_port":-1,"host":"localhost","timestamp":"1585138788130","port":9092,"version":4} 

    docker 部署时使用的参数是:

    KAFKA_ADVERTISED_HOST_NAME: localhost KAFKA_CREATE_TOPICS: "test:1:2" KAFKA_BROKER_ID: 1 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 

    kafka 版本 2.4.0, zookeeper 版本 3.4.13

    sarama 反馈信息:“kafka: client has run out of available brokers to talk to (Is your cluster reachable?)”

    sarama log:

    [sarama] 2020/03/25 20:41:02 client/metadata fetching metadata for all topics from broker 127.0.0.1:9092 [sarama] 2020/03/25 20:41:02 Connected to broker at 127.0.0.1:9092 (unregistered) [sarama] 2020/03/25 20:41:02 client/metadata got error from broker -1 while fetching metadata: read tcp 127.0.0.1:52260->127.0.0.1:9092: read: connection reset by peer [sarama] 2020/03/25 20:41:02 Closed connection to broker 127.0.0.1:9092 [sarama] 2020/03/25 20:41:02 client/metadata no available broker to send metadata request to [sarama] 2020/03/25 20:41:02 client/brokers resurrecting 1 dead seed brokers [sarama] 2020/03/25 20:41:02 Closing Client kafka: client has run out of available brokers to talk to (Is your cluster reachable?) 
    16 条回复    2020-03-26 17:59:29 +08:00
    ysjiang4869
        1
    ysjiang4869  
       2020-03-26 00:09:06 +08:00 via Android   1
    advwrtised host name,去查一下,仅仅因为配置不了解就说难用,也太张口就来了
    nvkou
        2
    nvkou  
       2020-03-26 01:14:21 +08:00 via Android
    此 localhost 非彼 local host ?
    ysmood
        3
    ysmood  
       2020-03-26 01:46:47 +08:00
    我觉是单纯只是设计上不友好,一般系统默认配置就能跑示例代码,而 kafka 非要设置额外的东西。而且在 docker 里还容易泄漏 pid 的 lock 文件。
    所以我做了个 image 来处理这些琐碎的事,感兴趣可以试试 https://github.com/ysmood/kafka-image

    这里注释了为什么我们要这样做 https://github.com/ysmood/kafka-image/blob/e58ee2c466890ba2d86d82a25def0d6828faa382/cmd/run/main.go#L24
    vindurriel
        4
    vindurriel  
       2020-03-26 04:36:55 +08:00 via iPhone
    这里介绍了一种方法 开两个 listeners 以及为什么要这样做 rmoff.net/2018/08/02/kafka-listeners-explained/
    jiezhi
        5
    jiezhi  
       2020-03-26 07:20:43 +08:00 via iPhone   1
    小伙子真会问问题,激发了程序员不服的心理,马上好多人过来教你。
    noqwerty
        6
    noqwerty  
       2020-03-26 07:39:57 +08:00 via Android
    @jiezhi 类似那种“1k 以下的耳机都只能听个响,不服来辩”的贴子
    ArtIsPatrick
        7
    ArtIsPatrick  
       2020-03-26 08:06:10 +08:00 via iPhone
    有勇气,就算我觉得难用,我也不敢来发帖。。。
    locoz
        8
    locoz  
       2020-03-26 08:21:12 +08:00 via Android
    好好好,对对对。下一个。
    fengyj
        9
    fengyj  
       2020-03-26 08:49:47 +08:00 via Android
    @ArtIsPatrick #7
    +1 。是的呢,即使某些项目再难使用,文档再简陋,都不好意思发帖 bb,因为不清楚会引来多少程序员的不服和反驳。
    PS: 个人觉得程序员最喜欢去反驳别人的观点,虽然我也是程序员
    yianing
        10
    yianing  
       2020-03-26 11:12:29 +08:00 via Android
    东西是好东西,难用也是真的
    rrfeng
        11
    rrfeng  
       2020-03-26 11:32:22 +08:00
    虽然楼主这个问题有点简单,但是 kafka 是真的难维护。
    STRRL
        12
    STRRL  
       2020-03-26 11:35:25 +08:00
    你正好踩到了在 docker 里跑 kafka 的一个坑, 参考下这个吧

    https://github.com/wurstmeister/kafka-docker/wiki/Connectivity

    在用一个轮子之前请确保理解了这个轮子, 要不然很容易犯错的
    Mrpasserby
        13
    Mrpasserby  
       2020-03-26 12:44:21 +08:00
    +1,难用的一笔,完全是 Java 工程师岗位创造机器
    whisky221
        14
    whisky221  
       2020-03-26 12:52:48 +08:00
    @jiezhi 笑死,让我想起了
    “3000 预算,不知道买什么耳机,就去发帖 ‘ 3000 已下的耳机听个响 ’ ,然后有一堆人不服来安利’”的梗

    然后收到回复“一万以下听个响”
    Vegetable
        15
    Vegetable  
       2020-03-26 12:56:32 +08:00
    网上得到问题答案的最好办法不是虚心请教,而是发布一个错误的答案等大佬来反驳。
    julyclyde
        16
    julyclyde  
       2020-03-26 17:59:29 +08:00
    说白了这不都怪你用 docker 么
    跟 kafka 有啥关系?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2592 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 07:59 PVG 15:59 LAX 00:59 JFK 03:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86