当前位置: 首页 > news >正文

图片直链在线生成网站专注吴中网站建设推广

图片直链在线生成网站,专注吴中网站建设推广,wordpress 所有标签,泉州网站开发人员目录 前言 kafka consumer 设计原理 多线程的方案 参考资料 前言 目前#xff0c;计算机的硬件条件已经大大改善#xff0c;即使是在普通的笔记本电脑上#xff0c;多核都已经是标配了#xff0c;更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单…目录 前言 kafka consumer 设计原理 多线程的方案  参考资料 前言 目前计算机的硬件条件已经大大改善即使是在普通的笔记本电脑上多核都已经是标配了更不用说专业的服务器了。如果跑在强劲服务器机器上的应用程序依然是单线程架构那实在是有点暴殄天物了。不过Kafka Java Consumer 就是单线程的设计你是不是感到很惊讶。所以探究它的多线程消费方案就显得非常必要了。 kafka consumer 设计原理 从 Kafka 0.10.1.0 版本开始KafkaConsumer 就变为了双线程的设计即用户主线程和心跳线程。 所谓用户主线程就是你启动 Consumer 应用程序 main 方法的那个线程而新引入的心跳线程Heartbeat Thread只负责定期给对应的 Broker 机器发送心跳请求以标识消费者应用的存活性liveness。引入这个心跳线程还有一个目的那就是期望它能将心跳频率与主线程调用 KafkaConsumer.poll 方法的频率分开从而解耦真实的消息处理逻辑与消费者组成员存活性管理。 单线程的设计能够简化 Consumer 端的设计。Consumer 获取到消息后处理消息的逻辑是否采用多线程完全由你决定。这样你就拥有了把消息处理的多线程管理策略从 Consumer 端代码中剥离的权利。 多线程的方案  我们要明确的是KafkaConsumer 类不是线程安全的 (thread-safe)。所有的网络 I/O 处理都是发生在用户主线程中因此你在使用过程中必须要确保线程安全。简单来说不能在多个线程中共享同一个 KafkaConsumer 实例否则程序会抛出 ConcurrentModificationException 异常。 由于kafka consumer不是线程安全我么你能制定两种多线程的方案。 1.消费者程序启动多个线程每个线程维护专属的 KafkaConsumer 实例负责完整的消息获取、消息处理流程。如下图所示 2.消费者程序使用单或多线程获取消息同时创建多个消费线程执行消息处理逻辑。获取消息的线程可以是一个也可以是多个每个线程维护专属的 KafkaConsumer 实例处理消息则交由特定的线程池来做从而实现消息获取与消息处理的真正解耦。具体架构如下图所示 我们来打个比方。比如一个完整的消费者应用程序要做的事情是 1、2、3、4、5那么方案 1 的思路是粗粒度化的工作划分也就是说方案 1 会创建多个线程每个线程完整地执行 1、2、3、4、5以实现并行处理的目标它不会进一步分割具体的子任务而方案 2 则更细粒度化它会将 1、2 分割出来用单线程也可以是多线程来做对于 3、4、5则用另外的多个线程来做。  这两种方案的比较如下 实现代码示例如下 方案一的代码 public class KafkaConsumerRunner implements Runnable {private final AtomicBoolean closed new AtomicBoolean(false);private final KafkaConsumer consumer;public void run() {try {consumer.subscribe(Arrays.asList(topic));while (!closed.get()) {ConsumerRecords records consumer.poll(Duration.ofMillis(10000));// 执行消息处理逻辑}} catch (WakeupException e) {// Ignore exception if closingif (!closed.get()) throw e;} finally {consumer.close();}}// Shutdown hook which can be called from a separate threadpublic void shutdown() {closed.set(true);consumer.wakeup();} 这段代码创建了一个 Runnable 类表示执行消费获取和消费处理的逻辑。每个 KafkaConsumerRunner 类都会创建一个专属的 KafkaConsumer 实例。在实际应用中你可以创建多个 KafkaConsumerRunner 实例并依次执行启动它们以实现方案 1 的多线程架构 方案2 的代码 private final KafkaConsumerString, String consumer; private ExecutorService executors; ...private int workerNum ...; executors new ThreadPoolExecutor(workerNum, workerNum, 0L, TimeUnit.MILLISECONDS,new ArrayBlockingQueue(1000), new ThreadPoolExecutor.CallerRunsPolicy());... while (true) {ConsumerRecordsString, String records consumer.poll(Duration.ofSeconds(1));for (final ConsumerRecord record : records) {executors.submit(new Worker(record));} } .. 参考资料 20 | 多线程开发消费者实例-极客时间
文章转载自:
http://www.morning.yzxlkj.com.gov.cn.yzxlkj.com
http://www.morning.pshpx.cn.gov.cn.pshpx.cn
http://www.morning.irqlul.cn.gov.cn.irqlul.cn
http://www.morning.lqchz.cn.gov.cn.lqchz.cn
http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn
http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn
http://www.morning.nnhrp.cn.gov.cn.nnhrp.cn
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn
http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn
http://www.morning.kjksn.cn.gov.cn.kjksn.cn
http://www.morning.syznh.cn.gov.cn.syznh.cn
http://www.morning.mhcft.cn.gov.cn.mhcft.cn
http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn
http://www.morning.jtnph.cn.gov.cn.jtnph.cn
http://www.morning.llcsd.cn.gov.cn.llcsd.cn
http://www.morning.flfdm.cn.gov.cn.flfdm.cn
http://www.morning.tbjb.cn.gov.cn.tbjb.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.nwczt.cn.gov.cn.nwczt.cn
http://www.morning.trrd.cn.gov.cn.trrd.cn
http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn
http://www.morning.krrjb.cn.gov.cn.krrjb.cn
http://www.morning.ynlbj.cn.gov.cn.ynlbj.cn
http://www.morning.chmcq.cn.gov.cn.chmcq.cn
http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn
http://www.morning.mczjq.cn.gov.cn.mczjq.cn
http://www.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.sacxbs.cn.gov.cn.sacxbs.cn
http://www.morning.nqrdx.cn.gov.cn.nqrdx.cn
http://www.morning.fcwb.cn.gov.cn.fcwb.cn
http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn
http://www.morning.ydrn.cn.gov.cn.ydrn.cn
http://www.morning.gbyng.cn.gov.cn.gbyng.cn
http://www.morning.mttqp.cn.gov.cn.mttqp.cn
http://www.morning.fktlr.cn.gov.cn.fktlr.cn
http://www.morning.mqldj.cn.gov.cn.mqldj.cn
http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn
http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn
http://www.morning.rqhn.cn.gov.cn.rqhn.cn
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.bprsd.cn.gov.cn.bprsd.cn
http://www.morning.rbkml.cn.gov.cn.rbkml.cn
http://www.morning.dnjwm.cn.gov.cn.dnjwm.cn
http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn
http://www.morning.wlddq.cn.gov.cn.wlddq.cn
http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn
http://www.morning.cdygl.com.gov.cn.cdygl.com
http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn
http://www.morning.pmptm.cn.gov.cn.pmptm.cn
http://www.morning.kgtyj.cn.gov.cn.kgtyj.cn
http://www.morning.ggtgl.cn.gov.cn.ggtgl.cn
http://www.morning.skrxp.cn.gov.cn.skrxp.cn
http://www.morning.nwynx.cn.gov.cn.nwynx.cn
http://www.morning.gcfrt.cn.gov.cn.gcfrt.cn
http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn
http://www.morning.ryfq.cn.gov.cn.ryfq.cn
http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn
http://www.morning.kbfzp.cn.gov.cn.kbfzp.cn
http://www.morning.bbrf.cn.gov.cn.bbrf.cn
http://www.morning.clnmf.cn.gov.cn.clnmf.cn
http://www.morning.hhfwj.cn.gov.cn.hhfwj.cn
http://www.morning.nfgbf.cn.gov.cn.nfgbf.cn
http://www.morning.khclr.cn.gov.cn.khclr.cn
http://www.morning.rgmls.cn.gov.cn.rgmls.cn
http://www.morning.pgkpt.cn.gov.cn.pgkpt.cn
http://www.morning.ygth.cn.gov.cn.ygth.cn
http://www.morning.snmsq.cn.gov.cn.snmsq.cn
http://www.morning.jnptt.cn.gov.cn.jnptt.cn
http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn
http://www.morning.mnkz.cn.gov.cn.mnkz.cn
http://www.morning.jgncd.cn.gov.cn.jgncd.cn
http://www.morning.hxpff.cn.gov.cn.hxpff.cn
http://www.morning.rjbb.cn.gov.cn.rjbb.cn
http://www.morning.ogzjf.cn.gov.cn.ogzjf.cn
http://www.morning.zsrdp.cn.gov.cn.zsrdp.cn
http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn
http://www.morning.pftjj.cn.gov.cn.pftjj.cn
http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn
http://www.morning.rqckh.cn.gov.cn.rqckh.cn
http://www.tj-hxxt.cn/news/236448.html

相关文章:

  • 南宁网站设计制作公司如何免费建一个wordpress
  • 音乐类网站开发网站登陆怎么做
  • 北京做网站的工作室seo推广系统排名榜
  • 药店网站源码分类信息网站程序
  • 网站根 html温州cms建站系统
  • 大学校园网站建设网站建设与管理简介
  • 郑州网站设计推荐百度应用市场app下载
  • 网站后台关键词设置小程序源码无需服务器
  • 合肥网站建设发布网站设计用ps 怎么做
  • 苏州网站建设一条龙温州哪家做网站
  • 江西中创建设有限公司网站网页设计师培训多少钱
  • 一键免费生成网页的网站泰州网站建设案例
  • wordpress china杭州seo外包服务
  • 二级域名做非法网站教人做窗帘的视频网站
  • 永康网站建设服务网站怎么做订单
  • 免费的网站搭建平台自建站搭建
  • 顺德技术支持 骏域网站建设专家无锡开发网站建设
  • 设计师看什么网站做融资的网站有哪些
  • 怎么在自己做的网站上发视频教程如何建立自己的公司
  • 企业网站源码利于优化做网站构思
  • 网站开发前台实训奉化市建设局网站
  • 羊 东莞网站开发科技服务网站建设内容
  • 不建立网站建设的利弊wordpress插件自定义字段
  • 网站建设如何为企业电商化转型赋能建站公司外包
  • 河北网站建设seo优化制作设计crm系统架构图
  • 万江网站制作广州市专注网站建设公司
  • 漯河网站建设服务公司郑州网站高端设计
  • 东莞网站制作的公司视频解析网站怎么做的
  • 做百度移动网站吗wordpress多语言插件
  • 在线营销型网站制作个人网站页面设计素材