View a markdown version of this page

Bonnes pratiques générales et recommandations pour les mises à niveau des applications - Service géré pour Apache Flink

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques générales et recommandations pour les mises à niveau des applications

  • Testez le nouvel état job/runtime sans état dans un environnement hors production avant de tenter une mise à niveau de production.

  • Envisagez de tester d'abord la mise à niveau dynamique avec une application hors production.

  • Assurez-vous que l'état de votre nouveau graphe de tâches est compatible avec l'instantané que vous utiliserez pour démarrer votre application mise à niveau.

    • Assurez-vous que les types enregistrés dans les états de l'opérateur restent les mêmes. Si le type a changé, Apache Flink ne peut pas restaurer l'état de l'opérateur.

    • Assurez-vous que les identifiants d'opérateur que vous avez définis à l'aide de la uid méthode restent les mêmes. Apache Flink recommande vivement d'attribuer des identifiants uniques aux opérateurs. Pour plus d'informations, consultez la section Affectation d'identifiants d'opérateur dans la documentation d'Apache Flink.

      Si vous n'attribuez pas d'identifiant à vos opérateurs, Flink les génère automatiquement. Dans ce cas, elles peuvent dépendre de la structure du programme et, si elles sont modifiées, elles peuvent entraîner des problèmes de compatibilité. Flink utilise les identifiants d'opérateur pour faire correspondre l'état de l'instantané à l'opérateur. La modification des ID d'opérateur empêche le démarrage de l'application ou entraîne la suppression de l'état enregistré dans le snapshot, et le nouvel opérateur démarre sans état.

    • Ne modifiez pas la clé utilisée pour enregistrer l'état saisi.

    • Ne modifiez pas le type d'entrée des opérateurs dynamiques tels que window ou join. Cela change implicitement le type de l'état interne de l'opérateur, ce qui entraîne une incompatibilité d'état.