Kafka配置及简单命令使用
一. Kafka中的相关概念的介绍
Kafka是一个scala实现的分布式消息中间件,其中涉及到的相关概念如下:
Kafka中传递的内容称为message(消息),message 是通过topic(话题)进行分组的 topic 和message 的关系是一对多的关系
我们称发布message的进程为producer ,就是说producer生成<topic->message>对然后 丢进kafka集群
相对应的称订阅topic处理对应message的进程为consumer
Kafka集群中的节点被称为broker 附加个图说明下:http://kafka.apache.org/documentation.html#introduction
二. Kafka中的关键参数的配置
Broker(集群总的节点)配置
broker.id : 唯一确定的一个int 类型数字 log.dirs :存储kafka数据,默认路径 为/tmp/kafka-logs port:comsumer连接的端口号 zookeeper.conect: zookeeper的链接字符串,定义的格式如下 hostname1:port1,hostname2:port2,hostname3
num.partitions : 一个topic可以被分成多个paritions 管道,每个partiions中的message有序但是多个paritions中的顺序不能保证
2.Consumer 配置
group.id :string 类型 标志consumer隶属的consumer process 组 zookeeper.connect: hostname1:port1,hostname2:port2(/chroot/path 统一数据存储路径) zookeeper 中存储了kafka的comsumers和brokers(包括topic和partition)的基本信息
3.Producer配置 metadata.book.list :host1:port1,host2:port2 request.required.acks: 0.数据完成就直接提交(可能在服务器崩溃了的时候丢失数据) 1.wait until the server acknowledges the request as successful -1.no messages lost producer.type : 确定messages是否同步提交 sync serializer.class :kafka.serializer.DefaultEncoder message 的序列化类,默认编码器处理类型都是byte[]类型
三.Kafka的简单命令
Step 1: 启动服务器
首先启动zookeeper
> bin/zookeeper-server-start.sh config/zookeeper.properties
(远程启动的时候需要在后面加上一个 & 作为后台进程,然后断开和远程的链接)
接着启动kafka服务器
> bin/kafka-server-start.sh config/server.properties
Step 2: 创建 一个 topic
> bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看topic
> bin/kafka-topics.sh --list --zookeeper localhost:2181
Step 3: Send some messages
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
This is a message
This is another message
Step 4: 启动一个客户端(消费者)
> bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
Kafka配置及简单命令使用的更多相关文章
- Kafka学习(一)配置及简单命令使用
一. Kafka中的相关概念的介绍 Kafka是一个scala实现的分布式消息中间件,当中涉及到的相关概念例如以下: Kafka中传递的内容称为message(消息),message 是通过topic ...
- kafka 配置及常用命令
1. 主要配置 config/server.properties (1) broker.id=0 # 集群中,每个 kafka 实例的值都不一样 (2) log.dirs=/tmp/kafka-l ...
- Maven相关:mvn的配置和简单命令
1.配置mvn: 点击链接 http://maven.apache.org/download.cgi 下载 解压到文件夹: 配置系统环境变量: 测试:mvn -v 2.mvn命令: 1. 显示版本信息 ...
- Linux 的简单命令以及在idea中配置码云
Linux 的简单命令: ls(list)功能:列出目录内容 cd(change directory)功能:切换目录 touch 1.txt 在当前目录创建一个文件1.txt clear:清除屏幕 p ...
- (Linux环境Kafka集群安装配置及常用命令
Linux环境Kafka集群安装配置及常用命令 Kafka 消息队列内部实现原理 Kafka架构 一.下载Kafka安装包 二.Kafka安装包的解压 三.设置环境变量 四.配置kafka文件 4.1 ...
- kafka学习之相关命令
1 分别启动zoo和kafka ./zkServer.sh start 然后需要使用./zkServer.sh status查看状态,会发现一个奇怪得问题,即使start启动的时候表示启动成功,但是s ...
- 【Apache Kafka】二、Kafka安装及简单示例
(一)Apache Kafka安装 1.安装环境与前提条件 安装环境:Ubuntu16.04 前提条件: ubuntu系统下安装好jdk 1.8以上版本,正确配置环境变量 ubuntu系统下安 ...
- zookeeper工作原理、安装配置、工具命令简介
1.Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. 2.zo ...
- Apache 的搭建及vim的简单命令
一. vim 简单命令 pwd 当前路径 ls 当前路径所有目录 cd 目录地址 跳转到指定目录 /xxx 查找xxx x 删除当前字符 n 执行上一次查找 二.为什么使用apa ...
随机推荐
- Java开发过程中开发工具Eclipse中导入jar包的过程
欢迎欣赏我的第二篇随笔.我们在创建好一个动态网站项目之后,如果没有部署maven的情况下,你可以按照以下的方法,直接把要用的jar包导入你的工程中,而不用再部署maven. 例如在使用JDBC编程时需 ...
- 在TFS中通过程序动态创建Bug并感知Bug解决状态
为便于跟踪问题解决情况,预警引擎产生的比较严重的预警日志,需要在TFS中登记Bug,通过TFS的状态流转,利用TFS Bug的Web挂钩功能,动态感知Bug解决状态,从而跟踪预警问题的解决状态, 整体 ...
- JavaScript对象原型写法区别
体现对象原型分步式写法 //原型分步式写法 //构造函数 function Person(){} //对象原型 Person.prototype.name = 'Avensatr'; Pers ...
- 读书笔记 effective c++ Item 39 明智而谨慎的使用private继承
1. private 继承介绍 Item 32表明C++把public继承当作”is-a”关系来对待.考虑一个继承体系,一个类Student public 继承自类Person,如果一个函数的成功调用 ...
- MongoDB基础教程系列--第二篇 MongoDB基本操作(一)
1.安装环境 在官网上下载MongoDB的最新版本,根据自身Windows版本下载正确的MongoDB版本.下载后,双击32位或者64位.msi文件,按操作提示安装就可以了. 说明: 32 位版本的 ...
- redis实现队列消息的ack
由于公司提供的队列实在太过于蛋疼而且还限制不能使用其他队列,但为了保证数据安全性需要一个可以有ack功能的队列. 原生的redis中通过L/R PUSH/POP方式来实现队列的功能,这个当然是没办法满 ...
- Java基础之面试题
本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一篇将要讨论面向对象编程和它的特点,关于Java和它的功能 ...
- MySQL---连接器(python如何操作数据库媒介,基于python语言)
MySQL — 连接器 连接器的概念 它们往往是一类Python包,或者是一类已经写好的Python库.这些库提供了我们Python去连接数据库服务器的基本功能. 既然它是一个包,那么我们首先学会 ...
- 什么东西那么吸引别人的眼球!! -----------------------------------for循环
认识for循环结构 在编码过程中,把一些重复执行代码采用循环结构进行描述,可以大大减化编码工作, 使得代码更加简洁.宜都... 1. 为什么要用for? 比如: 老师叫小明统计全班人的编号,小 ...
- 少走弯路——Android对话框AlertDialog.Builder使用方法简述
android的自定义对话框,不需要通过继承的方式来实现,因为android已提供了相应的接口Dialog Builder ,下面就是 样例: new AlertDialog.Builder(this ...