在Centos6或者7上安装Kafka最新版
一、官网
http://kafka.apache.org/downloads.html
二、Kafka简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
类似的组件还有:Azure的ServiceBus、RabbitMQ等,据网上描述,Kafka比RabbitMQ性能强。
三、安装
1、安装Java
yum install java-1.8.-openjdk.x86_64
2、配置JAVA环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.-8.b10.el7_5.x86_64/jre
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
说明:配置时注意JAVA_HOME后面要加到/jre,这个比较特殊。另外,红色区域可以换成您对应的安装版本的路径。
3、下载Kafka:http://kafka.apache.org/downloads.html
cd /opt
wget http://mirrors.hust.edu.cn/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
4、解压并进入目录
tar -zvxf ./kafka_2.-1.1..tgz
cd kafka_2.-1.1.
5、启动Zookeeper
使用安装包中的脚本启动单节点Zookeeper 实例:(参数-daemon表示后台运行)
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
6、启动Kafka服务
bin/kafka-server-start.sh config/server.properties

7、创建一个测试的Topic
bin/kafka-topics.sh --create --zookeeper localhost: --replication-factor --partitions --topic test
查看Topic:
bin/kafka-topics.sh --list --zookeeper localhost:
8、产生消息
bin/kafka-console-producer.sh --broker-list localhost: --topic test
>hello xingzhu
>hello sindrol
9、消费消息
bin/kafka-console-consumer.sh --zookeeper localhost: --topic test --from-beginning
xingzhu
sindrol
好了,到此,单台Kafka已经安装完成。
四、集群配置
1、单机多broker 集群配置
利用单节点部署多个broker。 不同的broker 设置不同的 id,监听端口及日志目录。 例如:
cp config/server.properties config/server-.properties
编辑配置:
config/server-.properties:
broker.id=
port=
log.dir=/tmp/kafka-logs-
启动Kafka服务:
bin/kafka-server-start.sh config/server-.properties &
启动多个服务后,可以参考第三节内容,产生和消费消息。
2、多机多broker 集群配置
分别在多个节点按上述方式安装Kafka,配置启动多个Zookeeper 实例。 例如: 在10.4.253.22,10.4.253.23,10.4.253.24三台机器部署,Zookeeper配置如下:
initLimit=
syncLimit=
server.=10.4.253.22::
server.=10.4.253.23::
server.=10.4.253.24::
分别配置多个机器上的Kafka服务 设置不同的broke id,zookeeper.connect设置如下:
zookeeper.connect=10.4.253.22:,10.4.253.23:,10.4.253.24:
启动Zookeeper与Kafka服务,按上文方式产生和消费消息,验证集群功能。
五、外网访问
安装完成并启动后,如果想要外网通过外网IP访问,需要在config/service.properites中添加如下修改:
advertised.listeners=PLAINTEXT://xxx.xxx.xxx.xxx:port

修改完成后,重新启动Kafka服务。
六、C#调用
引入库:kafka-net(https://github.com/Jroland/kafka-net)
1、模拟消费端
using KafkaNet;
using KafkaNet.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace KafkaClientDemo.Consumer
{
class Program
{
static void Main(string[] args)
{
var options = new KafkaOptions(new Uri("http://42.159.154.132:9092"));
var router = new BrokerRouter(options); var consumer = new KafkaNet.Consumer(new ConsumerOptions("test", router)); Console.WriteLine("waiting ...");
//Consume returns a blocking IEnumerable (ie: never ending stream)
foreach (var message in consumer.Consume())
{
Console.WriteLine("Response: P{0},O{1} : {2}", message.Meta.PartitionId, message.Meta.Offset, Encoding.UTF8.GetString(message.Value, , message.Value.Length));
}
}
}
}
2、模拟消息生产端
using KafkaNet;
using KafkaNet.Model;
using KafkaNet.Protocol;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace KafkaClientDemo
{
class Program
{
static void Main(string[] args)
{
var options = new KafkaOptions(new Uri("http://42.159.154.132:9092"));
var router = new BrokerRouter(options);
var client = new Producer(router);
//var topic = client.GetTopic("test"); using (client)
{
while (true)
{
Console.Write(">");
var text = Console.ReadLine();
client.SendMessageAsync("testTopic", new[] { new Message(text, "key_" + DateTime.Now.Ticks) }).Wait(); if (text == "exit")
break;
}
}
}
}
}
运行效果:

我在部署和学习时,参考了https://www.mtyun.com/library/how-to-install-kafka-on-centos7文章,非常感谢原作者分享。
在Centos6或者7上安装Kafka最新版的更多相关文章
- Window上安装kafka
kafka在windows上的安装.运行 - 进阶者ryan-su - CSDN博客 https://blog.csdn.net/u010283894/article/details/77106159 ...
- 如何在CentOS6.4系统上安装KVM虚拟机
CentOS6.4系统上安装KVM虚拟机 备注:以下操作说明是经过实验验证后总结出来的笔录,有需要的朋友可以进行参考,以下是基于VMware12.5.2虚拟机版本上安装的实验环境. 一.安装KVM ...
- 在CentOS 7上安装Kafka
简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被广泛用于大规模消息数据处理应用. ...
- Kafka安装之二 在CentOS 7上安装Kafka
一.简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这 ...
- linux上安装Kafka
写个一篇kafka文章了.但是那都是针对性能来说的,下面看一下完整的,kafka步骤: 安装单机三个 Broker 的 Kafka 集群,使用 Kafka 集群发布和接收消息.学完本课程,对 Kafk ...
- window上安装kafka(单机)
1.第一步骤,先安装JDK,请参考:https://www.cnblogs.com/xubao/p/10692861.html 2.第二步骤,安装zookeeper,请参考:https://www.c ...
- 在CentOS6.8系统上安装MySQL5.7(转)
mysql-57">如何在CentOS 6.8系统上安装MySQL 5.7? 一.检查系统上是否已经安装MySQL 命令: ? 1 2 3 4 5 [root@localhost ~] ...
- Windows上安装Kafka需要注意的几点
1.不能安装在有空格的路径上 比如:D:\Program Files 2.设置日志路径时,要用"/",不能用Windows上的"\",比如: # A comma ...
- 在阿里云ECS(CentOS6.5)上安装mysql
首先查看服务器上是否已经安装过mysql 命令: rpm -qa | grep mysql 结果: 可以看到ECS上已经有mysql-libs这个包了.这并不影响安装. 查看yum服务器上提供的mys ...
随机推荐
- splay好板子
找到一份比较好的板子,链接https://blog.csdn.net/crazy_ac/article/details/8034190 #include<cstdio> #include& ...
- Webservice返回json数据格式
问题: 我将结果内容用字符串拼接成Json数据并返回的时候,会在结果前面添加xml头部,结果如下. <span ><string xmlns="http://tempuri ...
- Linux proc目录下 几个系统文件下的各项参数 (cpuinfo,uptime,meminfo,stat,loadavg)
参考链接: Linux 操作系统内核基本实验.pdf http://max.book118.com/html/2015/0919/25787869.shtm Linux下cpuinfo文件各项参数的详 ...
- python界面Tkinter编程(tkMessageBox对话框使用)
python界面Tkinter编程(tkMessageBox对话框使用) 转载 https://blog.csdn.net/m_buddy/article/details/80105154 1 ...
- 在python3下使用requests,xpath,urllib爬取不得姐网站相关视频爬虫源代码
#coding=utf-8 from lxml import etreeimport requestsimport urllibimport os # 获取url的html等内容def getHtml ...
- QT学习之菜单栏与工具栏
QT学习之菜单栏与工具栏 目录 简单菜单栏 多级菜单栏 上下菜单栏 工具栏 简单菜单栏 程序示例 from PyQt5.QtWidgets import QApplication, QMainWind ...
- django-访问控制
django自带的用户认证系统提供了访问控制的的功能. 1.只允许登录的用户登录 django的用户可分为两类,一是可认证的用户,也就是在django.contrib.auth.models. ...
- AGC 018E.Sightseeing Plan(组合 DP)
题目链接 \(Description\) 给定三个不相交的矩形\(A(X1,Y1)-(X2,Y2),B(X3,Y3)-(X4,Y4),C(X5,Y5)-(X6,Y6)\),求 从第一个矩形中某点\(a ...
- swoole深入学习 1. swoole初始
0. 前言 swoole在PHP圈火了这么久,从2年前我用node写socket聊天服务器的时候就火了,那时候,经常有类似的文章php+swoole完爆nodejs之类的文章来吸引眼球,先不说它的好与 ...
- 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别(转)
Activity.finish()Call this when your activity is done and should be closed. 在你的activity动作完成的时候,或者Act ...