Kafka 安装和测试

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终端下载:

Shell代码  
  1. wget -q http://apache.fayea.com/apache-mirror/kafka/0.8.1/kafka_2.8.0-0.8.1.tgz

c. 解压

Shell代码  
  1. tar -xzvf kafka_2.8.0-0.8.1.tgz
  2. rm kafka_2.8.0-0.8.1.tgz
  3. 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文件

Shell代码  
  1. vi bin/kafka-run-class.sh

找到如下行:

Sh代码  
  1. 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:

Shell代码  
  1. bin/zookeeper-server-start.sh config/zookeeper.properties &

&是为了能退出命令行

启动Kafka server:

Shell代码  
  1. bin/kafka-server-start.sh config/server.properties &

停止Kafka server

Shell代码  
  1. bin/kafka-server-stop.sh

停止Zookeeper server:

Shell代码  
  1. bin/zookeeper-server-stop.sh

4. 单机连通性测试

运行producer:

Shell代码  
  1. bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

早版本的Kafka,--broker-list localhost:9092需改为--zookeeper localhost:2181

运行consumer:

Shell代码  
  1. 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,

Shell代码  
  1. bin/kafka-console-producer.sh --broker-list 192.168.1.10:9092 --topic test
Shell代码  
  1. 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上:

Properties代码  
  1. # Hostname the broker will bind to. If not set, the server will bind to all interfaces
  2. #host.name=localhost

host名称没有指定,就是127.0.0.1,consumer去broker拿数据就有问题。设置为192.168.1.10,重启服务就好了。

转载blog:http://czj4451.iteye.com/blog/2041096

Kafka_Zookeeper_环境搭建使用相关推荐

  1. Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建

    Anaconda3+python3.7.10+TensorFlow2.3.0+PyQt5环境搭建 一.Anaconda 创建 python3.7环境 1.进入 C:\Users\用户名 目录下,找到 ...

  2. Windows10+Anaconda3+Pycharm环境搭建

    Windows10+Anaconda3+Pycharm环境搭建 一.安装Anaconda3 1.进入 anconda官网,下载Anaconda3 2.安装,选项默认继续安装(可以自行更改安装位置),等 ...

  3. SpringCloud Alibaba微服务实战(一) - 基础环境搭建

    说在前面 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来 ...

  4. 2021年大数据环境搭建(二):分布式环境搭建

    2021大数据领域优质创作博客,带你从入门到精通,该博客每天更新,逐渐完善大数据各个知识体系的文章,帮助大家更高效学习. 有对大数据感兴趣的可以关注微信公众号:三帮大数据 目录 分布式环境搭建 集群规 ...

  5. 2021年大数据Spark(八):环境搭建集群模式 Standalone HA

    环境搭建-Standalone HA 高可用HA Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单 ...

  6. 2021年大数据Spark(六):环境搭建集群模式 Standalone

    目录 环境搭建-Standalone 前言 Standalone 架构 ​​​​​​​集群规划 修改配置并分发 修改slaves ​​​​​​​分发到其他机器 修改spark-env.sh 集群启动和 ...

  7. CentOS7环境搭建使用PhpStorm上传代码

    一.虚拟机介绍 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的.运行在一个完全隔离环境中的完整计算机系统. 虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实win ...

  8. window10 系统上 ecplise 环境搭建

    ecplise 安装需要用到  JDK 环境的搭建以及ecplise 的下载 这两部完成即可 一: JDK环境搭建 到官网上下载JDK并且安装即可(下载的时候注意选择Accept License Ag ...

  9. centOS7 LNMP+phpmyadmin环境搭建 第三篇phpmyadmin安装

    这篇文章主要介绍了CentOS7 LNMP+phpmyadmin环境搭建,第三篇phpmyadmin安装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 之前我们已经安装了lnmp的环境,现在让我们 ...

最新文章

  1. 深入理解Java:内省(Introspector)
  2. git学习资料整理(知乎搜集的)
  3. Java多线程Queue_Java多线程-BlockingQueue-ArrayBlockingQueue-LinkedBlockingQueue
  4. 新鲜出炉的canvas~
  5. Django博客项目(一)—— 注册和登录页面
  6. Word怎么删除页眉页尾
  7. 大数据技术有什么特点
  8. pandas打印某一列_零基础学Python--不得不说的Pandas小技巧
  9. iPhone X 的适配
  10. 无意中学到的,感谢通用
  11. SQL 为什么动不动就 N 百行以 K 计
  12. 基于WeLink开发的智慧云OA系统获奖啦!
  13. windows store下载_年度付费软件排行榜这10款软件,你用过5款以上,就算效率达人!Windows平台...
  14. PSO粒子群算法优化BP神经网络(PSO-BPNN)回归预测MATLAB代码
  15. LeetCode解题源代码链接集锦一
  16. 振弦传感器及核心VM系列振弦采集模块
  17. java 公历 农历_Java给定公历日期计算相应农历/阴历日期
  18. C#毕业设计——基于C#+asp.net+sqlserver在线论文提交系统设计与实现(毕业论文+程序源码)——在线论文提交系统
  19. Node 之父:Node 失误太多无力回天,Deno 前景明朗
  20. hp rx8640上安装rhel 4.6

热门文章

  1. 3500简介_古巴比伦,公元前3500年建立文明!四大文明之首为何被灭?
  2. 【干货】手把手教你如何使用Charles抓包
  3. golang日志服务器_golang 写日志到syslog
  4. python getattr用法_python自省函数getattr的用法
  5. 计算机接口及应用技术,计算机接口技术及应用 第9讲 控制网络技术(2 现场总线).pdf...
  6. quicksearch连接oracle,dos命令下连接oracle数据库表
  7. some ubuntu shell commands
  8. AT1 one-dimensional objects
  9. 介绍一种在Xcode中删除一整行代码的快捷键设置,
  10. pytorch dropout代码解读