| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 认识与简单使用kafka -> 正文阅读 |
|
[大数据]认识与简单使用kafka |
kafka基本概念 kafka消息被消费了不会删除 会一直保存在存储消息的文件中 配置文件中有参数可以设置 这个文件多久删除一次 broker(读音 哺乳可 中文意思经纪人、代理人 在kafka中可以理解为 kafka的服务端 就是运行kafka作为消息队列逻辑的代码) topic(读音 套白可 中文意思主题、题目、总论 在kafka中可以理解为消息存储的最大单位) producer(读音 破丢色 中文意思制作人、制片人、生产者、发生器 在kafka中理解为消息的生产者) consumer(读音 看搜磨 中文意思消费者、用户、顾客 在kafka中理解为 消息的消费者) consumer group(读音 看搜磨 谷如破 中文意思消费者组 在kafka的世界中 它把每个consumer全都放在一个小组中 你如果没设置这个小组它默认也是有一个小组的) partition(读音 破提神 中文意思划分、分开、分割等 在kafka中消息存储的最小单位 topic中包含partition partition代表一个文件 存储消息的文件) kafka安装与使用 kafka是scala语言开发 这个语言跟java一样也要运行在jvm中 所以我们要安装jdk 安装jdk百度有一大堆方法这个不是主线 然后需要安装zookeeper 安装zookeeper之前写过 安装kafka wget https://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.11-2.4.1.tgz # 2.11是scala的版本,2.4.1是kafka的版本 修改kafka配置文件config/server.properties #broker.id属性在kafka集群中必须要是唯一 启动服务 启动脚本语法:kafka-server-start.sh [-daemon] server.properties
创建主题 bin/kafka-topics.sh --create --zookeeper 192.168.65.60:2181 --replication-factor 1 --partitions 1 --topic test 查看主题 bin/kafka-topics.sh --list --zookeeper 192.168.65.60:2181 删除主题 bin/kafka-topics.sh --delete --topic test --zookeeper 192.168.65.60:2181 发送消息 bin/kafka-console-producer.sh --broker-list 192.168.65.60:9092 --topic test
消费消息 bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092 --topic test bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092 --from-beginning --topic test #这个命令的意思是从test的第一条消息开始消费 消费多个主题 bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092 --whitelist “test|test-2” 单播消费 bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092 --consumer-property group.id=testGroup --topic test 多播消费 bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092 --consumer-property group.id=testGroup-2 --topic test 查看消费者组名 bin/kafka-consumer-groups.sh --bootstrap-server 192.168.65.60:9092 --list 查看消费者组的消费偏移量 bin/kafka-consumer-groups.sh --bootstrap-server 192.168.65.60:9092 --describe --group testGroup current-offset:当前消费组的已消费偏移量 topic跟partition topic是某个小区的保安队队长 都能当队长了肯定人数大于1 假设队长的工作是管理队员其它的都不管 partition就是队员了 每个队长都有一个或者多个队员 在kafka中的topic包含partition partition跟队员一样 负责干活 干活的流程 老板找了保安的队长跟队长说接下来干什么什么 然后队长回来之后跟队员说 然后队员去干活 kafka中 生产者发消息这个消息就会找topic然后去找partition 然后把消息存到磁盘 partition可以跟磁盘看到一个东西 partition是消息在内存中的叫法 这个磁盘文件在哪根据配置文件中log.dir=/usr/local/data/kafka-logs这个属性设置的 可以有多个partition也就是说会有多个保存消息的文件 如果有多台kafka机器 这个多个文件会在不同的机器上 多台kafka机器只能有一台机器对这个文件进行修改 partition称为分区 创建多个分区的主题 –replication-factor 3 // 表示分区之后的文件再备份3分 –partitions 2 // 表示给主题设置两个分区 查看topic情况 bin/kafka-topics.sh --describe --zookeeper 192.168.65.60:2181 --topic test1 leader节点负责给定partition的所有读写请求。 给主题扩容 bin/kafka-topics.sh -alter --partitions 3 --zookeeper 192.168.65.60:2181 --topic test kafka集群 机器3 启动2跟3机器 kafka做集群只要zookeeper连接地址相同 它们就可以自行的互相发现 kafka集群是一个无状态的链接 topic会有状态 去zookeeper可以看到kafka配置的一些信息brokers这个节点可以看到集群的状态等 kafka没有单机这一说 kafka生来就是集群状态 kafka一台机器也可以说是一个集群 创建新的topic bin/kafka-topics.sh --create --zookeeper 192.168.65.60:2181 --replication-factor 3 --partitions 2 --topic my-replicated-topic 查看topic状态 bin/kafka-topics.sh --describe --zookeeper 192.168.65.60:2181 --topic my-replicated-topic 发送消息 bin/kafka-console-producer.sh --broker-list 192.168.65.60:9092,192.168.65.60:9093,192.168.65.60:9094 --topic my-replicated-topic 消费消息 bin/kafka-console-consumer.sh --bootstrap-server 192.168.65.60:9092,192.168.65.60:9093,192.168.65.60:9094 --from-beginning --topic my-replicated-topic 停止机器1 ps -ef | grep server.properties kill 进程号 再次查看topic状态 bin/kafka-topics.sh --describe --zookeeper 192.168.65.60:9092 --topic my-replicated-topic 发送消费机制 Producers Consumers 队列模式就是同一个消息只能被消费者组中的一个消费者消费 这样的一个东西 发布订阅模式就是同一个消息可以被多个消费者组进行消费 顺序消费 topic创建一个分片就可以实现顺序消费 java客户端
kafka-clients版本根kafka的版本一样就可以 消息发送者代码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:40:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |