本文为博主原创,未经允许不得转载:

  1. 安装JDK

    由于Kafka是用Scala语言开发的,运行在JVM上,因此在安装Kafka之前需要先安装JDK。

  yum install java‐1.8.0‐openjdk* ‐y

  2.  安装zookeeper

    kafka依赖zookeeper,所以需要先安装zookeeper

    2.1 进入zookeeper 官网:https://zookeeper.apache.org/releases.html

      选择并下载指定的zookeeper 版本安装包:

    2.2  下载并解压

wget https://downloads.apache.org/zookeeper/zookeeper-3.4.11/apache-zookeeper-3.4.11.tar.gz
tar ‐zxvf zookeeper‐3.4.11.tar.gz

    2.3  配置zookeeper 配置文件,并启动 zookeeper

 cp conf/zoo_sample.cfg conf/zoo.cfg
bin/zkServer.sh start   # 启动zookeeper
bin/zkCli.sh
ls / #查看zk的根目录相关节点

  3. 安装kafka

    3.1 下载解压 kafka

    打开kafka 官网下载页面 : http://kafka.apache.org/downloads.html , 选择对应的scala 语言版本与kafka版本进行下载:

wget https://archive.apache.org/dist/kafka/2.4.0/kafka_2.12-2.4.0.tgz    # 下载

tar ‐xzf kafka_2.12-2.4.0.tgz # 解压

    3.2 启动 kafka ,并进入 zookeeper 客户端查看kafka 节点目录

      启动脚本语法: kafka­-server­-start.sh  [­daemon]  server.properties

      server.properties 的配置路径是一个强制的参数,­daemon表示以后台进程运行,否则ssh客户端退出后,就会停止服务。    

 bin/kafka-server-start.sh config/server.properties    # 直接启动kafka 
 bin/kafka-server-start.sh -daemon config/server.properties # 以后台运行的方式启动kafka

  bin/zkCli.sh     进入zookeeper目录通过zookeeper客户端查看下zookeeper的目录树
 ls /          # 查看zk的根目录kafka相关节点
 ls /brokers/ids   # 查看kafka节点

 bin/kafka-server-stop.sh config/server.properties # 停止 kafka

    

  server.properties核心配置详解
     

Property
Default
Description
broker.id
0
每个broker都可以用一个唯一的非负整数id进行标识;这个id可以作为broker的“名字”,你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。
log.dirs
/tmp/kafka-logs
kafka存放数据的路径。这个路径并不是唯一的,可以是多个,路径之间只需要使用逗号分隔即可;每当创建新partition时,都会选择在包含最少partitions的路径下进行。
listeners
PLAINTEXT://192.168.65.60:9092
server接受客户端连接的端口,ip配置kafka本机ip即可
zookeeper.connect
localhost:2181
zooKeeper连接字符串的格式为:hostname:port,此处hostname和port分别是ZooKeeper集群中某个节点的host和port;zookeeper如果是集群,连接方式为 hostname1:port1, hostname2:port2, hostname3:port3
log.retention.hours
168
每个日志文件删除之前保存的时间。默认数据保存时间对所有topic都一样。
num.partitions
1
创建topic的默认分区数
default.replication.factor
1
自动创建topic的默认副本数量,建议设置为大于等于2
min.insync.replicas
1
当producer设置acks为-1时,min.insync.replicas指定replicas的最小数目(必须确认每一个repica的写数据都是成功的),如果这个数目没有达到,producer发送消息会产生异常
delete.topic.enable
false
是否允许删除主题

  4. 创建主题

      
    4.1 创建一个名字为“test”的Topic,这个topic只有一个partition,并且备份因子也设置为1:
      
    注意: 当命令执行不通过时,将其中的localhost 更换成服务器的ip,或 127.0.0.1 尝试。 这个ip 是有 
      

      #kafka部署的机器ip和提供服务的端口号 决定的:  默认是 127.0.0.1 ,如果指定ip 则以下命令都使用ip访问,
      如果没有配置,使用默认配置时,则使用 127.0.0.1 进行访问
      
 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    
    4.2 查看kafka中目前存在的topic
    
bin/kafka-topics.sh --list --zookeeper localhost:2181

      ( 除了我们通过手工的方式创建Topic,当producer发布一个消息到某个指定的Topic,这个Topic如果不存在,就自动创建。)

    4.3 删除主题
 bin/kafka‐topics.sh ‐‐delete ‐‐topic test ‐‐zookeeper localhost:2181

  

  5. 发送消息

    kafka自带了一个producer命令客户端,可以从本地文件中读取内容,或者我们也可以以命令行中直接输入内容,并将这些内容

  以消息的形式发送到kafka集群中。在默认情况下,每一个行会被当做成一个独立的消息。首先我们要运行发布消息的脚本,

  然后在命令中输入要发送的消息的内容:

bin/kafka‐console‐producer.sh ‐‐broker‐list localhost:9092 ‐‐topic test

# 或 localhost 执行时通常需要在服务器的host 文件中配置对应的host才能解析,不然解析不了

bin/kafka-console-producer.sh --broker-list 112.125.26.68:9092 --topic test
 > produce send a msg

  

  6. 消费消息

     对于consumer,kafka同样也携带了一个命令行客户端,会将获取到内容在命令中进行输出,默认是消费最新的消息:
bin/kafka-console-consumer.sh --bootstrap-server 112.125.26.68:9092 --consumer-property group.id=testgroup --topic test

      

    如果想要消费之前的消息可以通过--from-beginning参数指定,如下命令:

bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic test

    kafka 使用以上命令消费消息使用有的版本会报: zookeeper is not a recognized option 异常。可以使用以下命令进行消费:

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic wordsendertest --from-beginning

    查看组名

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 -list

    查看消费者的消费偏移量

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group testgroup

  

kafka Linux环境搭建安装及命令创建队列生产消费消息的更多相关文章

  1. 【Python】部署上手App后端服务器 - Linux环境搭建安装Python、Tornado、SQLAlchemy

    基于阿里云服务器端环境搭建 文章目录 基于阿里云服务器端环境搭建 配置开发环境 安装 Python 3.8.2 安装 Tornado 安装 MySQL 安装 mysqlclient 安装 SQLAlc ...

  2. linux环境中通过useradd命令,创建用户的时候指定用户的base-dir

    需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/ap ...

  3. linux环境中安装iotop命令,解决-bash: iotop: command not found问题

    需求描述: 今天在测试环境中,准备查看mysql各个线程占用的io的情况,准备使用iotop命令来查看,发现没有这个命令 [root@testvm Packages]# iotop -bash: io ...

  4. 【菜鸟学习Linux】-第一章-Linux环境搭建-安装VMware虚拟机

    本人菜鸟一个,刚毕业才上班2个月,现在用到Linux部署项目,这才开始学习Linux,以下是我在安装Linxu系统是遇到的一些问题,希望能给广大菜鸟们在学习的道路上提供帮助和指导,废话不多说!开工! ...

  5. Linux环境搭建-在虚拟机中安装Centos7.0

    最近在空闲时间学习Linux环境中各种服务的安装与配置,都属于入门级别的,这里把所有的学习过程记录下来,和大家一起分享. 我的电脑系统是win7,所以我需要在win7上安装一个虚拟机-VMware,然 ...

  6. 在linux环境下安装redis并且搭建自己的redis集群

    此文档主要介绍在linux环境下安装redis并且搭建自己的redis集群 搭建环境: ubuntun 16.04 + redis-3.0.6 本文章分为三个部分:redis安装.搭建redis集群 ...

  7. 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统

    上一步,我们安装了VMware9虚拟机,现在我们就是用它来安装Ubuntu12.04系统,至于Ubuntu是什么,我就不废话了,大家google一下,比我讲的清楚,好了,开始干活! Ubuntu官网下 ...

  8. kafka单机环境搭建及其基本使用

    最近在搞kettle整合kafka producer插件,于是自己搭建了一套单机的kafka环境,以便用于测试.现整理如下的笔记,发上来和大家分享.后续还会有kafka的研究笔记,依然会与大家分享! ...

  9. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  10. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

随机推荐

  1. 23年底,我出齐了Spring boot,Spring cloud和案例方面的书,正在写一本面试书(代年终总结)

    年末了,再来总结一下吧,希望本人明年的年终总结文还能在博客园发. 这次总结的主题是本人出的java书.这几年本人出了不少书,其中有python.redis和Java方面的. 姑且不说其它,java方面 ...

  2. 构建 dotnet&vue 应用镜像->推送到 Nexus 仓库->部署为 k8s 服务实践

    前言 前面分享了 k8s 的部署安装,本篇来点实操,将会把一个 .net core + vue 的项目(zhontai),打包构建成 docker 镜像,推送到 nexus 镜像仓库,并部署到 k8s ...

  3. BFS(三)单词接龙 ⅱ

    对应 126. 单词接龙 II 问题描述 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> ...

  4. Spring WebFlux 简介

    本文基于 Spring Boot 2.6.0 基于之前提到的 Reactor 的出现,使得编写响应式程序成为可能.为此,Spring 的开发团队决定添加有关 Reactor 模型的网络层.这样做的话将 ...

  5. vue模板的首次渲染,和重新渲染,有哪些区别?

    搞明白这个,能帮助我们理解开发中出现的很多问题. 一.我们先来回顾一下vue模板的渲染过程: (1)执行render函数,生成虚拟DOM. render函数是根据render.templete.el这 ...

  6. 2023-11-01:用go语言,沿街有一排连续的房屋。每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小

    2023-11-01:用go语言,沿街有一排连续的房屋.每间房屋内都藏有一定的现金, 现在有一位小偷计划从这些房屋中窃取现金, 由于相邻的房屋装有相互连通的防盗系统,所以小偷 不会窃取相邻的房屋, 小 ...

  7. CodeForces 1009E Intercity Travelling 概率DP

    原题链接 题意 给我们一个长为n的序列,要求我们从头开始向右走n个节点,每个位置都有1 / 2的概率将我们传送回1号点之前,不过我们只需要完成走n步的任务就可以了.求我们走过的元素和 乘以 2的n - ...

  8. LeetCode DP篇-背包问题(416、518)

    416. 分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: ...

  9. KubeEdge Sedna v0.6 & Ianvs v0.2 重磅发布:边云协同终身学习全面升级

    本文分享自华为云社区<KubeEdge Sedna v0.6 & Ianvs v0.2 重磅发布:边云协同终身学习全面升级>,作者: 云容器大未来 . 本文探讨了边缘智能应用在开放 ...

  10. 从大数据到AI,华为云存储加速企业大模型快速应用

    摘要:AI与大数据算法不断发展,在生产中的应用也越来越广,而应用的场景除了对算法,软件架构要求越来越高外,也对底层IaaS(基础设施即服务)提出了新的挑战. AI与大数据算法不断发展,在生产中的应用也 ...