公司需要分布式的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. Git冲突解决方案

    Git冲突解决方案 1.  在代码提交时,先更新,若有冲突.先解决冲突.若提交之后在review时才发现无法合并代码时有冲突,需要abandon此次提交的代码. 2.  解决冲突的基本做法,保存本地代 ...

  2. unity3d 学习笔记(一)

    操作:按下shit 点击坐标轴中心 切换透视图 动画烘焙的概念:相当于把原来的控制器动画或者IK(骨骼)动画所有塌陷为逐帧动画,导出的时候必须选这一项 着色器:从技术的角度来看,着色器是渲染器的一个部 ...

  3. 如何判断Linux load的值是否过高

    1.先使用top看下CPU占用高的进程,找出进程的进程ID(pid): 查看方法:top 2.根据进程ID(pid)查看是进程的那些线程占用CPU高. 查看方法:top -Hp pid 3.使用pst ...

  4. IIS注册asp.net 4.0

    如果你是先装的VS后添加的IIS功能,那么你需要在ISS中注册NET Framework: 32位的Windows:------------------------------------------ ...

  5. 在cygwin下编译c语言

    #include <stdio.h> int main (void) { printf("Hello World!\n"); ; } 1.保存到cygwin工作目录下 ...

  6. JavaScript基础学习

    什么是变量! 什么是变量?从字面上看,变量是可变的量;从编程角度讲,变量是用于储存某种/某些数值的存储器.我们可以把变量看做一个盒子, 为了区分盒子,可以用BOX1,BOX2等名称代表不同盒子,BOX ...

  7. LNMP优化

        LNMP优化 LNMP优化从系统安全,系统资源占用率,及web服务并发负载这三个方面体现,并   且主要体现在web服务并发负载这一方面.     1:首先进行linux优化加固  Linux ...

  8. PHP中PDO DEMO

    PDO => PHP DATABASE OBJECT 1.Select $dsn = "mysql:host=127.0.0.1;port=3306;dbname=dbname&quo ...

  9. 2 MD5加密 java实现

    百度百科对MD5的说明是: Message Digest Algorithm MD5(中文名为消息摘要算法第 五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护. MD5即Mess ...

  10. Qt sqlite

    原文地址:http://blog.csdn.net/NewBee520/article/details/8247236QSqlDatabase类实现了数据库连接的操作 QSqlQuery类用来执行SQ ...