[
https://issues.apache.org/jira/browse/NIFI-13665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17876817#comment-17876817
]
ASF subversion and git services commented on NIFI-13665:
--------------------------------------------------------
Commit 6b6e8d6f785ccb9f61fd4e8599dcdc855dd5965f in nifi's branch
refs/heads/main from David Handermann
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=6b6e8d6f78 ]
NIFI-13665 Refactored Bootstrap and Runtime Process Handling (#9192)
- Added BootstrapProcess main class to nifi-bootstrap
- Added HTTP Management Server to nifi-runtime for status
- Added HTTP client to nifi-bootstrap for status
- Removed TCP socket listeners from nifi-bootstrap and nifi-runtime
- Removed dump and env commands
- Removed java property from bootstrap.conf
- Removed nifi.bootstrap.listen.port from bootstrap.conf
> 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
> 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)