Flink项目中的重难点(二)

在第一章中,我们采用了使用维度表写入HBase,事实表写入主流的,采用flinkCDC的方法读取mysql中配置表信息从而实现动态分流的问题。

优化一:
在第二章中,我们对于从HBase中读取数据可以使用旁路缓存的方法,快速的抓取数据,让整个数据的传输过程速度更快。于是新的问题出现了,在整个流式处理框架中,对外部数据源的信息抓取一直是一个性能瓶颈。
在这里插入图片描述

//旁路缓存模式是一种非常常见的按需分配缓存的模式。任何请求优先访问缓存,缓存命中,直接获得数据返回请求。如果未命中则,查询数据库,同时把结果写入缓存以备后续请求使用。

解决方式:
同时也不必使内存全部占满。为了追求速度,我们是用redis,将HBase中的数据从磁盘传到redis的内存中。

优化二:
异步IO
·背景:在维度表和事实表进行join的过程中,存在大量和外部系统交互的存在,这很容易成为实时计算的瓶颈。
在flink1.2中提供了异步IO,
在这里插入图片描述
简单地访问外部数据库的数据,比如使用 MapFunction,通常意味着同步交互: MapFunction 向数据库发送一个请求然后一直等待,直到收到响应。在许多情况下,等待占据了函数运行的大部分时间。//此技术由阿里巴巴提供。

异步查询实际上是把维表的查询操作托管给单独的线程池完成,这样不会因为某一个查询造成阻塞,单个并行可以连续发送多个请求,提高并发效率。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值