java架构之路(MQ专题)kafka集群配置和简单使用
前面我们说了RabbitMQ和RocketMQ的安装和简单的使用,这次我们说一下Kafka的安装配置,后面我会用几个真实案例来说一下MQ的真实使用场景。天冷了,不愿意伸手,最近没怎么写博客了,还请见谅。
一、目标
1.知道什么是Kafka
2.懂得kafka的单机和集群安装配置
3.了解内部参数的简单配置
二、Kafka简介

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。——百度百科
三、Kafka使用场景
- 日志收集:一个公司可以用Kafka可以收集各种服务的log,通过kafka以统一接口服务的方式开放给各种consumer,例如hadoop、Hbase、Solr等。
- 消息系统:解耦和生产者和消费者、缓存消息等。
- 用户活动跟踪:Kafka经常被用来记录web用户或者app用户的各种活动,如浏览网页、搜索、点击等活动,这些活动信息被各个服务器发布到kafka的topic中,然后订阅者通过订阅这些topic来做实时的监控分析,或者装载到hadoop、数据仓库中做离线分析和挖掘。
- 运营指标:Kafka也经常用来记录运营监控数据。包括收集各种分布式应用的数据,生产各种操作的集中反馈,比如报警和报告。
四、相关术语
- Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
- Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。
- Partition
Partition是物理上的概念,每个Topic包含一个或多个Partition.
- Producer
负责发布消息到Kafka broker
- Consumer
消息消费者,向Kafka broker读取消息的客户端。
- Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)。
五、单机安装
1.安装jdk,输入yum install -y java-1.8.0-openjdk* 耐心等待即可,安装完成以后,输入$ java -version,检查是否安装成功。
2.由于Kafka是基于Zookeeper环境的,我们安装一下Zookeeper(不安装也可以,最好配置一下,便于后期理解,建议安装3.*版本)。我以前写过Zookeeper的安装过程,想看的可以去了解一下https://www.cnblogs.com/cxiaocai/p/11597465.html
3.输入wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz 等待下载完成,Kafka现在是0.*,1.*,2.*三个版本,这里建议使用1.*版本,你也可以下载最新的2.3.1版本,下载方式wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.1/kafka_2.12-2.3.1.tgz,这里说一下,kafka_2.12-2.3.1.tgz前面的2.12是Scala语言版本,后面的2.3.1才是我们的Kafka的版本。官网地址:http://kafka.apache.org/
4.解压tar -zxvf kafka_2.11-1.1.0.tgz
5.进入到config目录下,vim server.properties,我们在123行可以看到Zookeeper的配置如下(不是localhost的自己改一下)

6.启动$ ./bin/kafka-server-start.sh -daemon config/server.properties
7.进入Zookeeper下查看节点信息。

输入jps看到我们的进程kafka,单机配置成功。
六、集群安装
1.重复单机安装步骤。
2.修改配置文件,在21行broker.id设置为不同的数字,第一台可以设置0,第二台1,依次类推,在123行 zookeeper.connect写入Zookeeper集群连接,例如zookeeper.connect=47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181。
3.分别启动三个Kafka。
4.测试集群,创建一个主题./bin/kafka-topics.sh --create --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181 --replication-factor 1 --partitions 1 --topic test
到其它服务器下查看现有主题即可。
七、简单使用
1.创建主题 ./bin/kafka-topics.sh --create --zookeeper IP:端口,IP:端口 --replication-factor 副本数 --partitions 分区数 --topic 主题名
例如:./bin/kafka-topics.sh --create --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181 --replication-factor 1 --partitions 1 --topic xiaocaijishu
2.查看现有主题 ./bin/kafka-topics.sh --list --zookeeper IP:端口,IP:端口
例如:./bin/kafka-topics.sh --list --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181
3.删除主题 ./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper IP:端口,IP:端口
例如:./bin/kafka-topics.sh --delete --topic xiaocaijishu2 --zookeeper 47.105.137.93:2181,114.215.145.41:2181,115.29.151.4:2181
4.发送消息 ./bin/kafka-console-producer.sh --broker-list Kafka服务器IP:9092 --topic 主题名
例如:./bin/kafka-console-producer.sh --broker-list 47.105.137.93:9092 --topic xiaocaijishu
5.消费消息./bin/kafka-console-consumer.sh --bootstrap-server Kafka服务器IP:9092 --consumer-property group.id=消费组名称 --topic 主题名
例如: ./bin/kafka-console-consumer.sh --bootstrap-server 47.105.137.93:9092 --consumer-property group.id=xiaocaiGroup --topic xiaocaijishu
6.查看现有消费组 ./bin/kafka-consumer-groups.sh --bootstrap-server Kafka服务器IP:9092 --list
例如:./bin/kafka-consumer-groups.sh --bootstrap-server 47.105.137.93:9092 --list

最进弄了一个公众号,小菜技术,欢迎大家的加入

java架构之路(MQ专题)kafka集群配置和简单使用的更多相关文章
- Kafka集群配置---Windows版
Kafka是一种高吞吐量的分布式发布订阅的消息队列系统,Kafka对消息进行保存时是通过tipic进行分组的.今天我们仅实现Kafka集群的配置.理论的抽空在聊 前言 最近研究kafka,发现网上很多 ...
- HyperLedger Fabric基于zookeeper和kafka集群配置解析
简述 在搭建HyperLedger Fabric环境的过程中,我们会用到一个configtx.yaml文件(可参考Hyperledger Fabric 1.0 从零开始(八)--Fabric多节点集群 ...
- Kafka 集群配置SASL+ACL
一.简介 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...
- kafka集群配置与测试
刚接触一些Apache Kafka的内容,用了两天时间研究了一下,仅以此文做相关记录,以供学习交流. 概念: kafka依赖的项: 1. 硬件上,kafka利用线性存储来进行硬盘直接读写. 2. k ...
- kafka能做什么?kafka集群配置 (卡夫卡 大数据)
什么是Kafka 官网介绍: 几个概念: 详细介绍 : 操作kafka: kafka集群 消息测试 问题检测 什么是Kafka 官网介绍: ApacheKafka是一个分布式流媒体平台.这到底是什么意 ...
- kafka集群配置和java编写生产者消费者操作例子
kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...
- linux运维、架构之路-Hadoop完全分布式集群搭建
一.介绍 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件 ...
- Kafka集群配置
kafka_2.11-0.9.0.1.tgz 1.进入项目前的目录 cd /home/dongshanxia mkdir kafka #创建项目目录 cd kafka #进入项目目录 mkdir ka ...
- kafka集群安装及简单使用
关于kafka是什么及原理,请参考kafka官方文档的介绍:http://kafka.apache.org/documentation/#introduction ,英文不好的同学可以看这里http: ...
随机推荐
- 洛谷P3258 [JLOI2014]松鼠的新家【LCA+树上差分】
简要题意 树上n个节点,给定路径,求每个点经过次数 题意分析 对于每两个点,有两种情况,第一种,他们的lca为本身,第二种,他们有公共祖先,又要求他们的点经过次数,暴力是不可能的,复杂度不对,所以可以 ...
- [NOIp2018] luogu P5020 货币系统
还在补暑假作业. 题目描述 你有一个由 NNN 种面值的货币组成的货币系统.定义两个货币系统等价,当且仅当 ∀x∈N∗\forall x\in\N^*∀x∈N∗ 要么同时能被两个货币系统表示,要么同时 ...
- go-数组-切片-字典
声明一个数组变量的同时为该变量赋值. ], , } 另一种便捷方法, 类型字面量中省略代表其长度的数字 , , } 对于数组来说,索引值既不能小于0也不能大于或等于数组值的长度. 索引值的最小有效值从 ...
- hadoop-3.1.2启动httpfs
最近有一个需求,要求使用httpfs读取数据,一开始看到httpfs这个词,第一感觉是不是多了个f,是不是https,后来百度一下,其实不然. httpfs其实是使用http协议访问hdfs文件系统: ...
- Spring Boot - 访问外部接口最全总结
Spring Boot - 访问外部接口 在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如调用外部的地图API或者天气API. Spring ...
- python-Debug、函数装饰器
Debug操作: 程序出问题的时候可以用debug来看一下代码运行轨迹,然后找找问题在哪里 1.先给即将debug的代码打上断点: 2.打完断点之后右键点击debug: 3.然后依次点击开始按钮让 ...
- IDEA+docker,进行远程漏洞调试(weblogic)
用于学习java漏洞debug. 以weblogic为例. cve-2017-10271 weblogic:10.3.6 环境搭建 拿docker为例 https://github.com/vulhu ...
- JAVA必知必问问题-1
数据类型 1) 基本类型: byte, int, long, float, double, boolean.... 要求记住基本类型占多少字节.范围.例如:byte 1字节范围-128-127,sho ...
- 关于微信oauth登录的坑
这是实习公司里微信公众号的一个小项目,用的是ssm.问题是获取用户openid为空. 分析下步骤 首先用户点击微信公众号按钮 访问微信服务器获取code 跳转到项目url 拿code访问微信服务器,获 ...
- day19作业
1.什么是对象?什么是类? 对象是特征和功能的结合体 类是一系列对象相同的特征和技能的集合体 2.绑定方法的有什么特点 绑定方式是由对象来调用类内部的函数,特点是会把对象当作第一个参数传入 ...