XiaoMi / ozhera

Application Observable Platform in the Cloud Native Era
https://ozhera.m.one.mi.com
Apache License 2.0
60 stars 28 forks source link

[Feature Request] Add Push Configuration Capability to log-stream for Nacos Configuration #331

Closed wtt40122 closed 2 months ago

wtt40122 commented 2 months ago

Description: Currently, the log-stream tool is capable of pulling configurations from Nacos, which is a great feature for dynamic configuration management. However, there are scenarios where a push mechanism for configurations would be beneficial, especially when we need to ensure that the latest configurations are actively disseminated to all instances of an application or service.

Proposed Feature: I propose that we introduce a push mechanism for configurations in log-stream. This would work in tandem with the existing pull mechanism, providing a more robust solution for configuration management. The push mechanism would have the following characteristics:

1.Real-time Updates: Whenever a configuration is updated in Nacos, all subscribed instances would receive the new configuration in real-time. 2.Reliability: The push mechanism should be reliable, ensuring that configuration updates are not lost due to network issues or service restarts. 3.Scalability: It should be able to handle a large number of subscribers without significant performance degradation. 4.Security: The push mechanism should maintain the same level of security as the current pull mechanism to prevent unauthorized access to configuration updates. Use Cases:

Zero-Downtime Deployments: The push feature would allow for zero-downtime deployments by ensuring all instances receive configuration changes immediately. Disaster Recovery: In case of a service failure, the push mechanism can help quickly propagate new configurations to restore service. Configuration Drift Prevention: It can prevent configuration drift by keeping all instances in sync with the latest configurations. Implementation Considerations:

We should consider the best way to integrate this feature with the current architecture of log-stream without causing significant disruptions. It may be necessary to update the documentation to include instructions for using the new push feature.