spark Kafka 线程安全问题
KafkaConsumer is not safe for multi-threaded
报错内容:线程不安全
原因分析:Kafka consumer是非线程安全的
解决方法
1.(每个线程维护一个KafkaConsumer),这个办法其实就是为缓存在map中的CachedKafkaConsumer对应的key增加了一个参数是线程id,使得不让多个线程使用同一个consumer。
2 .(单个(或多个)consumer,多个worker线程)对spark-streaming-kafka中的CacheKafkaConsumer进行了重构。
缺点
1.更多的TCP连接开销(每个线程都要维护若干个TCP连接)
consumer数受限于topic分区数,扩展性差
频繁请求导致吞吐量下降
线程自己处理消费到的消息可能会导致超时,从而造成rebalance
2.实现麻烦
通常难于维护分区内的消息顺序
处理链路变长,导致难以保证提交位移的语义正确性
spark Kafka 线程安全问题相关推荐
- Spark 学习(六) Spark 的线程安全和序列化问题
一,必备知识 1.1 经典14问 1.2 问题前提 二,序列化问题 2.1 Spark序列化出现情况 2.2 Spark序列化问题解决 三,线程安全问题 3.1 Spark线程安全出现情况 3.2 S ...
- 关于 智能指针 的线程安全问题
先说结论,智能指针都是非线程安全的. 多线程调度智能指针 这里案例使用的是shared_ptr,其他的unique_ptr或者weak_ptr的结果都是类似的,如下多线程调度代码: #include ...
- hash是线程安全的吗?怎么解决?_这次进程、线程、多线程和线程安全问题,一次性帮你全解决了...
1. 什么是进程 一个软件,在操作系统中运行时,我们称其为进程. 进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元. 2. 什么是线程 在一个进程中,每个独立的功能都需要独立的去运行,这 ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)
2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...
- struts2学习笔记--线程安全问题小结
在说struts2的线程安全之前,先说一下,什么是线程安全?这是一个网友讲的, 如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码.如果每次运行结果和单线程运行的结果是一样 ...
- servlet单实例多线程 ---线程安全问题是由实例变量造成的,只要在Servlet里面的任何方法里面都不使用实例变量,那么该Servlet就是线程安全的。(所有建议不要在servlet中定义成员变
Servlet 单例多线程 Servlet如何处理多个请求访问? Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servl ...
- 线程安全问题产生的原因
//前提 1:多个线程操作同一个数据 2:操作共享数据的线程代码有多条 当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算 就会导致线程安全问题的产生. 解决思路: 就是将多线程操作共享 ...
- java dateformat 线程安全_SimpleDateFormat线程安全问题深入解析
背景 众所周知,Java中的SimpleDateFormat不是线程安全的,在多线程下会出现意想不到的问题.本文将解析SimpleDateFormat线程不安全的具体原因,从而加深对线程安全的理解. ...
- 获取返回值作为变量_解决多线程间共享变量线程安全问题的大杀器——ThreadLocal...
微信公众号:Zhongger 我是Zhongger,一个在互联网行业摸鱼写代码的打工人! 关注我,了解更多你不知道的[Java后端]打工技巧.职场经验等- 上一期,讲到了关于线程死锁.用户进程.用户线 ...
最新文章
- 树上分块 - Successor HDU - 4366
- 小白都看得懂的监督学习与无监督学习
- Django从理论到实战(part51)--User模型
- python对word提取数据,如何使用Python从doc / docx文件中提取数据
- P4288 [SHOI2014]信号增幅仪 最小圆覆盖
- C语言 嵌入式 面试小知识点(一)
- 基于Redis的微博的注册
- java注释越多_java 注释+常便量
- 数据抓取的艺术(三)
- Atitit.提升软件稳定性---基于数据库实现的持久化 循环队列 环形队列
- 面试题---jmeter
- java 对象转换成map_Java中对象(Object)转换成Map
- 利用github和hexo一步步生成个人博客(2)---基本配置和发表文章
- .glusterfs_如何在Ubuntu 20.04上使用GlusterFS创建冗余存储池
- Notepad++ 替换换行符
- Tektronix泰克DPO4054示波器
- 为内部业务系统(LOB)使用Exchange Online发送匿名邮件
- cesium接入高德、osm、谷歌、arcgis、mapbox地图(cesium篇.3)
- 玩转路由之 AsusWRT-Merlin 与 Entware
- Windows内核--内核空间和用户空间(3.6)
热门文章
- python学习记录三:关于ImageFont.truetype(‘Arial.ttf‘, 36)执行报错以及解决方案
- SIFT算法原理(2)-极值点的精确定位
- matlab不规则碎片拼接,一种不规则破碎单面图像快速拼接方法
- mist linux64,Mist钱包的安装与使用
- 昊鼎王五:高级运维工程师的成长之路,总有一款适合你^_^
- 安防摄像头有这么多种类,如何正确选择?
- HTML与CSS的使用与总结
- php实现一个简单的访客统计功能
- 基于数字证书的UKEY安全登录 与身份认证技术研究
- 电话用计算机接听,怎么用电脑打电话-现在你可以在电脑上接听安卓手机的电话了...