Kafka部署安裝及簡單使用

一、環境準備

1、jdk 8+

2、zookeeper 

3、kafka

說明:在kafka較新版本中已經集成了zookeeper,所以不用單獨安裝zookeeper,只需要在kafka文件目錄中啓動zookeeper即可

二、下載地址

https://kafka.apache.org/downloads

 

 

三、部署

1、啓動zookeeper

-- 啓動
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

-- 查看是否啓動成功
ps -ef | grep zoo

2、進入解壓的kafka目錄,修改/config/kafka-server的配置文件

vi config/server.properties
-- 重點配置節點說明

listeners=PLAINTEXT://localhost:9092   -- 將localhost修改爲主機ip

log.dirs=/bigdata/kafka/logs-1  -- 默認不修改也可

 

 3、使用kafka-server-start.sh,啓動kafka服務

./bin/kafka-server-start.sh config/server.properties

四、使用客戶端kafka tools連接kafka

客戶端下載地址:https://www.kafkatool.com/download.html

關於客戶端如何使用可查看:https://www.cnblogs.com/frankdeng/p/9452982.html

 

 

 

 

 

 

 

 

五、kafka實戰簡單使用

 

NuGet:Confluent.Kafka

 1、新建.Net Core控制檯項目,代碼如下:

 

 

static void Main(string[] args)
        {
            // 發送消息
            var producerConfig = new ProducerConfig
            {
                BootstrapServers = "192.168.140.131:9092",
                MessageTimeoutMs = 50000
            };
            var builder = new ProducerBuilder<string, string>(producerConfig);
            using (var producer = builder.Build())
            {
                var data = new { key = "1", value = "001" };
                var json = JsonConvert.SerializeObject(data);
                var dr = producer.ProduceAsync("order", new Message<string, string> { Key = "order", Value = json }).GetAwaiter().GetResult();
                Console.WriteLine($"發送事件{dr.Value}到{dr.TopicPartitionOffset}成功");
            }

            // 消費消息
            var consumerConfig = new ConsumerConfig {
                BootstrapServers = "192.168.140.131:9092",
                AutoOffsetReset=AutoOffsetReset.Earliest,
                GroupId="1111", // 自定義
                EnableAutoCommit=true
            };
            var consumerBuilder = new ConsumerBuilder<string, string>(consumerConfig);


            using (var consumer = consumerBuilder.Build())
            {
                // 1、訂閱
                consumer.Subscribe("order");
                while (true)
                {
                    try
                    {
                        // 2、消費(自動確認)
                        var result = consumer.Consume();

                        // 3、業務邏輯
                        string key = result.Key;
                        string value = result.Value;

                        Console.WriteLine($"創建商品:Key:{key}");
                        Console.WriteLine($"創建商品:Order:{value}");
                        consumer.Commit(result);

                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"異常:Order:{e}");
                    }
                }
            }
        }

 

2、使用kafka客戶端查看消息投遞

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章