Nous avons un script Perl qui est en train de traiter les demandes de géolocalisation des serveurs tête de gamme dans un site web majeur. Le script est un courtier fournissant une logique métier supplémentaire interprétant les données renvoyées par un produit COTS qui fournit des données pour une adresse IP donnée, par ex. pays, type de connexion, type de routage, opérateur, etc.
Ce service Géo gère actuellement des charges de pointe d'environ 1 000 requêtes par seconde dans le backend COTS. BTW Il sert actuellement 5 000 demandes p.s. à partir de sa couche d'équilibrage de charge/cache dédiée qui vit directement avant la couche de courtier.
J'ai récemment dû modifier le comportement de ce courtier pour permettre une nouvelle catégorie de connexions que nous avons vu se produire sur le site qui cause des problèmes.
La version originale du script, pas ma conception! btw, a été construit en utilisant un mélange d'éléments de configuration dans le script lui-même et d'autres éléments dans des fragments séparés de Perl. Comme cela a été souligné à juste titre lors de l'examen par les pairs de mes modifications, nous devrions probablement migrer tous les éléments de configuration pour les séparer plutôt que de continuer avec un mélange d'éléments de configuration intégrés et séparés.
Maintenant, je veux aller plus loin et mettre tous les éléments de configuration, créés comme des hachages Perl distincts, dans un seul fichier de configuration.
Pour le moment, nous devons arrêter et redémarrer l'ensemble de l'application pour recharger les nouveaux éléments de configuration qui, étant donné les niveaux de trafic, est un peu incommode même s'il existe quatre instances du courtier sur deux centres de données distincts. nous ne perdons jamais le service.
Je soupçonne que je vais avoir à recourir à une minuterie, ou peut-être un compteur de demandes, et d'effectuer une stat sur le fichier de configuration en question. Ou peut-être même avoir un TTL configuré pour le fichier de configuration et juste le recharger toutes les dix minutes environ.
Mais y a-t-il un moyen de faire en sorte que Perl recharge automatiquement une version plus récente d'un fichier qu'il a précédemment chargé? Je pense à un comportement similaire à celui fourni par le module mod_perl d'Apache.
votre,
P.S. Je suppose que quelqu'un peut suggérer d'utiliser des hachages liés, mais j'ai des inquiétudes sur la performance d'un hachage lié à un fichier directement en fonction de votre échelle. – DVK