Windows下搭建kafka运维条件,安装与运用入门

 

.net windows 卡夫卡 安装与使用入门(入门笔记),.netkafka

总体解决方案请参考: 

Setting Up and Running Apache Kafka on Windows
OS

 

【备注:kafka相关的入门,使用demo资料来源于互连网!本文是依附实际实施成功安装使用经验的计算,:)】

 

完全化解方案请参考:

Setting Up and Running Apache Kafka on Windows OS

在条件搭建进度中相见多少个难点,在此处先列出来,以利于查询:

1. \Java\jre7\lib\ext\QTJava.zip was unexpected at this time.
Process exited

杀鸡取蛋方案:

1.壹 右键点击“笔者的Computer” -> “高等系统设置” -> “情况变量” 

一.2查看CLASSPATH的值里有未有隐含QTJava.zip的路线,假使有的话,把相应的门径删除,难题就消除了。

 

2. Missing `server’ JVM (Java\jre7\bin\server\jvm­­.dll.)

化解方案:

2.1. 拷贝C:\Program Files\Java\jdk1.6.0\jre\bin\server

2.2 粘贴到 C:\Program Files\Java\jre1.6.0\bin

 

完整消除方案请参见:

Setting Up and Running Apache Kafka on Windows
OS

 

在处境搭建进度中遇见四个难题,在此间先列出来,以便于查询:

1. \Java\jre7\lib\ext\QTJava.zip was unexpected at this time.
Process exited 化解方案: 1.壹 右键点击“作者的Computer” ->
“高档系统设置” -> “情形变量” 一.二查看CLASSPATH的值里有未有隐含QTJava.zip的门径,若是有的话,把相应的门路删除,难点就消除了。
  贰. Missing `server’ JVM (Java\jre7\bin\server\jvm­­.dll.)
消除方案: 2.1. 拷贝C:\Program
Files\Java\jdk1.6.0\jre\bin\server 2.2 粘贴到 C:\Program
Files\Java\jre1.6.0\bin  

搭建遭遇

亚洲必赢官网 ,在意况搭建进度中碰到多个难题,在此地先列出来,以福利查询:

1. \Java\jre7\lib\ext\QTJava.zip was
unexpected at this time. Process exited

消除方案:

一.一 右键点击“作者的Computer” -> “高端系统安装” -> “情况变量”

一.二查看CLASSPATH的值里有未有隐含QTJava.zip的渠道,假若有的话,把相应的路线删除,难题就一蹴而就了。

 

2. Missing `server’ JVM
(Java\jre7\bin\server\jvm­­.dll.)

减轻方案:

2.1. 拷贝C:\Program Files\Java\jdk1.6.0\jre\bin\server

2.2 粘贴到 C:\Program Files\Java\jre1.6.0\bin

 

搭建蒙受

1. 安装JDK

一.1安装文件:
JRE.
壹.2 安装到位后必要增添以下的境况变量(右键点击“作者的Computer” ->
“高等系统安装” -> “情形变量” ):

    • JAVA_HOME: C:\Program Files
      (x86)\Java\jre1.8.0_60(那么些是默许安装路线,要是设置进度中更换了安装目录,把改造后的路线填上就行了)

    • Windows下搭建kafka运维条件,安装与运用入门。PATH: 在存活的值前边增添”; %JAVA_HOME%\bin”

1.三 张开cmd运行 “java -version” 查看当前系统Java的本子:

亚洲必赢官网 1

 

搭建境况

1. 安装JDK

一.1安装文件:
JRE.
一.2 安装达成后供给加上以下的境况变量(右键点击“我的Computer” ->
“高档系统安装” -> “情形变量” ):

    • JAVA_HOME: C:\Program Files
      (x86)\Java\jre1.8.0_60(那些是私下认可安装路线,假如设置进度中更改了设置目录,把改造后的路径填上就行了)

    • PATH: 在存活的值前边增添”; %JAVA_HOME%\bin”

壹.三 展开cmd运营 “java -version” 查看当前系统Java的版本:

亚洲必赢官网 2
 

2. 安装Zookeeper

卡夫卡的运作重视于Zookeeper,所以在运维卡夫卡在此之前大家需求设置并运营Zookeeper

二.一 下载安装文件: 

贰.二 解压文件(本文解压到 G:\zookeeper-3.4.8)

2.3 打开G:\zookeeper-3.4.8\conf,把zoo_sample.cfg重命名成zoo.cfg

2.四 从文本编辑器里展开zoo.cfg

2.5 把dataDir的值改成“:\zookeeper-3.4.8\data”

二.陆 增加如下系统变量:

    • ZOOKEEPER_HOME: G:\zookeeper-3.4.8
    • Path: 在现成的值前面增多 “;%ZOOKEEPEHummerH二_HOME%\bin;”

贰.7 运营Zookeeper: 张开cmd然后实践

zkserver 

1. 安装JDK

一.一安装文件:
JRE.
1.二 安装完结后要求足够以下的情状变量(右键点击“作者的Computer” ->
“高端系统设置” -> “情况变量” ):

    • JAVA_HOME: C:\Program Files
      (x86)\Java\jre1.8.0_60(这几个是暗许安装路线,若是设置进度中改换了安装目录,把改换后的门路填上就行了)

    • PATH: 在现有的值前边增多”; %JAVA_HOME%\bin”

一.3 展开cmd运营 “java -version” 查看当前系统Java的本子:

亚洲必赢官网 3

 

2. 安装Zookeeper

卡夫卡的周转正视于Zookeeper,所以在运作卡夫卡以前大家需求安装并运维Zookeeper

2.一 下载安装文件:  二.2解压文件(本文解压到 G:\zookeeper-3.4.8) 2.3
打开G:\zookeeper-3.4.8\conf,把zoo_sample.cfg重命名成zoo.cfg 二.四从文本编辑器里展开zoo.cfg 二.⑤把dataDir的值改成“:\zookeeper-3.4.8\data” 二.陆 增加如下系统变量:

    • ZOOKEEPER_HOME: G:\zookeeper-3.4.8
    • Path: 在存活的值后边增多 “;%ZOOKEEPELAND_HOME%\bin;”

2.7 运转Zookeeper: 张开cmd然后实践

zkserver

三. 安装并运营卡夫卡

3.一 下载安装文件: 

三.二 解压文件(本文解压到 G:\kafka_2.11-0.10.0.1)

3.3 打开G:\kafka_2.11-0.10.0.1\config

三.四 从文本编辑器里张开 server.properties

三.五 把 log.dirs的值改成 “G:\kafka_2.11-0.10.0.1\kafka-logs”

3.6 打开cmd

三.7 进入kafka文件目录: cd /d G:\kafka_2.11-0.10.0.1\

三.八 输入并实行以开采kafka:

.\bin\windows\kafka-server-start.bat .\config\server.properties

 

2. 安装Zookeeper

卡夫卡的运作依赖于Zookeeper,所以在运营Kafka从前我们须要安装并运营Zookeeper

二.一 下载安装文件: 

2.2 解压文件(本文解压到 G:\zookeeper-3.4.8)

2.3 打开G:\zookeeper-3.4.8\conf,把zoo_sample.cfg重命名成zoo.cfg

贰.4 从文本编辑器里打开zoo.cfg

二.5 把dataDir的值改成“:\zookeeper-3.4.8\data”

贰.6 加多如下系统变量:

    • ZOOKEEPER_HOME: G:\zookeeper-3.4.8
    • Path: 在存活的值前面增添 “;%ZOOKEEPE锐界_HOME%\bin;”

2.柒 运营Zookeeper: 张开cmd然后实践

zkserver

3. 装置并运营卡夫卡

三.一 下载安装文件: 三.二解压文件(本文解压到 G:\kafka_2.11-0.10.0.1) 3.3
打开G:\kafka_2.11-0.10.0.1\config 三.四 从文本编辑器里张开server.properties 叁.伍 把
log.dirs的值改成 “G:\kafka_2.11-0.10.0.1\kafka-logs” 三.6 打开cmd 叁.七进入kafka文件目录: cd /d G:\kafka_2.11-0.10.0.1\ 三.8输入并实践以开荒kafka:

.\bin\windows\kafka-server-start.bat .\config\server.properties

4. 创建topics

4.1 打开cmd 并进入G:\kafka_2.11-0.10.0.1\bin\windows

4.二 创设贰个topic:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

 

三. 安装并运维卡夫卡

三.1 下载安装文件:

3.② 解压文件(本文解压到 G:\kafka_2.11-0.10.0.1)

3.3 打开G:\kafka_2.11-0.10.0.1\config

3.四 从文本编辑器里打开 server.properties

三.伍 把 log.dirs的值改成 “G:\kafka_2.11-0.10.0.1\kafka-logs”

3.6 打开cmd

3.7 进入kafka文件目录: cd /d G:\kafka_2.11-0.10.0.1\

3.八 输入并实践以展开kafka:

.\bin\windows\kafka-server-start.bat .\config\server.properties

4. 创建topics

4.1 打开cmd 并进入G:\kafka_2.11-0.10.0.1\bin\windows 四.2创设三个topic:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

5. 开发三个Producer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows
kafka-console-producer.bat --broker-list localhost:9092 --topic test

 

4. 创建topics

4.1 打开cmd 并进入G:\kafka_2.11-0.10.0.1\bin\windows

肆.贰 成立1个topic:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

伍. 开发3个Producer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows
kafka-console-producer.bat --broker-list localhost:9092 --topic test

 

6. 展开一个Consumer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

然后就足以在Producer调整台窗口输入音讯了。在新闻输入过后,不慢Consumer窗口就能够显得出Producer发送的音信:

亚洲必赢官网 4

伍. 开荒3个Producer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows
kafka-console-producer.bat --broker-list localhost:9092 --topic test

 

陆. 展开2个Consumer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

然后就能够在Producer调控台窗口输入音信了。在音讯输入过后,不慢Consumer窗口就能够来得出Producer发送的音信:

亚洲必赢官网 5

 

迄今结束,卡夫卡运转条件的搭建就完了了:-)

web处理方面(正式运营安插):

网络有人说 kafka manage

.net sdk方面:

有人提出:
(微软提供的sdk,看了源码个人以为有些复杂)

还有
kafka-net 那么些以为会轻易好些个(看了源码以为有个别Task写法并不欣赏)

引入:kafka-net 不难易用些。

地址:

 

如上sdk 能够找寻nuget 查看开源地址和新星release包,当然.net sdk
还有众多别的选用。

个体开垦工具(windows帮助),windows 开垦条件使用

kafkaTool

下载地址:

 

 

kafka-net sdk使用demo

参考来源:

详见请查看官方开源地址的demo:

KafkaProducer程序: 

亚洲必赢官网 6

class Program
    {
        static void Main(string[] args)
        {
            do
            {
                Produce(GetKafkaBroker(), getTopicName());
                System.Threading.Thread.Sleep(3000);
            } while (true);
        }

        private static void Produce(string broker, string topic)
        {
            var options = new KafkaOptions(new Uri(broker));
            var router = new BrokerRouter(options);
            var client = new Producer(router);

            var currentDatetime =DateTime.Now;
            var key = currentDatetime.Second.ToString();
            var events = new[] { new Message("Hello World " + currentDatetime, key) };
            client.SendMessageAsync(topic, events).Wait(1500);
            Console.WriteLine("Produced: Key: {0}. Message: {1}", key, events[0].Value.ToUtf8String());

            using (client) { }
        }

        private static string GetKafkaBroker()
        {
            string KafkaBroker = string.Empty;
            const string kafkaBrokerKeyName = "KafkaBroker";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(kafkaBrokerKeyName))
            {
                KafkaBroker = "http://localhost:9092";
            }
            else
            {
                KafkaBroker = ConfigurationManager.AppSettings[kafkaBrokerKeyName];
            }
            return KafkaBroker;
        }
        private static string getTopicName()
        {
            string TopicName = string.Empty;
            const string topicNameKeyName = "Topic";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(topicNameKeyName))
            {
                throw new Exception("Key \"" + topicNameKeyName + "\" not found in Config file -> configuration/AppSettings");
            }
            else
            {
                TopicName = ConfigurationManager.AppSettings[topicNameKeyName];
            }
            return TopicName;
        }
    }

亚洲必赢官网 7

4.KafkaConsumer程序:

亚洲必赢官网 8

class Program
    {
        static void Main(string[] args)
        {
            Consume(getKafkaBroker(), getTopicName());

        }

        private static void Consume(string broker, string topic)
        {   
            var options = new KafkaOptions(new Uri(broker));
            var router = new BrokerRouter(options);
            var consumer = new Consumer(new ConsumerOptions(topic, router));

            //Consume returns a blocking IEnumerable (ie: never ending stream)
            foreach (var message in consumer.Consume())
            {
                Console.WriteLine("Response: Partition {0},Offset {1} : {2}",
                    message.Meta.PartitionId, message.Meta.Offset, message.Value.ToUtf8String());
            }
        }

        private static string getKafkaBroker()
        {
            string KafkaBroker = string.Empty;
            var KafkaBrokerKeyName = "KafkaBroker";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(KafkaBrokerKeyName))
            {
                KafkaBroker = "http://localhost:9092";
            }
            else
            {
                KafkaBroker = ConfigurationManager.AppSettings[KafkaBrokerKeyName];
            }
            return KafkaBroker;
        }

        private static string getTopicName()
        {
            string TopicName = string.Empty;
            var TopicNameKeyName = "Topic";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(TopicNameKeyName))
            {
                throw new Exception("Key \"" + TopicNameKeyName + "\" not found in Config file -> configuration/AppSettings");
            }
            else
            {
                TopicName = ConfigurationManager.AppSettings[TopicNameKeyName];
            }
            return TopicName;
        }
    }

亚洲必赢官网 9

5.Consumer结果:

亚洲必赢官网 10

 

windows 卡夫卡安装与应用入门(入门笔记),.netkafka 完整消除方案请参见: Setting Up and
Running Apache 卡夫卡 on Windows OS 在意况搭建过程中相见五个…

6. 开发3个Consumer:

cd /d G:\kafka_2.11-0.10.0.1\bin\windows

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

接下来就能够在Producer调节台窗口输入消息了。在音信输入过后,十分的快Consumer窗口就能够来得出Producer发送的音讯:

亚洲必赢官网 11

 

从那之后,卡夫卡运营条件的搭建就到位了:-)

web管理方面(正式运转铺排):

互连网有人说 kafka manage

.net sdk方面:

有人提议:
(微软提供的sdk,看了源码个人以为某个复杂)

还有
kafka-net 这一个以为会简单繁多(看了源码感到某个Task写法并不爱好)

推荐介绍:kafka-net 简单易用些。

地址:

 

上述sdk 可以寻觅nuget 查看开源地址和流行release包,当然.net sdk
还有不少别的选用。

个人开辟工具(windows帮助),windows 开荒条件使用

kafkaTool

下载地址:

 

 

kafka-net sdk使用demo

参考来源:

详尽请查看官方开源地址的demo:

KafkaProducer程序: 

亚洲必赢官网 12

class Program
    {
        static void Main(string[] args)
        {
            do
            {
                Produce(GetKafkaBroker(), getTopicName());
                System.Threading.Thread.Sleep(3000);
            } while (true);
        }

        private static void Produce(string broker, string topic)
        {
            var options = new KafkaOptions(new Uri(broker));
            var router = new BrokerRouter(options);
            var client = new Producer(router);

            var currentDatetime =DateTime.Now;
            var key = currentDatetime.Second.ToString();
            var events = new[] { new Message("Hello World " + currentDatetime, key) };
            client.SendMessageAsync(topic, events).Wait(1500);
            Console.WriteLine("Produced: Key: {0}. Message: {1}", key, events[0].Value.ToUtf8String());

            using (client) { }
        }

        private static string GetKafkaBroker()
        {
            string KafkaBroker = string.Empty;
            const string kafkaBrokerKeyName = "KafkaBroker";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(kafkaBrokerKeyName))
            {
                KafkaBroker = "http://localhost:9092";
            }
            else
            {
                KafkaBroker = ConfigurationManager.AppSettings[kafkaBrokerKeyName];
            }
            return KafkaBroker;
        }
        private static string getTopicName()
        {
            string TopicName = string.Empty;
            const string topicNameKeyName = "Topic";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(topicNameKeyName))
            {
                throw new Exception("Key \"" + topicNameKeyName + "\" not found in Config file -> configuration/AppSettings");
            }
            else
            {
                TopicName = ConfigurationManager.AppSettings[topicNameKeyName];
            }
            return TopicName;
        }
    }

亚洲必赢官网 13

4.KafkaConsumer程序:

亚洲必赢官网 14

class Program
    {
        static void Main(string[] args)
        {
            Consume(getKafkaBroker(), getTopicName());

        }

        private static void Consume(string broker, string topic)
        {   
            var options = new KafkaOptions(new Uri(broker));
            var router = new BrokerRouter(options);
            var consumer = new Consumer(new ConsumerOptions(topic, router));

            //Consume returns a blocking IEnumerable (ie: never ending stream)
            foreach (var message in consumer.Consume())
            {
                Console.WriteLine("Response: Partition {0},Offset {1} : {2}",
                    message.Meta.PartitionId, message.Meta.Offset, message.Value.ToUtf8String());
            }
        }

        private static string getKafkaBroker()
        {
            string KafkaBroker = string.Empty;
            var KafkaBrokerKeyName = "KafkaBroker";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(KafkaBrokerKeyName))
            {
                KafkaBroker = "http://localhost:9092";
            }
            else
            {
                KafkaBroker = ConfigurationManager.AppSettings[KafkaBrokerKeyName];
            }
            return KafkaBroker;
        }

        private static string getTopicName()
        {
            string TopicName = string.Empty;
            var TopicNameKeyName = "Topic";

            if (!ConfigurationManager.AppSettings.AllKeys.Contains(TopicNameKeyName))
            {
                throw new Exception("Key \"" + TopicNameKeyName + "\" not found in Config file -> configuration/AppSettings");
            }
            else
            {
                TopicName = ConfigurationManager.AppSettings[TopicNameKeyName];
            }
            return TopicName;
        }
    }

亚洲必赢官网 15

5.Consumer结果:

亚洲必赢官网 16

 

网站地图xml地图