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

  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. CH395实现主动ping对端功能(代码及说明)

    目录 1.PING原理 1.1简介 1.2协议 1.3通信流程 2.代码解释 3.工程链接 PING原理 1.简介 PING是基于ICMP(Internet Control Message Proto ...

  2. 江西财经大学第一届程序设计竞赛 H题- 小P的数学问题

    题目链接:https://www.nowcoder.com/acm/contest/115/H 解题思路:分块打表!!! 什么是分块打表呢??? 从这道题我们知道我们要找到最多1*e9的阶乘 那循环暴 ...

  3. 华企盾DSC无法从网页下载客户端(无法访问web端)

    解决方法1:服务器安装目录需要安装在英文目录,否则DSCApache.exe会启动不了,导致无法访问5580网页. 解决方法2:5580端口占用也会导致DSCApache.exe启动不了,可打开服务器 ...

  4. Android动态数字输入框

    基础view如下: 具体的思路实现: 1:展示textview实现 2: 顶层使用透明的edittext.获取焦点/删除文字等. public class BaseVerificationCodeVi ...

  5. 如何用axios加后端数据库传值给前端

    小杰笔记: 如何用axios : 第一步:编写数据库实体类 @Data @AllArgsConstructor @NoArgsConstructor public class User { priva ...

  6. .NET开源、强大的Web报表统计系统

    前言 今天分享一个.NET开源.强大的Web报表统计系统:CellReport. 项目官方介绍 CellReport 诞生的初衷是为了解决日常快速制作统计报表的需要. CellReport 是一个为复 ...

  7. PyTorch项目源码学习(2)——Tensor代码结构初步学习

    PyTorch版本:1.10.0 Tensor Tensor是Pytorch项目较为重要的一部分,其中的主要功能如存储,运算由C++和CUDA实现,本文主要从前端开始探索学习Tensor的代码结构. ...

  8. linux中mysql下载安装部署

    创建mysql文件 mkdir mysql 首先通过yum下载wget命令 yum -y install wget 在mysql文件中通过wget下载MySQL存储库 wget https://dev ...

  9. 浅析AIGC for MMKG

    摘要:AIGC和多模态知识图谱(MMKG)中的知识获取又是怎么实现的呢?他们之间有什么关联呢? 本文分享自华为云社区<GPT-4发布,AIGC时代的多模态还能走多远?系列之四 AIGC for ...

  10. 亿级日活业务稳如磐石,华为云CodeArts PerfTest发布

    摘要:近日,华为云性能测试服务CodeArts PerfTest全新上线,提供低门槛.低成本的一站式云化性能测试解决方案. 本文分享自华为云社区<亿级日活业务稳如磐石,华为云CodeArts P ...