1 缘起
团队需要使用实时数据(小时级别)给业务系统使用,
数据流向是这样:实时数据-》Kafka-》Flink-》Redis(集群和哨兵),
可是,Flink原生并不支持Redis连接,
于是,有第三方提供连接工具,如https://bahir.apache.org/docs/flink/current/flink-streaming-redis/,
但是,我在实际操作的过程中,遇到问题:无法初始化Redis集群连接,异常信息如下,
大家也不用参考官方的bahir文档 了,没有作用。
所以,我探究了一下(其实是好几下)bahir的源码,准备重新写Redis的集群连接,
这里有一个小插曲,本来打算继承FlinkJedisClusterConfig这个类重新写Redis的集群连接,
发现作者还是很聪明的,将构造器设置为私有(private),不让继承,所以,这条路断了,

本文介绍了如何解决Flink使用第三方工具bahir无法连接私有IP Redis集群的问题。作者详细分析了bahir源码,发现由于使用InetSocketAddress导致无法获取私有IP。为了解决这个问题,作者重写了Redis集群连接代码,采用HostAndPort方式配置节点,成功实现了Flink连接私有IP的Redis集群。此外,还提供了完整的依赖配置、代码重写以及测试过程。
订阅专栏 解锁全文
777

被折叠的 条评论
为什么被折叠?



