开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

大佬们,flink源码里面开头有@Internal 注解的类是不是不能调用?

大佬们,flink源码里面开头有@Internal 注解的类是不是不能调用?

展开
收起
游客6vdkhpqtie2h2 2022-09-28 09:09:25 1017 0
13 条回答
写回答
取消 提交回答
  • 在 Flink 源码中,使用 @Internal 注解标注的类、方法或变量,表示这些接口是 Flink 内部使用的接口,不建议用户直接调用。这些接口可能会在未来的版本中发生变化,或者在不同的 Flink 版本中存在差异,因此使用这些接口可能会导致不兼容或者意外的行为。

    虽然使用 @Internal 注解的接口不建议用户直接调用,但是在某些情况下,用户可能需要使用这些接口来实现一些高级的功能或者对 Flink 进行二次开发。在这种情况下,建议用户仔细阅读相关文档和源码,了解接口的使用方式、限制和风险,并且在使用前进行充分的测试和验证。

    使用 @Internal 注解的接口可能会在未来的版本中发生变化或者被删除,因此在升级 Flink 版本时需要特别注意这些接口是否发生了变化,以避免出现兼容性问题。

    2023-05-07 23:53:28
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在 Flink 源码中,使用 @Internal 注解标注的类和方法是 Flink 内部使用的 API,一般不建议用户直接调用。这些 API 的使用可能会受到版本变更的影响,可能在不同的版本中具有不同的语义、行为和性能等特征。因此,如果您想要使用 Flink,建议使用 Flink 提供的公共 API 和接口,并遵循官方文档中的使用方式。

    如果您确实需要使用 @Internal 注解标注的类和方法,可以参考 @Internal 注解的注释,了解当前 API 的用途、使用范围和限制等信息。同时,请注意 API 的使用方式和风险,并在使用之前进行充分测试和评估。

    2023-05-05 20:21:58
    赞同 展开评论 打赏
  • 不一定。@Internal注解表示该类或方法是Flink内部使用的,不建议用户在应用程序中直接使用。但是,如果您知道该类或方法的行为和限制,并且确定它符合您的需求,那么您仍然可以在您的应用程序中使用它。但是请注意,如果未来版本更改了该类或方法的行为,您的应用程序可能不再兼容。因此建议仅在确实需要时使用@Internal注解的类或方法。

    2023-05-02 07:49:30
    赞同 展开评论 打赏
  • 云端行者觅知音, 技术前沿我独行。 前言探索无边界, 阿里风光引我情。

    是的,Flink源码中使用@Internal注解的类、方法或字段等,通常是Flink内部使用的,不建议用户直接调用。这些类、方法或字段等可能会在未来的版本中发生变化,或者在不同的 Flink版本中具有不同的行为,因此不建议用户直接使用。另外@Internal注解是Flink中的一种标记注解,用于标记Flink内部使用的类、方法或字段等。这些类、方法或字段等通常是不稳定的,可能会在未来的版本中发生变化,或者在不同的Flink版本中具有不同的行为。因此,如果用户直接使用这些类、方法或字段等,可能会导致代码不稳定或不兼容。

    2023-04-30 16:52:26
    赞同 展开评论 打赏
  • 从事java行业9年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    Flink源码中 @Internal注解标识方法是稳定的,或公有的API是一个内部开发者级别的API。开发者级别的API是稳定的但只对Flink内部开放,但可能会会在不同版本之间发生变化。官方注解说明地址:@Internal

    2023-04-26 21:36:49
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    是的,@Internal注解的类和方法通常是为了内部使用而不是公共API,因此不能在应用程序代码中直接使用它们。

    这些类和方法可能只是针对Flink框架的具体实现细节或者其他高级用途而存在。如果你在应用程序中调用这些@Internal注解的类和方法,则可能会出现意想不到的行为或者代码无法正常运行。

    从Flink 1.11开始,一些内部注解已被重新设计为@VisibleForTesting注解,以表示它们可以在测试代码中使用,但仍不建议在生产或应用程序代码中使用。这种重新设计反映了对代码可维护性和可测试性的关注。

    总之,请遵循API的使用规则,只使用公共的API,以避免不必要的问题并确保最佳的安全性,性能和稳定性。

    2023-04-26 12:34:18
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    根据我的了解,Flink 源码中使用 @Internal 注解的类或方法是作为内部 API 和实现细节而存在的,不建议用户直接调用。这些类或方法的接口和实现可能会在未来的版本中发生变化,因此如果用户在代码中直接使用它们,可能会导致代码的不兼容性和不稳定性。

    一般情况下,用户应该尽量避免直接调用标记为 @Internal 的类或方法。当需要使用它们时,可以考虑使用公共 API 提供的方法来实现需求。

    需要注意的是,@Internal 注解仅表示该类或方法是内部实现,不能作为公共 API 使用,并不意味着它不能被调用。如果确实需要在代码中直接调用 @Internal 类或方法,可以在使用前了解其用途和使用方法,并谨慎评估潜在的风险。

    2023-04-25 11:34:59
    赞同 展开评论 打赏
  • @Internal 注解通常表示这个类、接口或方法是 Flink 内部使用的实现细节,不建议外部用户直接调用。然而,在某些情况下,@Internal 注解的类可能会被暴露给外部用户使用。使用这些类需要谨慎并且自担风险。

    如果有必要使用 @Internal 注解的类,可以通过以下方式避免一些问题:

    1.仔细阅读文档和 API 文档,并了解使用该类的安全限制和注意事项

    2.确保始终使用与 Flink 版本相对应的库版本;

    3.在使用时,要格外小心地处理异常和错误,记录和监控相关日志以便后期排查和修复问题。

    总之,虽然 @Internal 类没有正式公开发布或支持,但在某些场景下它们却是非常有价值的工具。

    2023-04-24 18:57:44
    赞同 展开评论 打赏
  • @Internal 注解是 Flink 内部使用的注解,用于标记一些仅供内部使用的类、方法或字段。这些标记为 @Internal 的类、方法或字段通常不会在 Flink 的公共 API 中出现,也不建议用户直接调用它们。但是,这并不意味着用户不能调用标记为 @Internal 的类、方法或字段,只是需要注意一些潜在的问题:

    1. @Internal 注解的类、方法或字段可能在未来的版本中发生变化,甚至可能被删除或者重构。因此,如果用户直接调用了这些类、方法或字段,可能会导致代码不兼容或者出现未知的问题。

    2. @Internal 注解的类、方法或字段可能没有经过充分的测试或者文档,因此用户可能需要自己承担某些风险或者花费更多的时间来了解它们的使用方法。

    3. @Internal 注解的类、方法或字段通常是为了满足 Flink 内部的需要而设计的,可能不适用于用户的具体场景或者需求。

    因此,虽然用户可以调用标记为 @Internal 的类、方法或字段,但是建议尽量避免这样做,除非您非常熟悉 Flink 的内部实现,并且确定需要使用这些类、方法或字段来实现某些特定的功能。如果您需要调用 Flink 的某些内部功能,可以尝试通过公共 API 或者官方提供的扩展点来实现。

    2023-04-24 13:29:54
    赞同 展开评论 打赏
  • 全栈JAVA领域创作者

    @Internal 注解表示该类、方法或属性是 Flink 内部使用的,不建议用户直接调用。这些类、方法或属性的实现和行为可能会在未来版本中发生变化,不保证向后兼容。

    因此,如果在使用 Flink 时需要调用某个被 @Internal 注解的类、方法或属性,建议先了解其用途和实现细节,并谨慎使用。如果有疑问,可以查看相关文档或咨询 Flink 社区。

    2023-04-23 21:33:28
    赞同 展开评论 打赏
  • 技术架构师 阿里云开发者社区技术专家博主 CSDN签约专栏技术博主 掘金签约技术博主 云安全联盟专家 众多开源代码库Commiter

    @Internal 注解是 Flink 开发团队使用的标记,用于标识这些类、方法或字段在 Flink 内部使用,并不属于公共 API 的一部分。这些类、方法或字段可能会随着版本更新而改变或删除,因此不建议在用户代码中直接调用它们。

    如果你需要使用这些被 @Internal 标记的类、方法或字段的功能,可以查找它们所属的公共类或方法,或者寻找其他替代方案。同时,如果你确实需要访问这些 @Internal 类、方法或字段,也应该意识到它们不稳定,并且在将来的版本中可能会被移除或修改。

    2023-04-23 17:38:51
    赞同 展开评论 打赏
  • 热爱开发

    @Internal 注解是 Flink 内部使用的注解,它标记的类或方法通常不应该被外部使用者直接调用。这些类和方法可能会在未来版本中发生变化,甚至可能会被删除。

    因此,除非您确实了解 Flink 的内部实现细节并且有特殊需求,否则不建议直接调用 @Internal 注解的类和方法。更好的做法是查看 Flink 官方文档和 API 文档,并使用它们提供的公共 API 进行编程。

    2023-04-23 17:16:58
    赞同 展开评论 打赏
  • @Internal 注解是 Flink 内部使用的注解,它用于标记那些不应该对外开放的 API,因此不建议直接调用被 @Internal 标记的类或方法。调用这些被标记的 API 会增加代码的耦合性,而且这些 API 在下一个版本或下一个补丁中可能会发生变化而导致应用程序出现问题。

    当您需要访问带有 @Internal 注解的类或方法时,请先查看它们的定义以及注释,尝试了解这些类或方法的功能、使用方式和约束条件,并且仅在无法使用公开 API 解决问题时才考虑使用它们。

    2023-04-23 16:45:57
    赞同 展开评论 打赏
滑动查看更多

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载