当前位置:首页 > 服务端 > kafka的安装和简单概念

kafka的安装和简单概念

2022年09月17日 17:31:58服务端4
一.传统的消息通信方式
      a.Socket通信协议
         缺点:服务器端和客户端必须同时在线;传输大量数据时,数据完全不完备,对网络要求极高。
      b.文件服务器(ftp)
         缺点:实时性比较差;本地磁盘IO读写;
      c.共享数据库方式(Database)
         缺点:系统间访问共享数据库比较难实现:1.据库连接池有限的;2.因业务需求很难将数据库共享;
      d.JMS(Java Message Services)协议
         缺点:具体相关业务的需求
      
二:kafka消息队列 系统解耦、削峰填谷、定时任务、异步通知等等
三:kafka
  1.定义:
kafka是用于构建实时数据管道和流媒体应用,它是水平扩展的,容错的,快速的。
  2.相关概念:
    Broker:kafka集群包含一个或多个服务器,这种服务器被称作broker。
    Topic:每条发布到kafka集群的消息队列都有一个类别,这种类别被称为topic。物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然存在一个或多个broker上,但用户只需指定消息的topic即可生产和消费数据而不必关心数据存在何处。
    Partition:partition是物理上的概念,每个topic包含一个或多个partition,创建topic时可以指定partition数量,每个partition对应一个文件夹,该文件夹存储该partition的数据和索引文件。
    Producer:负责发布信息到kafka broker
    Consumer:消费信息
  3.安装
    
a.安装kafka_2.10-0.10.0.1.tgz
       b.复制至{/home/hyxy/soft}
          $>cp /mnt/hgfs/2.安装环境/download/apache-kafka/kafka_2.10-0.10.0.1.tgz /home/hyxy/soft/
       c.解压
          $>tar -zxvf kafka_2.10-0.10.0.1.tgz 
	  $>rm kafka_2.10-0.10.0.1.tgz 
          $>ln -s kafka_2.10-0.10.0.1/ kafka
       d.修改环境变量,追加
          $>gedit ~/.bash_profile
		#Kafka install
		export KAFKA_HOME=/home/hyxy/soft/kafka
		export PATH=$KAFKA_HOME/bin:$PATH
          $>source ~/.bash_profile
四:单节点,单Broker集群
  1.开启zookeeper
      $>zookeeper-server-start.sh /home/hyxy/soft/kafka/config/zookeeper.properties 
      $>jps
	4264 Jps
	3178 QuorumPeerMain
    2.开启Broker
      参照{KAFKA_HOME/config/server.properties}
         broker.id=0                           //必须为整数;brokerID理解为分区号
         log.dirs=/home/hyxy/tmp/kafka-logs    //消息存放位置
         zookeeper.connect=localhost:2181      //注册zookeeper
      $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server.properties
      $>jps
	3424 Kafka
	4264 Jps
	3178 QuorumPeerMain
    3.创建主题:
      $>kafka-topics.sh --create --topic test --zookeeper localhost:2181 --partitions 1 --replication-factor 1
      reated topic "test".
      $>zkCli.sh
      [zk: localhost:2181(CONNECTED) 1] ls /brokers/topics
      [test]
      作用:1.在Zookeeper中注册topic节点;2.在【broker-->log.dirs属性】目录创建toptic主题
    4.开启生成者producer
      $>kafka-console-producer.sh --topic test --broker-list localhost:9092
      $>jps
	3424 Kafka
	4770 Jps
	4531 ConsoleProducer
	3178 QuorumPeerMain
       作用:开启守护进程ConsoleProducer
    5.开启消费者
      $>kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
      $>jps
	3424 Kafka
	5521 Jps
	4531 ConsoleProducer
	5270 ConsoleConsumer
	3178 QuorumPeerMain
      作用:开启守护进程ConsoleConsumer
    6.在producer(生产者一端)发送消息
       producer>hello world
       consumer>hello world
五:单节点,多Broker集群
  
  1.开启zookeeper
      $>zookeeper-server-start.sh /home/hyxy/soft/kafka/config/zookeeper.properties 
      $>jps
	4264 Jps
	3178 QuorumPeerMain
    2.开启多个Broker:案例模拟采用三个broker服务器
       a.复制server.properties两个,如下;
         $>cp server.properties server-1.properties
	 $>cp server.properties server-2.properties
       b.修改每个server配置,如下:
         【server-1.properties】
	      broker.id=1      
	      port=9093
	      log.dirs=/home/hyxy/tmp/kafka-logs-1
	 【server-2.properties】
	      broker.id=2      
	      port=9094
	      log.dirs=/home/hyxy/tmp/kafka-logs-2
	 【server-2.properties】
	      broker.id=0      
	      port=9092
	      log.dirs=/home/hyxy/tmp/kafka-logs
       c.分别启动kafka服务
          $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server.properties
	  $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server-1.properties
	  $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server-2.properties
       d.查看jps
          $>jps
		7090 Kafka
		7666 Kafka
		7394 Kafka
		6854 QuorumPeerMain
		7927 Jps
    3.创建主题:创建名为“hyxy”的主题,并设置其分区为2,复本为2
       $>kafka-topics.sh --create --topic hyxy --zookeeper localhost:2181 --partitions 2 --replication-factor 2
       Created topic "hyxy".
       验证:
         查看[log.dirs]目录下,主题生成的结果!!
    4.启动Producer
       $>kafka-console-producer.sh --topic hyxy --broker-list localhost:9092,localhost:9093,localhost:9094
    5.启动消费者
       $>kafka-console-consumer.sh --zookeeper localhost:2181 --topic hyxy --from-beginning
    6.属性说明:
       创建名为“topic1”的主题,并设置其分区为3,复本为3
           $>kafka-topics.sh --create --topic topic1 --zookeeper localhost:2181 --partitions 3 --replication-factor 3
       创建名为“topic2”的主题,并设置其分区为2,复本为1
           $>kafka-topics.sh --create --topic topic2 --zookeeper localhost:2181 --partitions 2 --replication-factor 1
       验证:
         查看[log.dirs]目录下,主题生成的结果!!
    7.复本数(--replication-factor)不能大于broker数
       验证:创建名为“topic3”的主题,并设置其分区为4,复本为4
          $>kafka-topics.sh --create --topic topic3 --zookeeper localhost:2181 
	                    --partitions 4 
			    --replication-factor 4
          Error while executing topic command : replication factor: 4 larger than available brokers: 3
	  [2018-09-12 14:08:36,196] ERROR kafka.admin.AdminOperationException: replication factor: 4 larger than available brokers: 3
		at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:117)
		at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:403)
		at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:110)
		at kafka.admin.TopicCommand$.main(TopicCommand.scala:61)
		at kafka.admin.TopicCommand.main(TopicCommand.scala)
	   (kafka.admin.TopicCommand$)

六:多节点,多Broker集群
    1.要求:
        a.搭建两台节点:master和slave1:安装kafka和zookeeper
	b.分别在master和slave1上创建两个Broker:
             master节点操作:
	         复制server.properties为server-1.properties
                 【server.properties】
		      broker.id=0
		      port=9092
		      log.dirs=/home/hyxy/tmp/master-0
		      zookeeper.connect=master:2181,slave1:2181,slave2:2181
		 【server-1.properties】
		      broker.id=1
		      port=9093
		      log.dirs=/home/hyxy/tmp/master-1
		      zookeeper.connect=master:2181,slave1:2181,slave2:2181
             slave1节点操作:
	         复制server.properties为server-1.properties
                 【server.properties】
		      broker.id=2
		      port=9092
		      log.dirs=/home/hyxy/tmp/slave1-0
		      zookeeper.connect=master:2181,slave1:2181,slave2:2181
		 【server-1.properties】
		      broker.id=3
		      port=9093
		      log.dirs=/home/hyxy/tmp/slave1-1
		      zookeeper.connect=master:2181,slave1:2181,slave2:2181
    2.开启zookeeper:分别在master和slave1节点上执行以下命令:
       $>zkServer.sh start
    3.分别开启kafka
      master操作:
         $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server.properties
         $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server-1.properties
      slave1操作:
         $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server.properties
         $>kafka-server-start.sh /home/hyxy/soft/kafka/config/server-1.properties
    4.测试
       创建主题:
       开启Producer
       开启Consumer

作者:Coding_Now
来源链接:https://www.cnblogs.com/lyr999736/p/10695931.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/42574.html

标签: Kafka
分享给朋友:

“kafka的安装和简单概念” 的相关文章

kafka集群搭建

kafka集群搭建

本文将记录使用kafka镜像,分别在两种场景下搭建3节点集群:1.在一台机器上使用容器方式安装kafka集群;2.在三台机器上使用容器方式安装kafka集群。 此次使用的是wurstmeister的,下载量是比较大的。使用下面命令下载: docker pull wur...

kafka消息长度限制

更改为10M 客户端代码增加:max_request_size=10485760, 服务端配置:replica.fetch.max.bytes=10485760,message.max.bytes=10485760...

kafka-server-stop.sh关闭Kafka失败

Kafka brokers need to finish the shutdown process before the zookeepers do. So start the zookeepers, then the kafka brokers wil...

在CentOS 7上安装Kafka

简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、S...

Kafka 安装和简单使用

Kafka 安装和简单使用

文章目录 Kafka 安装和简单使用 kafka下载地址 windows 系统...

kafka的基本概念和工作流程分析

kafka的基本概念和工作流程分析

为什么需要消息队列   周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了…...

Linux下Kafka下载与安装教程

Linux下Kafka下载与安装教程

原文链接:http://www.studyshare.cn/software/details/1176/0 一、预备环境 Kafka是java生态圈中的一员,运行在java虚拟机上,按Kafka官方说明,java环境推荐Java8;Kafka需要Zookeeper保存集群的...

Linux安装新版Kafka3.0

Linux安装新版Kafka3.0

最近开始玩Kafka了,想着装一下新版本的玩玩,然后网上找Kafka3.0的安装教程,发现安装Kafka3.0的倒是有,但是zookeeper还是单独安装的,这就不满足我的需求了,我就是单纯的想玩玩Kafka,我还得再去另外安装zookeepe...

Kafka 快速入门(安装)

Kafka 快速入门(安装)

kafka学习目录:kafka目录 二、Kafka 快速入门 2.1、windows版安装 2.1.1、Quick Start 本次安装学习在Windows操作系统进行。(Linux版本的差别不大,运行脚本文件后缀从bat...

Kafka如何保证消息不丢失不重复

首先需要思考下边几个问题: 消息丢失是什么造成的,从生产端和消费端两个角度来考虑 消息重复是什么造成的,从生产端和消费端两个角度来考虑 如何保证消息有序 如果保证消息不重不漏,损失的是什么 大概总结下 消费端重复消费:建立去重表 消费端丢失数据...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。