目录
1. kefka简介
2. 安装kafka
3. 部署kafka集群
4. 创建Topic并使用生产者消费者生产消费消息


1. Kafka 简介

Kafka 是一个高吞吐量的分布式发布订阅消息系统,解耦了消息生产者和消息消费者。与大数据框架 Spark 配合使用,可以实现数据的实时流处理,目前做大数据相关的项目,都会用到 Kafka 消息系统。

理解 Kafka 的整体架构,可以用现实生活中我们经常做的一件事——收发邮件来做类比。公司中同事之间的邮件交流经常发生,比如小王给小李发邮件,邮件会先被发送到邮件服务器(如新浪邮件服务器),小李可以立即收取邮件,也可以到第二天才收取邮件。

2. 安装 Kafka

安装环境:

  • Ubuntu Linux 操作系统
  • xfce 终端

打开 xfce 终端,依次执行如下命令:

#切换到 opt 目录
cd /opt #下载 Kafka 软件包到当前目录中
sudo wget http://labfile.oss.aliyuncs.com/courses/859/kafka_2.10-0.10.2.1.tgz  

接着解压并重命名安装包:

#解压 Kafka 软件包
sudo tar –zxvf  kafka_2.10-0.10.2.1.tgz #重命名 Kafka 软件包文件夹名称为 kafka
sudo mv kafka_2.10-0.10.2.1  kafka  

3. 部署Kafka集群

接着将kafka的配置文件复制三份,模拟kafka集群

#进入到kafka软件包的 config 目录
cd  /opt/kafka/config#列出当前 config 文件下的文件,可以看到有个 server.properties 文件
ll #复制 server.properties 文件为 server-1.properties
sudo cp  server.properties server-1.properties sudo cp  #复制 server.properties 文件为 server-2.properties
server.properties server-2.properties

在修改这三个配置文件之前,我们需要先启动 zookeeper ,因为 Kafka 集群使用 Zookeeper 软件进行元数据信息的同步。在生产环境中,安装 Kafka 之前,需要先安装 Zookeeper。基于实验的目的,本次实验我们不再单独安装 Zookeeper 软件,而是使用 Kafka 自带的 Zookeeper 软件,从功能上讲,没有区别。

启动 Zookeeper:

#将kafka目录的执行权限授予当前用户
sudo chmod 777 -R /opt/kafka#切换到启动 Zookeeper 命令所在的目录
cd /opt/kafka/bin#使用上级目录中的 config 目录中的 zookeeper.perperties 配置文件,运行当前目录下的 zookeeper-server-start.sh 命令,启动 Kafka 软件包自带的 Zookeeper
./zookeeper-server-start.sh  ../config/zookeeper.properties 

在新的命令行终端运行命令:

#查看当前运行的 java 进程,如果看到名称为 QuorumPeerMain 的进程,说明 Zookeeper 启动成功jps

下面在新的命令行终端中编辑 Kafka 的三个配置文件(server.properties、 server-1.properties、server-2.properties),修改文件名和修改内容说明如下:

依次运行如下命令:

#切换到配置文件所在目录
cd  /opt/kafka/config #编辑 server-1.properties,编辑界面如下图所示。按上面的说明,修改相应参数,保存文件。
vi server-1.properties# 同理,按上述表格中描述,编辑 server-2.properties 文件
vi server-2.properties

至此,参数修改完成。下一步,启动 Kafka 集群。上面我们看到的三个 Kafka配置文件(server.properties、 server-1.properties、 server-2.properties),每个配置文件对应 Kafka 集群中一个节点(称为 Broker)。

依次运行如下命令,启动 Kafka 集群:

#切换到启动kafka命令所在目录
cd /opt/kafka/bin#使用配置文件 server.properties 启动第一个 Kafka Broker,注意:命令最后的 & 符号表示以后台进程启动,启动完成后,按回车键,回到命令行,启动另一个 Kafka Broker。
./kafka-server-start.sh  ../config/server.properties & #使用配置文件 server-1.properties 启动第二个 Kafka Broker 。启动完成后,按回车键,回到命令行,启动另一个 Kafka Broker 。
./kafka-server-start.sh  ../config/server-1.properties & #使用配置文件 server-2.properties 启动第三个 Kafka Broker。启动完成后,按回车键,回到命令行。
./kafka-server-start.sh  ../config/server-2.properties &#查看当前运行的java进程。如下图,出现三个 kafka 进程,说明三个 Broker 的 Kafka 集群启动成功。
jps

4. 创建Topic并使用生产者消费者生产消费消息

  1. 在 /opt/kafka/bin 目录下运行命令创建一个名为 myFirstTopic 的 Topic,命令中的参数含义我们下一节中具体介绍
 ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic myFirstTopic
  1. 在 /opt/kafka/bin 目录下运行命令,查看 Topic 创建是否成功:
./kafka-topics.sh --zookeeper localhost:2181 -–list

  1. 在 /opt/kafka/bin 目录下运行命令,启动消息生产者,用于向 Topic 发送消息:
./kafka-console-producer.sh --broker-list localhost:9092 --topic myFirstTopic
  1. 重新打开一个新的命令行终端,在 /opt/kafka/bin 目录下运行命令,启动消息消费者,用于从 Topic 中读取消息
./kafka-console-consumer.sh -–bootstrap-server  localhost:9092 --topic myFirstTopic
  1. 在消息生产者所在命令行终端中输入 hello kafka ,然后按回车键,消息发送到 Topic 。此时在消息消费者所在的命令行中,可以看到 hello kafka 消息已经收到了。

Kafka学习 之 第一个例子(一)相关推荐

  1. Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)

    准备开始学一学d3d,听说<Introduction to 3D Game Programming with DirectX 12>这本书不错,于是就拿来学一学.不料第一个例子,按照书中的 ...

  2. 菜鸟学习Spring——第一个例子

    一.概述 原来我们利用工厂来实现灵活的配置.现在利用Spring以后把这个交给了IoC容器管理.我们只要在XML文件上配上就可以了这样的话就节省了很多开发时间我们不需要知道后面的有多少只要动态的配上类 ...

  3. Python学习的第一个例子,用print语句打印一个皮卡丘。

    print('''へ /|/\7 ∠_// │ / /│ Z _,< / /`ヽ│ ヽ / 〉Y ` / /イ● 、 ● ⊂⊃〈 /() へ | \〈>ー 、_ ィ │ /// へ / ノ ...

  4. TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅

    TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...

  5. GLSL着色语言学习。橙皮书第一个例子GLSL+OpenTK+F#的实现。

    Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理, ...

  6. 01_初识Matplotlib、Figure的组成、绘图函数的输入类型、第一个例子(学习笔记)

    1.初识Matplotlib 1.1.Figure的组成 1.2.绘图函数的输入类型 1.3.第一个例子 1.初识Matplotlib Matplotlib是Python的一个模块,是一个绘图库. M ...

  7. 乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍(可供技术选型时使用)

    乐行学院RabbitMQ学习教程 第一章 RabbitMQ介绍 RabbitMQ介绍 1.RabbitMQ技术简介 2.RabbitMQ其他扩展插件 2.1监控工具rabbitmq-managemen ...

  8. Kafka学习之消费者

    Kafka学习之消费者 前言 本博客主要介绍up在学习kafka中间件时候觉得需要记录的知识点. 内容 1.消费者与消费组 消费者(Consumer)负责订阅Kafka中的主题(Topic),并且从订 ...

  9. [Big Data - Kafka] kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许 ...

最新文章

  1. 【计算机IO系类】Java NIO
  2. 工业接口RS-485的设计应用指南
  3. 网络数据采集(AngleSharp)-使用AngleSharp做html解析
  4. ASP母版页与内容页不同目录 链接问题
  5. netmiko可以连接的设备有哪些_气体报警器可以联动哪些设备
  6. html5窗口播放插件,基于jQuery UI的模拟windows窗口插件
  7. 工作4年,我从阿里巴巴辞职到了国企
  8. [转]linux下IPTABLES配置详解
  9. 实现Codeblock支持C99标准
  10. 美信科技冲刺A股上市:拟募资4亿元,公司及董事长张定珍曾遭处罚
  11. Android编程简介
  12. java无法验证证书_java – 如何解决“证书无效且无法用于验证此网站的身份”错误?...
  13. R语言使用plot函数可视化数据散点图,使用title函数为可视化图像设置自定义标题名称、自定义adj参数将标题向右侧移动
  14. 华为摄像头采集自动聚焦崩溃
  15. 反恐精英ol永恒python图_反恐精英python编程
  16. 项目2—职员有薪水了
  17. 测试进阶篇之测试用例设计-微信红包
  18. nginx 之 proxy_pass详解(好文章!!详细)
  19. docker 搭建以太坊私有链搭建
  20. 黑苹果MacOS 10.13.6(High Sierra) Itunes不显示Iphone设备

热门文章

  1. C语言实现缓冲区溢出实例
  2. Mission系统预览
  3. GlobalAlloc全局内存的使用
  4. 强!Prometheus与Zabbix的对比选型!
  5. Cocos2d-x快速打包脚本
  6. 蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
  7. 送给水深火热的 Gopher 们的解药
  8. 网易云信今年发布的WE-CAN有哪些亮点?
  9. Cmake的CMakeLists.txt写法示例
  10. 向 Fiddler 告别,拥抱 Fastest 吧!