需要将redis 某个/类频道推送的数据写入到kafka topic中。
实现 一、编写kafka source connector代码和配置文件我这里是在github上找了一个别人已经实现了的kafka-redis-connector,选取了source的部分。git地址。
连接器配置文件xx.properties介绍:
name=定义连接器名字 connector.class=连接器的类名(例如:com.curtain.source.RedisSourceConnector或者RedisSourceConnector) tasks.max=连接器创建任务的最大数 topic=要写入的kafka主题 redis.uri=redis地址(例如:redis://127.0.0.1:6379) redis.cluster.enabled=false 不开启集群 redis.channels=订阅的redis频道 redis.channels.pattern.enabled=true 开启模糊订阅二、打包
- 首先package该项目,会有一个该项目的jar包。
- 其次收集该项目所依赖的jars。如图:
- 将这些收集到的jar包放在一个文件夹下,编写一个tar.bat文件将这些jar包全部解压。tar.bat文件内容如下:
@echo off cd %1 for /r %cd% %%i in (*.jar) do ( jar xf %%i ) pause
- 解压完之后,删除所有的.jar文件、META-INF文件夹下的.rsa 和.sf的文件。
- 打开cmd命令行,输入jar -cvfM connect-redis.jar . 打出一个包含所有依赖的超级jar
将jar包上传到connect-standalone.properties文件里plugin.path所指的路径下,默认是/usr/share/java。再上传连接器的配置(位置没有要求,最好和别的kafka配置放一起)。
四、启动连接器执行命令
bin/connect-standalone.sh config/connect-standalone.properties connector1.properties
这样,我们就启动了一个kafka redis source connector啦。



