Kafka 安装教程

Kafka 是什么?

分布式发布订阅消息系统 Kafka 架构设计

官方文档: http://kafka.apache.org/0110/documentation.html#producerapi


名词解释:

  • 【Producer】: 特指消息的生产者
  • 【Consumer】 :特指消息的消费者
  • 【Consumer】 Group :消费者组,可以并行消费Topic中partition的消息
  • 【Broker】:缓存代理,Kafa 集群中的一台或多台服务器统称为 broker。
  • 【Topic】:特指 Kafka 处理的消息源(feeds of messages)的不同分类。
  • 【Partition】:Topic 物理上的分组,一个 topic 可以分为多个 partition,每个 partition 是一个有序的队列。partition 中的每条消息都会被分配一个有序的 id(offset)
  • 【Message】:消息,是通信的基本单位,每个 producer 可以向一个 topic(主题)发布一些消息
  • 【Producers】(是个动词):消息和数据生产者,向 Kafka 的一个 topic 发布消息的过程叫做 producers
  • 【Consumers】(是个动词):消息和数据消费者,订阅 topics 并处理其发布的消息的过程叫做 consumers

Kafka 安装

下载

下载地址: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% %*

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

【Golang语言社区】GO1.9 map并发安全测试

var m sync.Map //全局 func maintest() { // 第一个 YongHuomap := make(map[st...

4778
来自专栏魂祭心

原 canvas绘制clock

4164
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2586
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2822
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6998
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4045
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2665
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4928
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2607

扫码关注云+社区