首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

NiFi 在马蜂窝信息流推荐引擎中的使用及扩展

2019-12-16

尽管 NiFi 现已集成了许多 Processor 供咱们运用,可是跟着事务复杂度不断晋级,有时候咱们需求定制开发合适团队的 Processor。比方咱们事务场景顶用到了 RocketMQ,NiFi 自身是不支持 RocketMQ 数据流的传输的,这时就需求进行扩展性开发。

一般,经过承继 AbstractProcessor 抽象类,并复写 onTrigger 与 onScheduled 办法来进行开发。每一个 Processor 都有相应的装备,而装备信息可用下边这段代码来进行增加:

private final PropertyDescriptor TOPIC = new PropertyDescriptor.Builder
 .name
 .displayName
 .description
 .required
 .addValidator
 .expressionLanguageSupported
 .build;

下图是咱们建好的一组 Processor Group。它包含了一个 Job,主要功能是从 RocketMQ 的某个 topic 不断消费数据,将数据写入 HDFS 中:

当咱们右键点某个 Processor 的 Start 按钮,该 Processor 就会发动,而发动后程序会马上去调用对应类中的 onScheduled 办法。当一切 Processor 发动后,程序会按图中流程进行数据流的传递,当 Queue 中一旦有了数据,后置的 Processor 会调用 OnScheduled 办法来处理 Queue 中的数据流。所以,onScheduled 办法一般来编写数据库衔接信息、装备特点等相关程序,是处理 Session 的真实逻辑。

下边的程序是咱们开发的一个写入 RocketMQ 的简略 Processor,onTrigger 是处理数据流的逻辑,onScheduled 办法是 RocketMQ 的 Producer 的装备信息:

@Override
//ProcessSession类专门用来处理queue中传来的dataflow的一些列操作;
public void onTrigger throws ProcessException {
 try {
 String topic = context.getProperty.getValue;
 FlowFile flowfile = session.get;
 session.read;
 byte[] messageBytes = message.getBytes;
 Message msg = new Message;
 try {
 producer.send {
 @Override
 public void onSuccess {
 @Override
 public void onException {
 getLogger.error;
 } catch  {
 getLogger.error);
 //铲除queue中现已处理过的message;
 session.getProvenanceReporter.send;
 } catch  {
 getLogger.error);
@OnScheduled
public void onScheduled {
 try {
 if  {
 this.producer = new DefaultMQProducer;
 String producerGroup = context.getProperty.getValue;
 if ) producerGroup = your group 
 this.producer.setNamesrvAddr;
 this.producer.start;
 this.producer.setRetryTimesWhenSendFailed;
 } catch  {
 getLogger.error);

当某个 Processor 需求中止时,能够经过点击运转中 Processor 的 Stop 按键来进行中止。此刻程序会调用 OnStopped 润饰的办法来对相应的服务进行停止:

@OnStopped
public void stopConsumer {
 getLogger.error);
 invalidProducer;
private synchronized void invalidProducer {
 if  {
 producer.shutdown;
 producer = null;

四、使用实战

4.1 Nifi 集群建立

热门文章

随机推荐

推荐文章