需求分析:
Flink实时流处理过程中,需要使用维表数据,我们需要加载维表数据进行join,一般分3种方式
1,使用预加载,在open方法里面读取数据
也可以定时读写redis的数据,同步更新内存数据
2,使用分布式缓存--不推荐
3,使用Guava cache 异步IO缓存
1)导入依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.0-jre</version>
</dependency>
2)简单使用代码
// 通过CacheBuilder构建一个缓存实例
Cache<String, String> cache = CacheBuilder.newBuilder()
.maximumSize(100) // 设置缓存的最大容量
.expireAfterWrite(1, TimeUnit.MINUTES) // 设置缓存在写入一分钟后失效
.concurrencyLevel(10) // 设置并发级别为10