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

巧妙的设计

1. 判空逻辑,如果为空,抛异常,下面代码来自kafka client:

Assert.notNull(queue, () -> "No cache found for " + txIdPrefix);

2. 本地cache设计,一下代码来自kafka client:

	private final Map<String, BlockingQueue<CloseSafeProducer<K, V>>> cache = new ConcurrentHashMap<>();protected BlockingQueue<CloseSafeProducer<K, V>> getCache(String txIdPrefix) {if (txIdPrefix == null) {return null;}
// 下面这个方法是针对每个txIdPrefix,都创建一个LinkedBlockingQueue,并缓存起来,这里第二个参数用到了Supplier函数式接口return this.cache.computeIfAbsent(txIdPrefix, txId -> new LinkedBlockingQueue<>());}

3. kafka consumer单线程的控制逻辑CAS:

/*** Acquire the light lock and ensure that the consumer hasn't been closed.* @throws IllegalStateException If the consumer
http://www.lryc.cn/news/168187.html

相关文章:

  • 前端JavaScript中MutationObserver:监测DOM变化的强大工具
  • 28335 GPIO作为输入的配置记录
  • js脚本解决markdown本地图片->图床问题,附源代码和编译后的exe
  • C#不通过byte[],直接对内存映射文件复制内存
  • ELK之Logstash启动异常:Logstash could not be started because there is already...
  • Matlab Simulink支持system generator插件
  • redis设计规范
  • 用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)
  • 【Spark】用udf和withColumn在dafaframe中创建新列
  • AIGC 设计能替代真正的设计师设计吗?
  • 【1++的C++进阶】之emplace详解
  • React入门
  • 第三方登录以及验证
  • MS SQL Server问题汇总
  • 在线海报图片设计器、图片编辑器源码/仿照稿定设计源码
  • KMP算法(C++)
  • C++的异常类型与多级catch匹配
  • 查询IP地址可得到哪些信息
  • 考研算法47天:01背包
  • Docker实战技巧(一):Kubernetes基础操作实战
  • android java读写yaml文件
  • 科学计算器网站Desmos网站
  • 结构体-时间的计算
  • pt24django教程
  • Golang开发-new关键字
  • 遗传算法与粒子群算法的Python实现
  • 无涯教程-JavaScript - ASINH函数
  • ActiveMQ面试题(一)
  • node:glob语法以及常用的文件查找库glob、fast-glob
  • 饲料添加剂 微生物 屎肠球菌