kafka
https://blog.csdn.net/lingbo229/article/details/80761778
kafka学习系列
http://kafka.apache.org/quickstart
https://blog.csdn.net/feelwing1314/article/details/81206506
https://www.cnblogs.com/runnerjack/p/8592036.html
https://www.cnblogs.com/justuntil/p/8033792.html
https://blog.csdn.net/gscsd_t/article/details/80089269
http://blog.51cto.com/xpleaf/2090847
http://www.cnblogs.com/qizhelongdeyang/p/7341954.html
原理
install
关闭防火墙
# service iptables status
# service iptables stop # 关闭防火墙服务
# chkconfig iptables off # 设置为开机不启动
# chkconfig --list # 列出所有的系统服务
http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz
- 安装jdk 设置环境变量 编辑/etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile :让配置文件生效
jdk最好用最新的版本,不然后面运行会报错
- 下载kafka
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.0.0/kafka_2.12-2.0.0.tgz
- 解压,目录结构如下:
[root@ kafka_2.12]# tar -zxvf kafka_2.12.tar -C temp/
[root@ kafka_2.12]# pwd
/usr/local/kafka_2.12
[root@ kafka_2.12]# ls
bin config libs LICENSE NOTICE site-docs
bin:包含Kafka运行的所有脚本,如:start/stop Zookeeper,start/stop Kafka
libs:Kafka运行的依赖库
config:zookeeper,Logger,Kafka等相关配置文件
sit-docs:Kafka相关文档
4.添加到环境变量 ~/.bash_profile
export KAFKA_HOME=/usr/local/kafka_2.12
export PATH=$PATH:$KAFKA_HOME/bin
source ~/.bash_profile
5.配置相关参数:$KAFKA_HOME/config/server.properties
broker.id=10
log.dirs=/home/uplooking/data/kafka [kafka数据的存放目录]
zookeeper.connect=uplooking01:2181,uplooking02:2181,uplooking03:2181
kafka实例broker监听默认端口9092,配置listeners=PLAINTEXT://:9092
# 下面两个一定要配置,不然在生产消息时会出问题 localhost只能在本机测试,如果写java运行需要改成具体的ip
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
6.启动kafka自带的zookeeper
- 制作zk的配置文件
将zookeeper.properties 中的信息筛选出来并将筛选出来的数据给一个新建的文件zk.properties
并将带有#注释的代码去掉
cat zookeeper.properties |grep -v '#' >> zk.properties
- 启动zk zookeeper-server-start
kafka可视化管理工具ZK_UI
http://www.cnblogs.com/smail-bao/p/7794636.html
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zk.properties &
bin/zookeeper-server-start.sh config/zk.properties &
# 查看borker
bin/zookeeper-shell.sh localhost:2181
进入后
#查看状态
ls /brokers/ids
#删除Broker
rmr /brokers
jps查看启动
zookeeper只能启动单数,比如1台 、3台、7台等等,不能偶数台,偶数台的话假设有两台,那么只有一台机器再运行,因为如果是偶数的话,选举出来的管理者有可能两个borker得到的票数相同,奇数的话就不会出现这个情况
7 启动kafka
- 制作kafka配置文件server-kfk.properties 去掉#注释的代码
cat config/server.properties |grep -v '#' >> server-kfk1.properties
- 启动kafka kafka-server-start
$KAFKA_HOME/bin/kafka-server-start.sh [-daemon] $KAFKA_HOME/config/server-kfk1.properties
-daemon 可选,表示后台启动kafka服务
bin/kafka-server-start.sh -daemon config/server-kfk1.properties
bin/kafka-server-start.sh config/server.properties > kafka.log 2>&1 &
8 创建主题topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_name(主题名)
创建topic时,replication-factor个数不能超过broker的个数
- 查看主题
bin/kafka-topics.sh --list --zookeeper localhost:2181
bin/kafka-topics.sh --describe topic_name --zookeeper localhost:2181
看到这个topic_name就说明创建成功了
9 发布消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic_name
端口号为9092,可以在server.properties修改此端口号 listeners
查看端口号命令
netstat -ant |grep 9092
10 启动消费者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_name
# 查看之前的消息 可开几个终端查看效果
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic_name --from-beginning
java API使用
https://www.cnblogs.com/liuming1992/p/6432506.html
https://www.cnblogs.com/qizhelongdeyang/p/7407273.html
http://blog.51cto.com/xpleaf/2090936
https://blog.csdn.net/wangshuminjava/article/details/80238161
https://blog.csdn.net/feelwing1314/article/details/81206506
重试
https://blog.csdn.net/feelwing1314/article/details/81206506
https://blog.csdn.net/huanggang028/article/details/49079431
https://blog.csdn.net/u012050154/article/details/78592854
扩展
https://blog.csdn.net/Trigl/article/details/70237981
https://blog.csdn.net/m0_37739193/article/category/6995722
https://blog.csdn.net/huaidandaidai1/article/details/80875088
输入输出
https://blog.csdn.net/alphags/article/details/53157499