公司需要分布式的JMS,所以研究了Kafka,之前在本地都没有出现问题,但是在服务器上布Kafka的时候发现了消费者无法消费的问题。

  kafka布到一台服务器上面,由于业务原因,producer和kafka放到一台服务器上面,所以producer发送消息的时候bootrstrap.servers只要配置localhost:port就可以了,但是consumer是在另一台服务器上面,修改了bootstrap.servers为kafka服务器的ip和端口发现还是无法消费。

  出现问题1:kakfa的consumer不报错,但是无法消费。

  解决问题1:在broker配置中加入如下配置

  advertised.host.name=xxx.xx.xx.xx
  advertised.listeners=PLAINTEXT://xxx.xx.xx.xx:port

  配置完了之后发现还是无法消费。

  出现问题2:no route to host

  解决问题2:管理kakfa的zookeeper端口号未暴露在外网,将zookeeper的端口设置成外网可以访问。(具体方法百度,楼主也是百度的,linux不太熟练)

  配置完了之后发现还是无法消费,我去了。

  出现问题3:no route to host

  解决问题3:发现了kafka的端口也需要暴露给consumer,我疏忽了,和问题2同样的方法暴露端口。

  配置完了之后发现还是无法消费,我已经崩溃了。

  出现问题4:MDGG,没有报错,什么错都没有。

  解决问题4:哈哈哈,楼主将consumer配置中的group.id换了一个就可以啦。

  终于可以消费了......

  总结:

  1.注意服务器的对外访问的端口是不是可用。

  2.修改broker配置加入advertised等配置信息。

  3.记得修改一下consumer消费者组,如果修改组不行,那么先删除zookeeper的kafka消息记录,然后再还consumer组试试。

  楼主分析修改消费者组就能消费的原因可能是,未修改之前,zookeeper默认还是记得这个消费者组消费的是之前的kafka里面的数据,但是之前的kakfa是本地,所以这个消费者组没有被纠正或者告知你要访问新的kafka服务器,所以在修改为新的消费者组的时候,zookeeper重新记录的消费者的信息,就可以消费新服务器的消息了。

  

  

Kafka的Producer以及Consumer远程调用问题的更多相关文章

  1. Kafka客户端Producer与Consumer

    Kafka客户端Producer与Consumer 一.pom.xml 二.相关配置文件 producer.properties log4j.properties base.properties 三. ...

  2. Kafka的Producer和Consumer源码学习

    先解释下两个概念: high watermark (HW) 它表示已经被commited的最后一个message offset(所谓commited, 应该是ISR中所有replica都已写入),HW ...

  3. SpringBoot整合kafka(实现producer和consumer)

    本文代码使用的是Spring Boot 2.1.8.RELEASE 版本 <parent> <groupId>org.springframework.boot</grou ...

  4. Apache Kafka - KIP-42: Add Producer and Consumer Interceptors

    kafka 0.10.0.0 released   Interceptors的概念应该来自flume 参考,http://blog.csdn.net/xiao_jun_0820/article/det ...

  5. 如何创建Kafka客户端:Avro Producer和Consumer Client

    1.目标 - Kafka客户端 在本文的Kafka客户端中,我们将学习如何使用Kafka API 创建Apache Kafka客户端.有几种方法可以创建Kafka客户端,例如最多一次,至少一次,以及一 ...

  6. springboot kafka集成(实现producer和consumer)

    本文介绍如何在springboot项目中集成kafka收发message. 1.先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 &l ...

  7. 详解RPC远程调用和消息队列MQ的区别

    PC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC框架 知名度较高的有Thrift(FB的).dubbo(阿里的). RP ...

  8. Kafka学习-Producer和Customer

    在上一篇kafka入门的基础之上,本篇主要介绍Kafka的生产者和消费者. Kafka 生产者 kafka Producer发布消息记录到Kakfa集群.生产者是线程安全的,可以在多个线程之间共享生产 ...

  9. Kafka: Producer (0.10.0.0)

    转自:http://www.cnblogs.com/f1194361820/p/6048429.html 通过前面的架构简述,知道了Producer是用来产生消息记录,并将消息以异步的方式发送给指定的 ...

随机推荐

  1. C++ Primer 学习笔记_77_模板与泛型编程 --实例化

    模板与泛型编程 --实例化 引言: 模板是一个蓝图,它本身不是类或函数.编译器使用模板产生指定的类或函数的特定版本号.产生模板的特定类型实例的过程称为实例化. 模板在使用时将进行实例化,类模板在引用实 ...

  2. nyist 82迷宫寻宝(一)(BFS)

    题目连接:http://acm.nyist.net/JudgeOnline/problem.php?pid=82 此题在基础BFS上加入了门和钥匙,要找齐所有钥匙才能开门,所以要对门特殊处理. 1.先 ...

  3. C++内存分配的五种方法

    在C++中,内存分成5个区,他们分别是堆.栈.自由存储区.全局/静态存储区和常量存储区. 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数 ...

  4. 基于注解的Spring MVC

    1.加入�jar 2.web.xml配置: <?xml version="1.0" encoding="UTF-8"?> <web-app v ...

  5. OpenWrt sscanf问题之于MT7620N与AR9341

    在MT7620N平台做好了wifidog的相关调试工作,除了eth驱动.wireless性能问题,其余的都能够基本正常. 依据实际须要要对已完毕的工作在AR9341平台上实现. 事实上也简单.基本功能 ...

  6. Centos7安装Oracle JDK

    查看Linux是否自带的JDK,如有openJDK,则卸载 java -version

  7. asp.net操作xml(增删查改)

    asp.net操作xml 1.xml文档Products.xml <?xml version="1.0" encoding="utf-8"?> &l ...

  8. PHP 日期格式化 参数参考

    a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补零; 如: ...

  9. 什么是MemCache

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...

  10. MFC的初始化过程和消息映射技术

    1.删除#include <windows.h>--win32中的-(使用win32工程编程mfc必须删除) 添加#include <afxwin.h> -- mfc中的- 2 ...