Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] quarkus/helidon/micronaut support #14897

Open
3 of 4 tasks
thegenius opened this issue Nov 15, 2024 · 1 comment
Open
3 of 4 tasks

[Feature] quarkus/helidon/micronaut support #14897

thegenius opened this issue Nov 15, 2024 · 1 comment
Labels
component/sdk Related with apache/dubbo help wanted Everything needs help from contributors

Comments

@thegenius
Copy link

Pre-check

  • I am sure that all the content I provide is in English.

Search before asking

  • I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component

Java SDK (apache/dubbo)

Descriptions

Now, many small companies and new projects are starting to use modern frameworks such as Quarkus, Helidon, and Micronaut.
(1)Among these, Quarkus is favored because its development experience is far superior than Spring, especially in terms of hot updates, and it supports GraalVM, which can save a significant amount of memory.
(2)Micronaut, with its compile-time dependency injection and AOP, has attracted many developers who dislike reflection.
(3)Helidon, by rewriting many Netty functionalities, offers excellent modularity and virtual thread support, also attracting a certain number of developers.
At the same time, there is an increasing willingness among developers to adopt Jakarta standardized annotations, as standardization typically means that code is not tied to a specific framework, reducing future migration costs.
Therefore, supporting these modern frameworks is a path that Dubbo 3 needs to take. I wonder if the development team has any related plans?

Related issues

No response

Are you willing to submit a pull request to fix on your own?

  • Yes I am willing to submit a pull request on my own!

Code of Conduct

@thegenius thegenius added component/need-triage Need maintainers to triage type/need-triage Need maintainers to triage labels Nov 15, 2024
@oxsean
Copy link
Collaborator

oxsean commented Nov 16, 2024

Very valuable.
If you're interest on it, you can have a try.
Here's a brief overview to support Quarkus by ChatGPT:

1. Configuration Management

  • Bind Dubbo configurations to Quarkus's configuration framework using @ConfigMapping.
  • Dynamically load configurations into Dubbo at startup.

2. CDI Integration

  • Enable Dubbo services as CDI beans for annotation-based service publishing and injection.
  • Provide a mechanism for dynamic proxy creation for Dubbo references via CDI.

3. Hot Deployment Support

  • Ensure Dubbo services can dynamically register and unregister during Quarkus's hot deployment (quarkus:dev).

4. Native Image Compatibility

  • Ensure Dubbo's reflection and dynamic class loading work in GraalVM native images.
  • Use @RegisterForReflection or a reflection configuration file for required classes.

5. Monitoring and Metrics

  • Integrate with Quarkus's Micrometer framework to expose Dubbo metrics (e.g., QPS, latency) to Prometheus or other systems.

6. Security

  • Utilize Quarkus's security framework (e.g., OAuth2, JWT) for unified authentication and authorization of Dubbo service calls.
  • Add global interceptors for token validation and security context propagation.

7. Quarkus Dev UI

  • Provide a Dev UI extension to visualize Dubbo service registrations, metrics, and call statistics during development.

By implementing these integrations, Dubbo can seamlessly adopt Quarkus's developer-friendly features, ensuring high performance, easy configuration, and enhanced compatibility for modern Java applications.

@oxsean oxsean added help wanted Everything needs help from contributors component/sdk Related with apache/dubbo and removed type/need-triage Need maintainers to triage component/need-triage Need maintainers to triage labels Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/sdk Related with apache/dubbo help wanted Everything needs help from contributors
Projects
Status: Todo
Development

No branches or pull requests

2 participants