[ 
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)

Reply via email to