http://orchome.com/kafka/index 中文官网
1. 简介
kafka (官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率。
i. 消息的发布(publish)称作producer,消息的订阅(subscribe)称作consumer,中间的存储阵列称作broker。
ii. 多个broker协同合作,producer、consumer和broker三者之间通过zookeeper来协调请求和转发。
iii. producer产生和推送(push)数据到broker,consumer从broker拉取(pull)数据并进行处理。
iv. broker端不维护数据的消费状态,提升了性能。
v. 直接使用磁盘进行存储,线性读写,速度快:避免了数据在JVM内存和系统内存之间的复制,减少耗性能的创建对象和垃圾回收。
vi. Kafka使用scala编写,可以运行在JVM上。
2. 安装:
a. 首先安装JRE/JDK
Linux安装JDK
b. 下载kafka
进入下载页面:http://kafka.apache.org/downloads.html
选择Binary downloads下载 (Source download需要编译才能使用)
也可以直接在linux终端下载:
- wget -q http://apache.fayea.com/apache-mirror/kafka/0.8.1/kafka_2.8.0-0.8.1.tgz
c. 解压
- tar -xzvf kafka_2.8.0-0.8.1.tgz
- rm kafka_2.8.0-0.8.1.tgz
- cd kafka_2.8.0-0.8.1
目录:
/bin 启动和停止命令等。
/config 配置文件
/libs 类库
d. 修改配置
Kafka默认开启JVM压缩指针,但只是在64位的HotSpot VM受支持,如果安装了32位的HotSpot VM,需要修改/bin/kafka-run-class.sh文件
- vi bin/kafka-run-class.sh
找到如下行:
- KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
去除-XX:+UseCompressedOops参数
3. 启动和停止
启动Zookeeper server:
- bin/zookeeper-server-start.sh config/zookeeper.properties &
&是为了能退出命令行
启动Kafka server:
- bin/kafka-server-start.sh config/server.properties &
停止Kafka server
- bin/kafka-server-stop.sh
停止Zookeeper server:
- bin/zookeeper-server-stop.sh
4. 单机连通性测试
运行producer:
- bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
早版本的Kafka,--broker-list localhost:9092需改为--zookeeper localhost:2181
运行consumer:
- bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
在producer端输入字符串并回车,查看consumer端是否显示。
5. 分布式连通性测试
Zookeeper Server, Kafka Server, Producer都放在服务器server1上,ip地址为192.168.1.10
Consumer放在服务器server2上,ip地址为192.168.1.12。
分别运行server1的producer和server2的consumer,
- bin/kafka-console-producer.sh --broker-list 192.168.1.10:9092 --topic test
- bin/kafka-console-consumer.sh --zookeeper 192.168.1.10:2181 --topic test --from-beginning
在producer的console端输入字符串,consumer报Connection refused错误:
broker, producer和consumer都注册到zookeeper上,producer和consumer的参数明确指定。问题出在broker的配置文件server.properties上:
- # Hostname the broker will bind to. If not set, the server will bind to all interfaces
- #host.name=localhost
host名称没有指定,就是127.0.0.1,consumer去broker拿数据就有问题。设置为192.168.1.10,重启服务就好了。
相关推荐
基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive 简介及核心概念 Linux 环境下 Hive 的安装部署 CLI 和 Beeline 命令行的基本使用 常用 DDL 操作 分区表和分桶表 视图和索引 常用 DML 操作 数据查询详解 三、Spark ...
避免流式传输前言:使用scala和java混编完成,其中也涉及到python脚本来自动生成日志,linux crontab调度工具来定时执行脚本生成实时日志。生成的数据主要是模拟某学习网站学习视频课程的访问量(其中*以“ / class...
kafka_2.12-3.6.0安装包以及linux(centos7)无zookeeper安装kafka_2.12-3.6.0(kraft方式安装)详细文档
zookeeper linux 搭建流程,zookeeper linux 搭建流程zookeeper linux 搭建流程zookeeper linux 搭建流程。
java筑基面试专题系列(二):并发+Netty+JVM+Linux java筑基面试专题系列(一):Tomcat+Mysql+设计模式 分布式数据库面试专题系列:Redis+MongoDB 分布式通讯面试专题系列:ActiveMQ+RabbitMQ+Kafka 分布式限流...
第4课 Zookeeper与Kafka 第5课 Kafka领导选举 第6课 Consumer 第7课 Consumer offset管理 第8课 Consumer的stream接口 第9课 Kafka高性能之道 第10课 Kafka监控工具 第11课 Kafka运维 第12课 Kafka性能测试
超全的Java岗面试题库合集...Kafka Linux MongoDB MyBatis MySQL Netty Nginx RabbitMQ消息中间件 Redis Spring SpringBoot SpringCloud SpringMVC Tomcat Zookeeper 四、2020年JAVA核心面试题库 JAVA核心面试知识整理
Spring原理、微服务架构、Netty与RPC、网络相关、日志相关、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB、Cassandra、设计模式、负载均衡相关、数据库理论、一致性算法讲解、JAVA基础算法、数据结构、加密算法、...
此手册收纳了包括linux系统的安装,以及在linux系统中安装git,jdk,node.js,python,Maven,mysql,redis,tomcat,docker,nginx,rabbtiMq,zookeeper,kafka等软件。该手册还携带了大量的视频链接,绝对的好...
centos 7.4安装kafka 一、 关闭防火墙 二、 禁止selinux ...五、 配置Java环境变量 六、 安装kafka 七、 安装zookeeper 八、 配置kafka 九、 测试kafka 十、 把zookeeper配置成服务 十一、 把kafka配置成服务
Java全能学习面试手册——Java面试题库.zip 01 7道消息队列ActiveMQ面试题!.pdf 02 10道Java高级必备的Netty面试题!.pdf 03 10道Java面试必备的设计模式面试题!.pdf 04 10个Java经典的List面试题!.pdf 05 10个...
内含: JavaOOP面试题 Java集合/泛型面试题 Java异常面试题 Java中的IO与NIO面试题 Java反射面试题 Java序列化面试题 Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 ...ZooKeeper 面试题 ...Linux面试题
互联网大厂面试精华面试题总结,包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...
Elasticsearch、HTML、HTTP、JavaScript、JVM、Kafka、Linux、Memcached、 MongoDB、MyBatis、MySQL、Netty、Nginx、Oracle、Python、RabbitMQ、 React、Redis、Spring、SpringBoot、SpringCloud、SpringMVC、Vue、...