[
https://issues.apache.org/jira/browse/NIFI-13665?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bryan Bende updated NIFI-13665:
-------------------------------
Fix Version/s: 2.0.0-M5
Resolution: Fixed
Status: Resolved (was: Patch Available)
> Refactor Bootstrap Process Implementation
> -----------------------------------------
>
> Key: NIFI-13665
> URL: https://issues.apache.org/jira/browse/NIFI-13665
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core Framework
> Reporter: David Handermann
> Assignee: David Handermann
> Priority: Major
> Fix For: 2.0.0-M5
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The current NiFi startup process includes the {{nifi-bootstrap}} module and
> the {{nifi-runtime}} module, together with the {{nifi-resources}} module,
> which provides the shell scripts for interacting with bootstrap commands.
> The existing architecture has remained relatively unchanged since the initial
> implementation, consisting of a long-running Java process to start and
> monitor the application process. Process communication takes place using a
> custom TCP socket protocol, with each process listening for connections and
> commands on a local address.
> Java 9 and following expanded platform capabilities to support greater
> control over operating system processes through the
> [ProcessHandle|https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ProcessHandle.html]
> interface and related components. The ProcessHandle interface supports
> features such as enumerating processes and reading command arguments. Java 11
> introduced an
> [HttpClient|https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpClient.html],
> providing a number of improvements over the historical
> {{{}HttpURLConnection{}}}.
> With these language improvements, the NiFi bootstrap process should be
> refactored using improved process control and HTTP for process communication.
> This approach should eliminate the need for custom socket protocol handling
> while maintaining existing capabilities such as process health, diagnostics,
> and decommissioning cluster nodes.
> The NiFi process control scripts nifi.sh and nifi.cmd should remain
> relatively unchanged, minimizing the user-facing impact. Although the NiFi
> bootstrap process should continue support existing use cases for long-running
> process monitoring, refactoring should also support the option to run the
> NiFi application without a long-running monitor. This run strategy should
> provide a better fit with containerized deployments that have first-class
> process monitoring.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)