本地Consumer和Producer无法使用远程Kafka服务器的处理办法
2016-08-27 22:13
471 查看
之前连接公司的的Kafka服务器一直没有没有问题,最近在自己的服务器上装了一个Kafka做学习使用,安装完成后一直无法使用,处理过程可谓上一波三折,下面分享一下我的处理经验,以便帮助有需要的朋友,少走弯路。
1、版本问题:
在apache官网上,有两个kafka0.10的版本一个是scala2.11的一个是2.10的,据scala官网描述,scala2.11主要在jdk6以上使用,scala2.10在主要在java5上使用,所以我们可以根据自己机器的java环境来选择正确的kafka安装使用,在客户端方面,版本最好和服务器保持一直,以免出现不必要的麻烦。
2、防火墙问题:
首先确保kafak服务器的端口在开着,默认端口是9092,可以直接使用service iptables stop关闭防火墙,觉得太暴力的可以只打开对应的端口即可:
打开方式1:vi /etc/sysconfig/iptables 在结尾添加:-A
RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9092-j ACCEPT
打开方式2:kafka的网络协议是基于TCP的二进制网络协议,所以执行下列命令即可
iptables
-I INPUT -p tcp --dport 9092 -j ACCEPT && service iptables save &&service iptables restart
3、kafka服务器配置问题,咱们先看一段kafka的配置描述
#
Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
在我们使用默认配置时hostname和advertise.host.name是被注释掉的,所以系统会调用InetAddress.getCanonicalHostName()方法获取,这个值一般是localhost,如果kafka的消费者或者生产者那到这个localhost只能去本机kafka服务器消费或生产消息,所以当我们在本机使用时没问题,而一旦连的是远程的kafka服务器,使用localhost去消费本机的消息,这肯定是不可以的,感觉kafka这样设计又一点不太方便。所以我们在使用远程kafka服务器时应该把../kafka/config/service.properties
中的advertised.host.name=<远程kafka服务器的ip地址>。
4、Failed
to send messages after 3 tries
我没遇到这个问题,我在一个blog中看到,把链接贴上,帮助有需要的朋友
http://blog.csdn.net/uniquechao/article/details/20073953
1、版本问题:
在apache官网上,有两个kafka0.10的版本一个是scala2.11的一个是2.10的,据scala官网描述,scala2.11主要在jdk6以上使用,scala2.10在主要在java5上使用,所以我们可以根据自己机器的java环境来选择正确的kafka安装使用,在客户端方面,版本最好和服务器保持一直,以免出现不必要的麻烦。
2、防火墙问题:
首先确保kafak服务器的端口在开着,默认端口是9092,可以直接使用service iptables stop关闭防火墙,觉得太暴力的可以只打开对应的端口即可:
打开方式1:vi /etc/sysconfig/iptables 在结尾添加:-A
RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 9092-j ACCEPT
打开方式2:kafka的网络协议是基于TCP的二进制网络协议,所以执行下列命令即可
iptables
-I INPUT -p tcp --dport 9092 -j ACCEPT && service iptables save &&service iptables restart
3、kafka服务器配置问题,咱们先看一段kafka的配置描述
#
Hostname and port the broker will advertise to producers and consumers. If not set,
# it uses the value for "listeners" if configured. Otherwise, it will use the value
# returned from java.net.InetAddress.getCanonicalHostName().
在我们使用默认配置时hostname和advertise.host.name是被注释掉的,所以系统会调用InetAddress.getCanonicalHostName()方法获取,这个值一般是localhost,如果kafka的消费者或者生产者那到这个localhost只能去本机kafka服务器消费或生产消息,所以当我们在本机使用时没问题,而一旦连的是远程的kafka服务器,使用localhost去消费本机的消息,这肯定是不可以的,感觉kafka这样设计又一点不太方便。所以我们在使用远程kafka服务器时应该把../kafka/config/service.properties
中的advertised.host.name=<远程kafka服务器的ip地址>。
4、Failed
to send messages after 3 tries
我没遇到这个问题,我在一个blog中看到,把链接贴上,帮助有需要的朋友
http://blog.csdn.net/uniquechao/article/details/20073953
相关文章推荐
- 本地Consumer和Producer无法使用远程Kafka服务器的处理办法
- 本地电脑与远程服务器直接复制粘贴无法使用
- 远程桌面无法显示本地磁盘的解决办法
- 电脑出现IE已经阻止此站点以不安全的方式使用ActiveX控件,因此该网页无法正确显示”的处理办法
- 使用远程桌面功能登录系统,常常遇到类似“由于帐户限制,你无法登录”的提示的解决办法
- KSoap2 使用 悲催记 ——服务器无法处理请求 ——<soap:Fault>
- 远程桌面超大最大连接数,无法连接服务器解决办法[转载]
- XP系统中无法使用远程登录的解决办法
- Linux下链接文件使用RM无法删除的处理办法
- 远程服务器如何使用本地打印机
- AIX中远程图形界面Xmanager无法登陆的常见处理办法
- "计算机无法访问,您可能没有权限使用网络资源.请与这台服务器的管理员联系"的解决办法
- 远程桌面超大最大连接数,无法连接服务器解决办法
- 无法启动visual studio的localhost web服务器,端口"xxxx"已被使用 解决办法
- vc本地编码程序在日文系统出现乱码无法使用的解决办法
- (已测试)在本地处理模式下将数据库数据源与 ReportViewer Web 服务器控件一起使用
- 远程桌面超大最大连接数,无法连接服务器解决办法[转载]
- WEB程序中使用EXCEL在服务器上无法结束进程的处理
- 可以ping通Windows server 2003服务器,无法使用远程桌面登录的解决方法
- "计算机无法访问,您可能没有权限使用网络资源.请与这台服务器的管理员联系"的解决办法