公司需要分布式的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. [转]myeclipse 生成JAR包并引入第三方包

    myeclipse 生成JAR包并引入第三方包 我用的是myeclipse8.0 首先用myeclipse生成JAR 一.生成JAR包 1.点选项目右键—>Export 2.Java—>J ...

  2. actionBar兼容2.1及以上版本的做法 .

    正在准备一个项目,需要尊重android design的同时还要做到很好的兼容低版本,于是就先从actionBar开始吧. 1,新建一个android工程startActionBar,minSdkVe ...

  3. js点击打开弹窗

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  4. ASP.net获取当前页面的文件名,参数,域名等方法

    ASP.net后台获取当前页面的文件名 System.IO.Path.GetFileName(Request.Path).ToString(); 获取当前页面文件名,参数,域名等方法 假设当前页完整地 ...

  5. Javascript基础 函数“重载”

    Javascript不像其他编程语言一样具有函数签名(什么是函数签名,简单的说就是说函数的接受参数类型和参数个数,也有人认为返回类型也应该包括.具体概念大家可以到网上查询). 所以Javascript ...

  6. html的空格显示距离问题

    一.使用全角空格 全角空格被解释为汉字,所以不会被被解释为HTML分隔符,可以按照实际的空格数显示. 二.使用空格的替代符号 替代符号就是在需要显示空格的地方加入替代符号,这些符号会被浏览器解释为空格 ...

  7. word-wrap 和 word-break

    一.word-wrap 1.浏览器支持 所有主流浏览器都支持 word-wrap属性 2.定义和用法 word-wrap 属性允许长单词或 URL 地址换行到下一行. 语法 word-wrap: no ...

  8. (转)深入理解 __doPostBack

    在我的随笔<Page,你是怎样处理回发事件的?>中曾提出一个疑问,如何得到引起页面PostBack的控件?通过阅读Page类的源码,误打误撞,无意中看到了__EVENTTARGET和__E ...

  9. Windows命令行(DOS命令)教程–2 (转载) http://arch.pconline.com.cn//pcedu/rookie/basic/10111/15325_1.html

    二.符号约定 为了便于说明格式,这里我们使用了一些符号约定,它们是通用的: C: 盘符 Path 路径 Filename 文件名 .ext 扩展名 Filespec 文件标识符 [ ] 方括号中的项目 ...

  10. c#字符串方法

    作者: 常浩 staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD&qu ...