Support Questions
Find answers, ask questions, and share your expertise

Need for Controller Services in Apache Nifi

Hi Team,

I went through the NiFi documentation to get an idea about Controller Services. But still I am not clear when to go for Controller services. Could you please help me with answering the below queries?

1. What are Controller Services & its characteristics/advantages? Why do we go for it?
2. In what scenarioes we can/should use it?

Thanks & Regards,
R.Rohit

1 ACCEPTED SOLUTION

Accepted Solutions

A controller service is, in a simplified view, a package of configuration parameters and code that does something in the background. Some examples are:

  1. Connections to external services, for instance databases and APIs, where the controller service encapsulates the connection parameters
  2. Record Readers/Writers that tell record processors how to interpret data formats
  3. Reporting Tasks that send statistics about NiFi on a regular basis, for example to a monitoring service
  4. Sharing state between processors and cluster nodes, for instance with cache services.

There is a more formal explanation in the docs but I understand that you read that already.

In the first two use cases, if you configure a processor that uses any of these services, the processor will ask you to configure a controller service. You will not be able to run the processor before you configure the controller service (or use an existing one.)

View solution in original post

2 REPLIES 2

A controller service is, in a simplified view, a package of configuration parameters and code that does something in the background. Some examples are:

  1. Connections to external services, for instance databases and APIs, where the controller service encapsulates the connection parameters
  2. Record Readers/Writers that tell record processors how to interpret data formats
  3. Reporting Tasks that send statistics about NiFi on a regular basis, for example to a monitoring service
  4. Sharing state between processors and cluster nodes, for instance with cache services.

There is a more formal explanation in the docs but I understand that you read that already.

In the first two use cases, if you configure a processor that uses any of these services, the processor will ask you to configure a controller service. You will not be able to run the processor before you configure the controller service (or use an existing one.)

View solution in original post