Kafka部署安装及简单使用

一、环境准备

1、jdk 8+

2、zookeeper

3、kafka

说明:在kafka较新版本中已经集成了zookeeper,所以不用单独安装zookeeper,只需要在kafka文件目录中启动zookeeper即可

二、下载地址

https://kafka.apache.org/downloads

Kafka部署安装及简单使用

三、部署

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  -- 默认不修改也可

Kafka部署安装及简单使用

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客户端查看消息投递

Kafka部署安装及简单使用

Original: https://www.cnblogs.com/sportsky/p/16560110.html
Author: SportSky
Title: Kafka部署安装及简单使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/609598/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • rm命令弱爆了!

    大家好,我是良许。 创建、删除和修改文件是用户在 Linux 系统中执行的非常常见操作。大家都知道,在 Linux 系统里使用 rm 命令删除单个文件时,几乎一瞬间就完成了。但是如…

    Linux 2023年6月14日
    093
  • 【Javaweb】JSP标准标签库

    JSTL 1.什么是JSTL 2.版本 3.标签函数库 4.优点 JSTL基本概念 标签(Tag) 标签库(Tag library) 标签库描述文件(Tag Library Des…

    Linux 2023年6月14日
    0147
  • anaconda创建虚拟环境

    anaconda创建虚拟环境 1·查看当前存在的虚拟环境 conda env list 或者 conda info -e 2·创建虚拟环境,环境名重要 conda create -…

    Linux 2023年6月14日
    093
  • MySQL实现备份(3)之xtrabackup 备份工具

    xtrabackup工具: 是percona公司开发的一个用于对MySQL进行备份的工具。相对于mysqldump,xtrabackup支持增量备份、差异备份等。 使用手册;htt…

    Linux 2023年6月7日
    0124
  • 安装Redis

    1、下载redis 2、解压缩、安装 安装完之后,可以执行以下make test,执行make test之前需要先安装tcl 3、配置 redis服务后台启动 找到: 修改为: 4…

    Linux 2023年5月28日
    087
  • redis后台启动

    打开redis.conf文件 把daemonize设置为yes posted @2021-11-25 15:30 HongMaJu 阅读(73 ) 评论() 编辑 Original…

    Linux 2023年5月28日
    084
  • MySQL日志管理之事务日志和错误日志

    MySQL的日志是用来记录用户的相关操作、系统的运行状态等信息的文件结合。 事务日志就是mysql执行事务过程中产生的日志。 redo log:基于WAl机制在数据更改前先把对应操…

    Linux 2023年6月7日
    086
  • Emacs 基础offset值

    cc-mode有如下规定:One of the symbols +, -, ++, –, *, or /These special symbols describe a…

    Linux 2023年6月13日
    084
  • 超好用的UnixLinux 命令技巧 大神为你详细解读

    1、删除一个大文件 我在生产服务器上有一个很大的200GB的日志文件需要删除。我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入: > /…

    Linux 2023年6月14日
    095
  • K8S的apiVersion版本详解

    1. 背景 Kubernetes的官方文档中并没有对apiVersion的详细解释,而且因为K8S本身版本也在快速迭代,有些资源在低版本还在beta阶段,到了高版本就变成了stab…

    Linux 2023年6月14日
    075
  • linux中python虚拟环境的创建及问题

    linux中python虚拟环境的创建 LINUX 出现 -BASH-4.2# 问题的解决方法 linux中python虚拟环境的创建 1)安装依赖 >: pip3 inst…

    Linux 2023年6月14日
    084
  • wordpress固定链接+宝塔nginx配置伪静态访问URL

    一、站点设置 打开站点设置,选择伪静态,选择wordpress 二、wordpress设置 打开wordpress后台,选择 设置 —》固定链接 选择一个你喜欢的格式点…

    Linux 2023年6月14日
    093
  • Linux下的SELINUX

    理解Linux下的SELinux 长久以来,每当遇到授权问题或者新安装的主机,我的第一反应是通过 setenforce 0命令禁用SELinux,来减少产生的权限问题,但是这并不是…

    Linux 2023年6月7日
    083
  • MySQL——索引结构

    索引:用于快速查找数据。 索引是将数据的一些关键信息通过特定的数据结构存储到一片新的空间中,这样在文件查找的时候能快速找到。 mysql索引类型: B+TREE、HASH、R-TR…

    Linux 2023年6月7日
    0102
  • Linux Shell

    Linux Shell By: luozaijin 22/6/23 [目录] Linux Shell [目录] Shell Color 语句常用命令 sleep 等待 timeou…

    Linux 2023年6月7日
    0206
  • 007 Linux 命令三剑客之-awk

    Linux 命令三剑客,sed、grep、awk。 sed:擅长数据修改。 grep:擅长数据查找定位。 awk:擅长数据切片,数据格式化,功能最复杂。 awk 更适合格式化文本,…

    Linux 2023年5月27日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球