文档章节

Kafka部署

follitude
 follitude
发布于 2016/09/21 10:11
字数 688
阅读 49
收藏 4

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,重启服务就好了。

本文转载自:http://czj4451.iteye.com/blog/2041096

follitude
粉丝 6
博文 118
码字总数 4956
作品 0
浦东
私信 提问
playbook自动安装kafka集群

一、环境说明 1、服务器信息 2、软件版本信息 二、配置准备 1、编写playbook相关配置文件,先tree看下整目录结构 B、zookeeper的templates文件 C、zookeeper的host文件 D、zookeeper的安装的...

navyaijm2012
08/16
0
0
Knative 实战:基于阿里云 Kafka 实现消息推送 - 知乎

在 Knative 中已经提供了对 Kafka 事件源的支持,那么如何在阿里云上基于 Kafka 实现消息推送,本文给大家解锁这一新的姿势。 背景 消息队列 for Apache Kafka 是阿里云提供的分布式、高吞吐...

我是程序员
10/21
0
0
HyperLedger Fabric 1.2 kafka生产环境部署(11.1)

11.1 Kafka模式简介 上一章介绍的Solo模式只存在一个排序(orderer)服务,是一种中心化结构,一旦排序(orderer)服务出现了问题,整个区块链网络将会崩溃,为了能在正式环境中稳定运行,需要...

灵·龙
2018/09/08
0
0
关于在云服务器部署docker后,部署kafka,外网无法访问解决方式

关于在云服务器部署docker后,部署kafka,外网无法访问解决方式 这里主要测试的华为云服务器,但是我想所有的云服务器应该是大同小异的,其次是外网访问阶段,kafka部署后无法访问,以及在容器中更...

cc芒果
07/18
0
0
在 OKD 和 Kubernetes 上运行 Apache Kafka 集群 - Strimzi

Strimzi提供了一种在各种部署配置中在OpenShift和Kubernetes上运行Apache Kafka集群的方法。 在使用Strimzi项目时,使用Kubernetes和OKD(适用于Red Hat OpenShift)启动和运行Apache Kafka集...

匿名
2018/11/09
401
0

没有更多内容

加载失败,请刷新页面

加载更多

以GPS为例,深入浅出讲解射频接收路径的匹配调试流程

RF接收路径的匹配流程----以GPS为例 调Matching前,至少准备两块板子。 一块完整PCB,有上全部零件 : 一块裸版,完全都没上零件 : 匹配前注意事项—铜管 可能很多人忽略这点,但其实这才是...

demyar
6分钟前
1
0
TI AM570x浮点DSP C66x + ARM Cortex-A15开发板的LCD触摸屏接口、LED指示灯

TL570x-EVM是一款由创龙基于SOM-TL570x核心板设计的开发板,它为用户提供了SOM-TL570x核心板的测试平台,用于快速评估SOM-TL570x核心板的整体性能。 TL570x-EVM底板采用沉金无铅工艺的4层板设...

Tronlong创龙
7分钟前
1
0
docker部署springboot项目

前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfile文件 首先在xshell中连接服务器,然后再创建docker_test,在docker_test下创建jar...

故久呵呵
12分钟前
2
0
MaxCompute问答整理之10月

本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、DataStudio中是否可以通过shell节点调取MaxCompute sql语句? 不...

一肥仔
12分钟前
1
0
GMAT阅读高速解题6招秘籍分享

在做GMAT阅读题时,你是否曾因为文章内容无聊昏昏欲睡?是否看到第二段就神游不知所云?又是否看完问题选择觉得似乎每个都是正确答案?如果上面这些情况曾经发生在你身上,那么你的阅读方式和心...

bole6
14分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部