欢迎投稿或推荐你的项目!请前往 GitHub 的 aikuyun/bt_weekly 提交 issue。
1. Kafka 的分区数及数据发送
在讨论 Kafka 的分区数之前,让我们先了解一下 Kafka 的基本概念:Kafka 是一个高吞吐量的分布式消息系统,通过优化底层机制,包括使用页缓存、顺序写入以及 Zero-Copy 技术,大大提高了 I/O 性能。然而,单机性能提升有限,要实现更高吞吐量,Kafka 依赖于分区机制,将消息分散到多个分区,并分布保存在不同节点上。
分区的实际作用
分区分配规则
Kafka 默认根据消息的键进行分区分配,即 hash(key) % numPartitions
。如果未指定键,则 Kafka 会使用缓存或随机选择的方式分配分区。
2. 开发 Spark 流式程序
开发 Spark 流式程序需要编写 Scala 代码。Scala 语法简洁,但缺乏注释会使代码难以理解。
Spark 相关配置
实例化 Stream
Scala 下划线的用途
原则
房贷
周末
Lua 脚本是一种轻量级的脚本语言,具有跨平台特性,易于嵌入到多种编程语言中。Lua 脚本体积小,执行速度快,且每次执行都是原子性的。
在单实例 JVM 中,常见的并发控制手段包括 synchronized 关键字、volatile 关键字和 ReentrantLock。但在分布式环境中,这些方法无法有效处理跨 JVM 的并发问题,这时需要借助分布式锁。
GitHub 大数据、数据挖掘、推荐系统、机器学习相关资源
Lua 官方文档
开源 Lua 脚本调试工具:ZeroBrane Studio
本专栏还会定期同步到公众号和知识星球,欢迎订阅。扫描二维码或在微信中搜索“cuteximi”。