当前基于kafaka最新版 kafka_2.12-2.2.1.tgz 进行配置 。

官网地址:http://kafka.apache.org/intro

kafka的一些基础知识 参考:http://www.hechunbo.com/index.php/archives/140.html

最新版 kafka_2.12-2.2.1.tgz 进行配置 。单机生产者消费者图解配配置,多机模拟配置。以及文件读写配置,经验掌握,集成zookeeper不用再安装

  1. 配置java环境安装jdk

    参考http://www.hechunbo.com/index.php/archives/132.html

  2. 解压kafaka

    [root@localhost hcb]# tar -zxvf kafka_2.12-2.2.1.tgz -C /usr/local
  3. 启动zookeeper .因为最新版 已经包含有zookeeper 所以不用另外安装了

    [root@localhost kafka_2.12-2.2.1]# bin/zookeeper-server-start.sh config/zookeeper.properties
    [2019-06-22 17:47:49,667] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig)
  4. 重新开一个连接 。输入jps 发现多了一个进程

    [root@localhost ~]# jps
    3136 Jps
    2842 QuorumPeerMain
  5. 启动kafka

    [root@localhost kafka_2.12-2.2.1]# ./bin/kafka-server-start.sh config/server.properties
    [2019-06-22 17:51:18,786] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
    [2019-06-22 17:51:20,624] INFO starting (kafka.server.KafkaServer)
  6. 再开一个连接 输入jps查看当前运行的进程

    发现多了一个kafka

    [root@localhost ~]# jps
    3504 Jps
    2842 QuorumPeerMain
    3147 Kafka
  7. 创建一个topic

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
    [root@localhost kafka_2.12-2.2.1]#
  8. 查看topic消息

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --list --bootstrap-server localhost:9092
    test
  9. 发送消息 到test

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    hi,>welcome to to kafka
    >hi ,how are you
  10. 消费者取消息

    [root@localhost kafka_2.12-2.2.1]#  bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    hi,welcome to to kafka
    hi ,how are you

    生产者发送消息以后,消费者有通知 ,

  11. 进行多台机子测试

    因为我们是单台机子,所以把配置文件复制两份,更改端口和id配置进行第二台,第三台的模拟

    [root@localhost ~]# cd /usr/local/kafka_2.12-2.2.1/
    [root@localhost kafka_2.12-2.2.1]# cp config/server.properties config/server-1.properties
    [root@localhost kafka_2.12-2.2.1]# cp config/server.properties config/server-2.properties

    修改第二台机子的配置

    vi config/server-1.properties
    log.dirs=/tmp/kafka-logs-1
    listeners=PLAINTEXT://:9093
    broker.id=1

    修改第三台机子

    vi config/server-2.properties
    log.dirs=/tmp/kafka-logs-2
    listeners=PLAINTEXT://:9094
    broker.id=2

  12. 启动新模拟的两台服务器

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-server-start.sh config/server-1.properties
    [2019-06-22 18:23:56,237] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)

    新开连接 继续启动第三台,顺便查看下当前的进程 。发现有两个kafka存在了

    [root@localhost ~]# jps
    4370 ConsoleProducer
    2842 QuorumPeerMain
    5642 Jps
    3147 Kafka
    4955 ConsoleConsumer
    5278 Kafka
    [root@localhost ~]# cd /usr/local/kafka_2.12-2.2.1/
    ^C[root@localhost kafka_2.12-2.2.1]# bin/kafka-server-start.sh config/server-2.properties
    [2019-06-22 18:27:31,947] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)

    新开一个连接 ,查看下当前进程 ,三个kafka正常启动了

    [root@localhost ~]# jps
    4370 ConsoleProducer
    6307 Jps
    2842 QuorumPeerMain
    3147 Kafka
    4955 ConsoleConsumer
    5948 Kafka
    5278 Kafka
  13. 创建一个带有备份的topic

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 1 --topic my-replication-topic
  14. 查看哪个borke【kafka服务器】在工作

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replication-topic
    Topic:my-replication-topic PartitionCount:1 ReplicationFactor:3 Configs:segment.bytes=1073741824
    Topic: my-replication-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0

    leader:哪个broker在读写

    replicas:当前可以正常工作的kafka集群。当leader挂掉时会自动替补

    isr:同步消息的列表集合

  15. 查看我们之前创建的topic消息

    当时我们只有一个kafka服务器。可以看只leader是0,替被和备份的都是0,

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic test
    Topic:test PartitionCount:1 ReplicationFactor:1 Configs:segment.bytes=1073741824
    Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
  16. 在新的topic中发布新的消息

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-replication-topic
    >message one
    >message two
  17. 消费者去获取消息

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-console-consumer.sh  --bootstrap-server  localhost:9092 --from-beginning --topic my-replication-topic
    message one
    message two
  18. 检查当前的leader

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replication-topic
    Topic:my-replication-topic PartitionCount:1 ReplicationFactor:3 Configs:segment.bytes=1073741824
    Topic: my-replication-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
  19. 模拟leader1挂掉以后的状态

    把leader1关掉

    检查leader1的进程

    ps aux 显示用户当前的所有进程 。并根据grep后面的内容进行搜索

    用kill杀死相关进程

    [root@localhost kafka_2.12-2.2.1]# ps aux | grep server-1.properties
    root 5278 3.5 20.5 3232460 205560 pts/5 Sl+ 18:23 1:06 /usr/local/jdk1.8.0_211/bin/java -Xmx1G
    [root@localhost kafka_2.12-2.2.1]# kill -9 5278
  20. 再次检查当前topic的消息

    发现leader已经从1变成了2.

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-replication-topic
    Topic:my-replication-topic PartitionCount:1 ReplicationFactor:3 Configs:segment.bytes=1073741824
    Topic: my-replication-topic Partition: 0 Leader: 2 Replicas: 1,2,0 Isr: 2,0
  21. 使用kafka connect 导入导出数据

    souce connector 从text.txt读取文件 ,把内容发送到connect-test., sink connector 从conect-test读写消息

    [root@localhost kafka_2.12-2.2.1]# bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties  config/connect-file-sink.properties
    [2019-06-22 19:05:55,493] INFO Kafka Connect standalone worker initializing ... (org.apache.kafka.connect.cli.ConnectStandalone:67)

    进行jps分发现多了一个ConnectStandalone的进程

    [root@localhost ~]# jps
    4370 ConsoleProducer
    9478 Jps
    9160 ConnectStandalone
    2842 QuorumPeerMain
    3147 Kafka
    4955 ConsoleConsumer
    5948 Kafka

    显示文件内容

    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,

    [root@localhost kafka_2.12-2.2.1]# more test.sink.txt
    foo
    bar

    使用消费者控制 台显示

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
    {"schema":{"type":"string","optional":false},"payload":"foo"}
    {"schema":{"type":"string","optional":false},"payload":"bar"}

    继续测试

    生产者进行消息追加

    [root@localhost kafka_2.12-2.2.1]# echo -e "foo\nbarddddaaa\aaaaa\dddd\1\2\2\3" > test.txt
    [root@localhost kafka_2.12-2.2.1]# echo -e "foo\nbarddddaaa\aaaaa\dddd\1\2\2\3\new append" > test.txt

    消费者进行实时显示

    [root@localhost kafka_2.12-2.2.1]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
    {"schema":{"type":"string","optional":false},"payload":"foo"}
    {"schema":{"type":"string","optional":false},"payload":"bar"}
    {"schema":{"type":"string","optional":false},"payload":"dddd"}
    {"schema":{"type":"string","optional":false},"payload":"aaaaaaad"}
    {"schema":{"type":"string","optional":false},"payload":"dd"}
    ^[[A^[[A^[[B{"schema":{"type":"string","optional":false},"payload":"1\\2\\2\\3"}
    {"schema":{"type":"string","optional":false},"payload":"ew append"}

Kafka 最新版配置的更多相关文章

  1. kafka搭建到配置borker集群(项目开发-区块链)

    (以下分享了搭建kafka需要使用到的命令,差不多齐了,这里没有提到kafka-manager ,同学可以在网上自行查找) 最近公司的项目比较紧,先说下使用kafka的用处: 要替代原来 撮合引擎发数 ...

  2. 【转】 详解Kafka生产者Producer配置

    粘贴一下这个配置,与我自己的程序做对比,看看能不能完善我的异步带代码:   -----------------------------------------    详解Kafka生产者Produce ...

  3. JAVA版Kafka代码及配置解释

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/java-kafka.html.html 一.JAVA代码 kafka是吞吐量巨大的一个消息系统,它是 ...

  4. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

  5. HyperLedger Fabric基于zookeeper和kafka集群配置解析

    简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群 ...

  6. kafka manager安装配置和使用

    kafka manager安装配置和使用 .安装yum源 curl https://bintray.com/sbt/rpm/rpm | sudo tee /etc/yum.repos.d/bintra ...

  7. Linux下Kafka单机安装配置方法

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语: •Kafka将消息以topi ...

  8. Kafka集群配置---Windows版

    Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的.今天我们仅实现Kafka集群的配置.理论的抽空在聊 前言 最近研究kafka,发现网上很多 ...

  9. java架构之路(MQ专题)kafka集群配置和简单使用

    前面我们说了RabbitMQ和RocketMQ的安装和简单的使用,这次我们说一下Kafka的安装配置,后面我会用几个真实案例来说一下MQ的真实使用场景.天冷了,不愿意伸手,最近没怎么写博客了,还请见谅 ...

随机推荐

  1. 【已解决】老型号电脑需要按F1键才能进入系统

    [已解决]老型号电脑需要按F1键才能进入系统 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Tue, 16 Jul 2019 20:49:00 +0800 问题描述:电脑因 ...

  2. c# 定制Equals()

  3. Flutter——TabBar组件(顶部Tab切换组件)

    TabBar组件的常用属性: 属性 描述 tabs 显示的标签内容,一般使用 Tab 对象,也可以是其他的Widget  controller TabController 对象 isScrollabl ...

  4. 助教培训第四次作业——熟练掌握GitHub及Git的使用方法

    助教培训第四次作业——熟练掌握GitHub及Git的使用方法 1.Git 命令的理解和使用 常用的Git命令可以查看官方文档,官方文档的网址:https://git-scm.com/docs .虽然是 ...

  5. 个性化排序算法实践(一)——FM算法

    因子分解机(Factorization Machine,简称FM)算法用于解决大规模稀疏数据下的特征组合问题.FM可以看做带特征交叉的LR. 理论部分可参考FM系列,通过将FM的二次项化简,其复杂度可 ...

  6. js基础知识1

    本博客转自某不知名程序员 1. JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:操作网页 ...

  7. MyBatis3_[tp_38~]_动态sql_if_判断&OGNL_where标签_

    笔记要点出错分析与总结 /** 笔记: * 查询的时候,如果某些条件,没带可能SQL拼装会有问题; * 1.-->给where 后面加上 1=1, 以后的条件都and XXX * 2. < ...

  8. 胡搞-强化版的light oj-1055-的思路-AI版的6重暴力For循环的BFS

    新题目大意: 三个棋子按照先后顺序,可以随意方向合法地走到空位置上(而不是像原题light oj-1055中的一样三个棋子每次走的方向都一致),当三个棋子全部走进目标地点,就结束:求需要指挥的最少次数 ...

  9. c++ 构造函数执行顺序

    开辟内存空间. 按照成员变量声明的顺序开始构造成员变量. 如果成员变量在初始化列表中, 就会执行该变量类型的拷贝构造函数. 如果成员变量没有在初始化列表中, 就会执行该变量类型的缺省构造函数. 进入函 ...

  10. 基于jQuery制作的手风琴折叠菜单

    初始化为全部隐藏 点第一个,显示第一个所隐藏的内容 当点第二个的时候,第一个的内容隐藏,第二个栏目的内容显示,以此类推 下面是代码部分 <!DOCTYPE html><html la ...