一、官网

  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最新版的更多相关文章

  1. Window上安装kafka

    kafka在windows上的安装.运行 - 进阶者ryan-su - CSDN博客 https://blog.csdn.net/u010283894/article/details/77106159 ...

  2. 如何在CentOS6.4系统上安装KVM虚拟机

    CentOS6.4系统上安装KVM虚拟机   备注:以下操作说明是经过实验验证后总结出来的笔录,有需要的朋友可以进行参考,以下是基于VMware12.5.2虚拟机版本上安装的实验环境. 一.安装KVM ...

  3. 在CentOS 7上安装Kafka

    简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被广泛用于大规模消息数据处理应用. ...

  4. Kafka安装之二 在CentOS 7上安装Kafka

    一.简介 Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这 ...

  5. linux上安装Kafka

    写个一篇kafka文章了.但是那都是针对性能来说的,下面看一下完整的,kafka步骤: 安装单机三个 Broker 的 Kafka 集群,使用 Kafka 集群发布和接收消息.学完本课程,对 Kafk ...

  6. window上安装kafka(单机)

    1.第一步骤,先安装JDK,请参考:https://www.cnblogs.com/xubao/p/10692861.html 2.第二步骤,安装zookeeper,请参考:https://www.c ...

  7. 在CentOS6.8系统上安装MySQL5.7(转)

    mysql-57">如何在CentOS 6.8系统上安装MySQL 5.7? 一.检查系统上是否已经安装MySQL 命令: ? 1 2 3 4 5 [root@localhost ~] ...

  8. Windows上安装Kafka需要注意的几点

    1.不能安装在有空格的路径上 比如:D:\Program Files 2.设置日志路径时,要用"/",不能用Windows上的"\",比如: # A comma ...

  9. 在阿里云ECS(CentOS6.5)上安装mysql

    首先查看服务器上是否已经安装过mysql 命令: rpm -qa | grep mysql 结果: 可以看到ECS上已经有mysql-libs这个包了.这并不影响安装. 查看yum服务器上提供的mys ...

随机推荐

  1. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  2. 《剑指offer》-判断对称二叉树

    题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的.注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的. 思路上还是广度优先搜索(BFS)来做的.BFS是依托于STL的queue作为容 ...

  3. 深度优先搜索(DFS)和广度优先搜索(BFS)

    深度优先搜索(DFS) 广度优先搜索(BFS) 1.介绍 广度优先搜索(BFS)是图的另一种遍历方式,与DFS相对,是以广度优先进行搜索.简言之就是先访问图的顶点,然后广度优先访问其邻接点,然后再依次 ...

  4. jsp+servlet实现最基本的注册登陆功能

    源码和数据库下载地址:http://download.csdn.net/detail/biexiansheng/9759722 1:首先需要设计好数据库和数据表,这里简单截图说明我创建的字段和类型. ...

  5. (第5篇)避免协作冲突--简单易接入的Zookeeper

    摘要: 众所周知,分布式的系统协作服务很难有让人满意的产品.这些协作服务产品很容易陷入一些诸如竞争选择条件或者死锁的陷阱中.那Zookeeper又是怎么解决这个问题的呢? 博主福利 给大家推荐一套ha ...

  6. POJ 1017 Packets【贪心】

    POJ 1017 题意: 一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为 1*1, 2*2, 3*3, 4*4, 5*5, 6*6.  这些产品通常 ...

  7. ActiveMQ的应用实例

    一.部署和启动ActiveMQ 去官网下载:http://activemq.apache.org/ 我下载的是apache-activemq-5.12.0-bin.tar.gz, 解压到本地目录,进入 ...

  8. 最小生成树<lct>

    题解: lct动态维护最小生成树 每次加边时若这两个之间不连通,那么直接连接 如果这两个点联通,那么就找到这条边上的最大值 如果这个大于当前边,就替换掉 但是需要注意的是lct只能维护点,不能维护边 ...

  9. kuangbin 区间dp

    A - Cake 题目大意:给你一个n个顶点(n<=100)的多边形和每两个点连边的消耗,让你求把这个多边形全部切成三角形所需要的最小消耗,如果这个多边形为凹多边形则输出无解. 思路:先求一个凸 ...

  10. js获取、修改url中参数

    //获取url的参数 function getParam(paramKey){ //获取当前URL var url = location.href; //获取要取得的get参数位置 var get = ...