分布式发布订阅消息系统 Kafka 架构设计
官方文档: http://kafka.apache.org/0110/documentation.html#producerapi
名词解释:
下载地址:http://kafka.apache.org/downloads
教程地址:https://kafka.apache.org/quickstart
tar -zxvf kafka_2.12-1.0.0.tgz
cd kafka_2.11-1.0.0
a.修改监听kafka地址
server.properties
# 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().
# listener address
advertised.listeners=PLAINTEXT://host_name:port:9092 # 修改这里
修改为:
# 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().
listeners=PLAINTEXT:///123.207.119.211:9092
<div style="color:red">注意:</div> your.host.name 为kafka安装的服务器ip或域名地址。(不设置外网无法访问,开始的时候认为这个是监听外网的地址,理解错误)
b.修改zookeeper地址
server.properties
############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.
zookeeper.connect=localhost:2181 #修改这里
# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000
注意:若机器内存较小,则需要修改配置文件
kafka-server-start.sh
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
fi
bin/kafka-server-start.sh config/server.properties
cd /etc/rc.d/init.d/
touch kafka
chmod +x kafka
vi kafka
编辑文件内容
#!/bin/bash
#chkconfig:2345 20 90
#description:kafka
#processname:kafka
#export JAVA_HOME=//usr/lib/java/jdk1.8.0_151
case $1 in
start) su root /usr/local/app/kafka_2.12-1.0.0/bin/kafka-server-start.sh /usr/local/app/kafka_2.12-1.0.0/config/server.properties;;
stop) su root /usr/local/app/kafka_2.12-1.0.0/bin/kafka-server-stop.sh stop;;
create) su root /usr/local/app/kafka_2.12-1.0.0/bin/bin/kafka-topics.sh create;;
*) echo "require start|stop|create" ;;
esac
chkconfig --add kafka
chkconfig --list
1.启动的时候无法找到主类
在配置好kafka的server.properties文件后,cmd进入命令窗口输入命令:
.\bin\windows\kafka-server-start.bat config\server.properties
提示错误:错误: 找不到或无法加载主类 FilesJavajdk1.7.0_80lib;C:Program
解决方式如下:在kafka安装目录中找到binwindows目录中的kafka-run-class.bat找到142行为%CLASSPATH%加上双引号
修改前:
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
修改后:
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*