大数据学习之Kafka消息队列、Spark分布式计算框架一

Kafka消息队列

章节一.kafka入门

4.kafka入门_消息队列两种模式

5.kafka入门_架构相关名词

Kafka 入门 _ 架构相关名词
事件 记录了世界或您的业务中 发生了某事 的事实。在文档中
也称为记录或消息。当您向 Kafka 读取或写入数据时,您以事件的
形式执行此操作。从概念上讲,事件具有键、值、时间戳和可选的
元数据标头。这是一个示例事件:
事件键: 白富美
事件的值: 向土豪 支付了 520
事件时间戳: “yyyy 05 20 13:14”
生产者 是那些向 Kafka 发布(写入)事件的客户端应用程序。
消费者 是订阅(读取和处理)这些事件的那些客户端应用程
序。在 Kafka 中,生产者和消费者完全解耦并且彼此不可知,这是
实现 Kafka 众所周知的高可扩展性的关键设计元素。例如,生产者
永远不需要等待消费者。 Kafka 提供了各种 保证 ,例如一次性处理
事件的能力。
主题 :事件被组织并持久地存储在 主题 中。 Kafka 中的主题始
终是多生产者和多订阅者:一个主题可以 N(N>=0) 个向其写入事件
的生产者,以及订阅这些事件的 N(N>=0) 个消费者。主题中的事件
可以根据需要随时读取 —— 与传统的消息传递系统不同,事件在消
费后不会被删除。相反,您可以通过每个主题的配置设置来定义
Kafka 应该将您的事件保留多长时间,之后旧事件将被丢弃。 Kafka
的性能在数据大小方面实际上是恒定的,因此长时间存储数据是非
常好的

6.kafka入门_基础架构

7.kafka入门_下载安装一

8.kafka入门_下载安装二

9.kafka入门_集群启停脚本

Kafka 入门 _ 集群启停脚本
[root@node2 opt] # vim /etc/profile
# kafka 的环境变量
export KAFKA_HOME = /opt/kafka
export PATH = $PATH : $KAFKA_HOME /bin
[root@node2 opt] # source /etc/profile
[root@node2 ~] # kafka-topics.sh --version
3 .0.1 (Commit:8e30984f43e64d8b)
kafka-server-start.sh -daemon
/opt/kafka/config/server.properties
[root@node2 opt] # jps
3248 QuorumPeerMain
3761 Jps
3736 Kafka
kafka-server-stop.sh
[root@node2 opt] # cd /root/
11 [root@node2 ~] # mkdir bin/
[root@node2 ~] # cd bin/
[root@node2 bin] # vim kafka.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "Please input arg:[start/stop]"
exit
fi
case $1 in
start )
for i in node2 node3 node4
do
   
echo "--------start $i 's kafka--------"
   
ssh $i /opt/kafka/bin/kafka-server-start.sh
-daemon /opt/kafka/config/server.properties
done
;;
stop )
for i in node2 node3 node4
do
   
echo "--------stop $i 's kafka--------"
   
ssh $i /opt/kafka/bin/kafka-server-stop.sh
done
;;
*)
echo "Arg Error Please input arg:
[start/stop]"
exit
;;  
esac

参数 描述

--bootstrap-server
node3:9092
连接的 Kafka Broker 主机名称和端口号
--topic
<String: topic> 比如: topicA
操作的 topic 名称
--list
查看所有主题
--create
创建主题
--delete
删除主题
--alter
修改主题
--describe
查看主题详细描述
--partitions
<Integer: # of partitions>
设置分区数
--replication-factor
<Integer: replication factor>
设置分区副本
--config
<String: name=value>
更新系统默认的配置
--version
查看当前系统 kafka 的版本
添加可执行权限: [root@node2 bin]# chmod +x kafka.sh
启动测试: kafka.sh start 注意:提前启动 zk 集群。
关闭测试: kafka.sh stop

10.kafka入门_Topic命令行操作

11.kafka入门_消息发送和接收

章节二.生产者

12.生产者_发送数据原理剖析一

13.生产者_发送数据原理剖析二

14.生产者_同步发送数据一

15.生产者_同步发送数据二

node2 上开启 Kafka 消费者进行消费
7
运行 SyncCustomProducer
     
prop . put ( ProducerConfig . KEY_SERIALIZER_CL
ASS_CONFIG ,
StringSerializer . class . getName ());
     
prop . put ( ProducerConfig . VALUE_SERIALIZER_
CLASS_CONFIG ,
StringSerializer . class . getName ());
       
//TODO 3. 声明并实例化生产者对象
       
KafkaProducer < String , String >
producer =
           
new KafkaProducer < String ,
String > ( prop );
       
//TODO 4. 发送消息
       
for ( int i = 0 ; i < 5 ; i ++ ){
           
// 同步发送消息
           
producer . send ( new
ProducerRecord <>
( "topicA" , "sync_msg" + i )). get ();
      }
       
//TODO 5. 关闭生产者
       
producer . close ();
  }
}
[root@node2 ~] # kafka-console-consumer.sh
--bootstrap-server node2:9092 --topic
topicA
22 8
观察 node2 Kafka 消费者消费消息的情况
生产者 _ 异步发送数据
代码实现
1
创建类 UnSyncCustomProducer
2
编写代码
[root@node2 ~]# kafka-console-consumer.sh
--bootstrap-server node2:9092 --topic
topicA
sync_msg0
sync_msg1
sync_msg2
sync_msg3
sync_msg4

16.生产者_异步发送数据

17.生产者_异步回调发送数据

代码实现
1
创建类 UnSyncCallBackCustomProducer
2
编写代码
[root@node2 ~] # kafka-console-consumer.sh
--bootstrap-server node2:9092 --topic
topicA
unsync_msg0
unsync_msg1
unsync_msg2
unsync_msg3
unsync_msg4
package com . itbaizhan . kafka . producer ;
26 import
org . apache . kafka . clients . producer . * ;
import
org . apache
### VSCode Java 开发配置和使用教程 #### 安装必要的扩展包 为了使 Visual Studio Code (VSCode) 成为强大的 Java 开发工具,在 VSCode 中需安装一系列针对 Java 的扩展来增强其功能[^1]。这些扩展可以从官方市场获取,包括但不限于用于支持基本语法高亮、调试等功能的核心 Java 扩展。 #### 设置 Java 环境变量 确保本地计算机上已正确设置了 JAVA_HOME 变量指向 JDK 安装路径,并且在系统的 PATH 环境变量中加入了 `%JAVA_HOME%\bin` 这样可以在任何地方通过命令行调用 `java` 命令验证是否成功设置好环境变量[^3]。 #### 配置 Maven 构建工具 对于基于 Maven 的项目来说,除了要单独下载并安装 Apache Maven 外,还需要按照特定的方式将其集成到 VSCode 当中以便能够顺利执行构建操作。这通常涉及到更新 settings.json 文件中的 maven.executable.path 字段指定 mvn.exe 的位置以及调整其他可能影响编译过程的参数[^2]。 #### 加载额外的功能插件 考虑到实际应用场景的需求,可以考虑加载更多实用性的第三方插件来辅助日常编码工作。比如 MyBatis 相关的数据访问层框架的支持可以通过安装像 "vsc-mybatis" 或者 "mybatisX" 类似的插件实现;而 Spring Boot 应用程序则依赖于专门定制过的模板和其他资源文件来进行快速原型设计与迭代开发。 #### 掌握常用快捷方式 熟悉一些常用的编辑器内部定义好的键盘组合可以帮助提高工作效率。例如 F5 是用来触发内置调试器运行当前活动文档作为启动项的选择之一;另外还可以利用 Ctrl+Shift+B 来发起一次完整的构建流程等等。 ```json { "maven.executable.path": "C:\\Program Files\\Apache\\Maven\\bin\\mvn.cmd" } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值