You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache NiFi 2.1.0自定义处理器无法显示RedisConnectionPool列表

环境
  • Apache NIFI 2.1.0
  • JDK: OpenJDK 21.0.2
问题描述

我正在为Apache NiFi 2.1.0开发自定义处理器JJMyRedisProcessor,Redis属性部分直接复用了内置处理器PutRedisHashRecord中org.apache.nifi.redis.util.RedisUtils.REDIS_CONNECTION_POOL的代码。

执行mvn clean compile package生成nar文件并放入NiFi的nar_extensions目录后,测试发现:内置的PutRedisHashRecord处理器的“Redis Connection Pool”下拉框能正常显示已配置的RedisConnectionPool列表,但自定义处理器的对应下拉框没有任何可用选项。

请问该差异产生的原因是什么?如何修复自定义处理器?

原因分析

自定义处理器的NAR包未正确声明对Redis连接池服务API的依赖,导致NiFi框架无法识别处理器与RedisConnectionPool服务的关联关系,因此下拉框无法加载已配置的连接池实例。而内置处理器所在的NAR包已正确包含该依赖,所以能正常显示选项。

修复方法

1. 调整pom.xml依赖配置

在自定义处理器的pom.xml中,添加对Redis连接池API的依赖,并设置provided范围(避免与NiFi核心包冲突):

<dependency>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi-redis-api</artifactId>
    <version>2.1.0</version>
    <scope>provided</scope>
</dependency>

2. 确保NAR包正确打包服务API

如果项目采用分模块结构(如处理器模块+NAR模块),需在NAR模块的pom.xml中,将nifi-redis-api添加到nar-dependencies中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.nifi</groupId>
            <artifactId>nifi-nar-maven-plugin</artifactId>
            <version>2.1.0</version>
            <extensions>true</extensions>
            <configuration>
                <narDependencies>
                    <narDependency>
                        <groupId>org.apache.nifi</groupId>
                        <artifactId>nifi-redis-api</artifactId>
                    </narDependency>
                </narDependencies>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 重新编译部署

执行mvn clean compile package重新生成NAR包,替换NiFinar_extensions目录中的旧包,重启NiFi服务后测试即可。

内容的提问来源于stack exchange,提问作者wureka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:25:59