
项目预研
文章平均质量分 92
super_man_0820
无无
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
KafkaConsumer高阶Api消费Util
使用Kafka高阶Api,基于通用业务场景封装基于Kafka0.8版本的消费工具类。 项目背景: 运行任务的监控数据通过kafka上报,应用中需要消费Topic中的数据。 功能介绍: 工具类有如下特性 ConsumerGroup提供通用的Topic消费服务 以Builder模式配置ZK、Topic、GroupId、消费线程数、线程池大小 支持复用现有线程池,将消费任务(业务逻辑)放入现有线程池 ...原创 2019-06-16 15:03:26 · 1146 阅读 · 0 评论 -
Curator 三种 Watcher 监听实现
项目背景: 实时 Flink任务中,需要实现不停实时任务,清除关联维表的本地缓存。 方案: 方案采用 Zookeeper 的配置中心的功能,即当需要清除正在运行 Flink App 的维表本地缓存时,通过web端配置 Zookeeper 指定节点上的配置值,Flink App 上 Watch 指定节点上的值,一旦发生变化,Flink 即清除本地维表数据缓存。 Zookeeper特性背景 Curat...原创 2019-07-05 19:52:45 · 3080 阅读 · 0 评论 -
Zookeeper Leader选举实现
项目背景: web端monitor模块,负责处理实时应用(app)上传的metric信息,但是多台jboss不能重复处理,因此利用Zookeeper leader选举功能,从多台jboss中选出一个leader,负责分发各app给jboss进行metric统计及告警 相关说明: * Curator 有两种leader选举的recipe, 分别是 LeaderSelector 和 LeaderLat...原创 2019-07-05 20:05:03 · 351 阅读 · 0 评论 -
Curator实现全局、非阻塞可重入锁(InterProcessMutex)
项目背景: web进行sql编辑的时候,只能有一个客户端进行编辑,不允许多个客户端同时修改。 相关说明: * 浏览器端会为每个sql编辑客户端生成唯一标识:时间戳+随机数+用户工号 * 当用户尝试编辑时,需要获取该任务的特定ZK节点下的锁(排它锁) * 采用 Curator 的 InterProcessMutex 实现全局可重入锁 demo说明: * InterProcessMutexE : ...原创 2019-07-10 21:25:06 · 1211 阅读 · 0 评论 -
CodeGen实现代码生成器
项目背景: 在线开发平台web端需要对 输入的Sql进行校验,使提交的Sql务必可在Flink平台执行,尤其针对 自定义UDF 需要提前校验。 方案: Flink自身支持对原生系统函数进行校验,但是 自定义UDF 由用户业务决定,无法全量支持,因此 打算采用 CodeGen 编译 自定义UDF 后,进行校验。 (Flink 内部,在 由 Sql -> DataStream 时,也使用了 C...原创 2019-07-15 21:44:58 · 10161 阅读 · 0 评论 -
KafkaConsumer低阶Api实现数据抽样
Kafka Demo Version : 0.8.2.2 Kafka消费工具类(低阶API) 项目背景: 数据质量平台需对Topic中的数据进行抽样,为避免申请GroupId流程,同时减轻Zk压力,使用Low-Level Kafka Client进行消费 功能介绍: * 本例作为项目预研demo * 指定Topic和Partition(partition=0),查询此分区的最小/最大...原创 2019-07-12 15:18:34 · 1066 阅读 · 1 评论 -
基于Java AIO 的数传服务器项目预研demo
项目背景: 数传服务器项目,需对 与外界交互的 报文进行加/解密,提高数传服务器的报文处理能力; 因为数传服务器需随 便携设备 一起工作,所以并不能简单的依靠增加设备来提高的报文处理能力,因此项目改进点只能是提高单个设备的报文处理能力 目前数传服务器的 IO 已通过 NIO 实现,现自研以 AIO 的方式实现 Demo 相关说明: 数传服务器 属于 服务端功能,对接收到的报文进行 加/解密 后,再...原创 2019-08-05 19:39:36 · 431 阅读 · 0 评论 -
分布式锁的预研
一般实现分布式锁都有哪些方式? redis分布式锁 zk分布式锁 数据库乐观锁 为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性 在任意时刻,只有一个客户端能持有锁 不会发生死锁 即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性 只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系铃人 加...原创 2019-08-22 15:53:04 · 158 阅读 · 0 评论